软件算法组路线
路线定位
软件算法组不是原“视觉算法组”的简单改名,而是完整的机器人上位机软件组。主要负责Linux平台和ROS2系统、运动学、里程计、状态估计、导航、环境感知、机械臂规划、比赛任务决策、多机器人通信和整机软件集成。
开始本路线前,应先完成嵌入式组与软件算法组公共路线。软件算法组不要求学习完整的MCU开发路线,但需要理解上下位机接口、数据帧、通信超时和底层反馈的基本概念。
第一阶段:C++、Python与Linux工程基础
学习目标:
熟练使用现代C++编写模块化程序,掌握STL、RAII、智能指针、错误处理和并发基础。
能使用Python完成脚本、数据处理、测试和算法验证。
熟练使用Linux终端、权限、进程、网络、日志、SSH和设备文件。
能使用Git协作,使用CMake组织多模块工程并管理第三方依赖。
推荐教程:
第二阶段:ROS2软件开发
必须掌握工作空间、功能包、Topic、Service、Action、Parameter、Launch、TF、URDF、rosbag2和RViz2,能够独立编写、调试和组合ROS2节点。
推荐教程:
ROS2机器人操作系统教程(基础可用,部分进阶章节在建)
Gazebo仿真平台(基础可用)
阶段实践:创建一个包含传感器输入、状态处理、控制指令和Launch启动文件的ROS2工作空间,并使用rosbag2记录和回放数据。
第三阶段:上下位机通信
软件算法组负责Linux串口、Boost.Asio、ROS2 Serial Driver、SocketCAN、ROS2 SocketCAN、消息转换、重连和主机端诊断;嵌入式组负责UART HAL、DMA、MCU协议解析、CRC、CAN收发和底层失联保护。
推荐教程:
上位机串口通信—Boost库(基础可用)
ROS2 Linux硬件通信(基础可用)
阶段实践:在Linux端接收底层里程计、IMU和故障反馈,发送带序号和超时机制的速度或位置指令,并验证断线重连与失联保护。
第四阶段:底盘运动学与机器人运动控制
学习目标:
掌握差速、麦轮和全向轮底盘的正逆运动学。
理解机器人坐标系、速度指令、约束和轨迹的关系。
能将规划或遥控结果转换为底盘期望速度,并处理限速和坐标变换。
理解ROS2 Control硬件接口与控制器的职责。
教程状态:
ROS2 Control(基础可用)
底盘运动学系统教程(待建设,不创建空文件)
第五阶段:里程计与状态估计
学习目标:
理解轮式里程计、IMU、坐标系和时间同步。
能标定轮式里程计并分析系统误差。
能使用EKF等方法融合轮速、IMU和其他定位信息。
为导航系统提供连续、可信、坐标关系正确的状态估计。
推荐教程:
轮式里程计标定与融合(基础可用)
ROS导航与建图实践(基础可用)
状态估计完整案例(待建设,不创建空文件)
第六阶段:SLAM、定位与Nav2
学习目标:
理解建图、定位、全局规划、局部规划、代价地图和恢复行为。
能完成传感器、TF、里程计、地图和导航参数的整机配置。
能分析定位跳变、路径振荡、避障失败和运动约束问题。
推荐教程:
ROS导航与建图实践(基础可用)
Nav2导航(基础可用)
slam_toolbox建图(基础可用)
第七阶段:OpenCV、YOLO、雷达与点云
学习目标:
能完成相机标定、图像处理、目标检测、跟踪和目标位姿估计。
能部署和评估YOLO模型,理解训练、推理和工程性能指标。
能处理激光雷达和点云数据,完成滤波、分割、聚类和坐标变换。
输出可供运动规划和任务决策使用的目标位置、姿态和置信度,而不是只返回没有坐标定义的像素偏差。
推荐教程:
OpenCV教程(在建)
计算机视觉算法实践(基础可用)
深度学习算法—YOLO系列(基础可用)
PCL点云库(在建)
第八阶段:MoveIt2与机械臂
学习目标:
理解机械臂正逆运动学、关节空间和笛卡尔空间。
能建立URDF/SRDF模型并配置MoveIt2。
能完成运动规划、轨迹执行、抓取和基本碰撞检查。
能设计底盘与机械臂协同流程。
队内教程:
MoveIt2工业机器人机械臂(在建)
当前路线保留完整能力目标,但不假定教程已经完成。抓取、实机控制和底盘机械臂协同仍需继续建设,不创建额外空教程。
第九阶段:状态机、任务决策与多机器人通信
学习目标:
将比赛任务拆分为状态、事件、条件和动作。
处理超时、失败、重试、降级和人工接管。
组合导航、感知、机械臂和底层执行动作。
设计多机器人之间的状态同步、任务分配和异常处理。
教程状态:状态机、行为决策和多机器人通信均为待建设,仅在本路线记录,不创建空Markdown文件。学习以当年项目实践和负责人带领为主。
第十阶段:整机软件系统集成
学习目标:
设计清晰的软件模块、接口、配置和启动顺序。
管理日志、诊断、自动启动、部署、版本和回滚。
建立仿真、录包回放、单模块测试和整机测试流程。
与嵌入式组共同验证单位、坐标系、频率、超时、安全状态和故障恢复。
整机软件架构与系统化测试教程目前待建设,不创建空文件。
路线分级与考核
必修基础:C++、Python基础、Linux、Git、CMake、ROS2基础、上下位机通信、底盘运动学、里程计和基础状态估计。
核心专项:SLAM/Nav2、OpenCV/YOLO、激光雷达与点云、ROS2 Control。
项目进阶:MoveIt2、机械臂抓取、状态机、多机器人通信和整机软件架构。
软件算法组专项考核应覆盖C++工程、Linux、ROS2、运动学、基础状态估计和基础机器人软件。高级项目内容根据当年赛题单独考核。
软件算法能力检查表
以下检查表由原控制路线、原视觉路线和原综合路线迁移:
ROS2与机器人基础
节点、Topic、Service、Action、Parameter和QoS。
Python/XML/YAML Launch、命名空间、重映射和参数配置。
rosbag2录制、回放、筛选和问题复现。
TF静态与动态广播、监听、时间和坐标变换。
RViz2、URDF、机器人模型和仿真环境。
工控机远程开发、USB设备权限、分布式通信和日志优化。
串口、SocketCAN、TCP/UDP及其ROS2节点封装。
轮式里程计、IMU、激光雷达、相机、GNSS、手柄和键盘节点。
ROS2 Control、Nav2、MoveIt2和仿真平台按项目阶段学习。
感知与算法
图像载入、显示、保存、颜色空间和像素操作。
几何变换、ROI、图像金字塔、直方图和模板匹配。
滤波、边缘、形态学、连通域、轮廓、直线和角点检测。
特征点检测与匹配、相机标定、PNP、单目和双目视觉。
目标检测、单目标与多目标跟踪、数据关联和位姿估计。
OpenCV部署、YOLO训练与推理、模型性能和工程加速。
点云读取、滤波、分割、聚类、坐标变换和目标提取。
运动学、轨迹、里程计、状态估计、导航和任务决策的接口协同。



