← 返回培训资料

佛山大学 · 醒狮战队

27 算法组指南

2027 赛季醒狮战队算法组 · 新生指南

算法组欢迎零基础新生。你不需要提前学过机器人算法,也不需要一开始就会使用所有工具。招新期间,我们会从基础开始培训,并通过两到三轮考核,帮助大家逐步了解算法组、找到适合自己的方向。

外部学习资源

下载资料

一、算法组做什么

简单来说,算法组负责让机器人:

在战队中,机械组负责机器人的结构,电控组负责电机、底盘、云台和通信,算法组则为机器人提供视觉、导航和决策能力。一个功能从想法变成赛场上的稳定表现,离不开各组之间的配合。

二、算法组分为哪两个组别

算法组分为视觉组和导航组。

组别主要工作常见输出
视觉组识别和跟踪目标,帮助机器人完成瞄准检测结果、目标位置、瞄准指令
导航组定位、规划、控制和决策机器人位姿、运动路径、底盘速度、行动目标

决策属于导航组,不是单独的组别。导航组既要解决"机器人怎么走",也要解决"机器人现在该去哪里、该做什么"。

新生前期会统一学习基础知识,之后再根据个人兴趣和考核表现进入视觉组或导航组。能力强的同学后续还可以学习相关知识并维护雷达站、自定义客户端。

三、视觉组:让机器人看见并瞄准目标

视觉组主要负责装甲板、能量机关和其他场上目标的识别、跟踪与瞄准。

一套基础视觉流程通常是:

读取相机图像 → 检测目标 → 计算目标位置 → 跟踪并预测运动 → 向电控发送指令

刚开始学习时,我们会先完成几个小目标:

  1. 从相机中稳定读取画面;
  2. 在画面中找到并标出目标;
  3. 输出目标的位置和处理频率;
  4. 说清楚数据使用的单位和坐标系。

完成这些基础内容后,再进一步学习 PnP 位姿解算、目标跟踪、运动预测和弹道补偿。

视觉算法不只追求"识别得准",还要关注处理速度、延迟和稳定性。比赛中,及时而稳定的结果往往比速度很慢的高精度结果更有用。

四、导航组:让机器人自主移动和行动

导航组包含定位、规划、控制和决策。

导航首先要回答三个问题:

  1. 1.机器人现在在哪里?
  2. 2.机器人要去哪里?
  3. 3.机器人应该怎么过去?
模块主要任务
感知使用激光雷达、相机等传感器了解周围环境
定位结合雷达、IMU 和轮速等信息计算机器人位置
规划根据地图和目标点生成路径或轨迹
控制将轨迹转换成底盘可以执行的速度指令
决策根据比赛状态和敌情选择目标与行动模式

坐标系是导航学习中的重要基础。相机、雷达、底盘、里程计和地图之间的关系必须清楚,数据的单位、时间戳和频率也需要统一。

决策模块负责选择巡逻、进攻、回防或补给等行动。新生会先从简单的状态机开始,不需要一上来就使用复杂模型。决策模块决定"去哪里、做什么",具体怎么走仍由规划和控制模块完成。

ROS2与坐标系相关知识是导航组后续学习与考核的核心重点。

五、算法组平时在做什么

算法组的日常工作并不只是写代码。我们还会:

电脑上能运行,不等于实车上能使用。一个功能上车前,需要检查传感器标定、坐标系、时间戳、单位、运行频率、通信接口和整体延迟。

测试通常按照以下顺序进行:

单个节点测试 → rosbag 数据回放 → 实车静止测试 → 低速测试 → 对抗测试

每一步稳定后再进入下一步。实车测试时必须安排急停和现场看护;没有把握时,应先让机器人停止运动,确保人员和设备安全。

六、零基础需要学什么

算法组的开发以 Ubuntu 为主。新人不用等所有知识都学完再开始做项目。我们会分阶段安排学习内容:第一阶段主攻C++;ROS2仅导航组学习;Linux、Git、OpenCV、CMake、RViz等工具会在第三阶段才系统上手,可以先完成小任务,再根据遇到的问题补齐知识。

建议先学习:

可以从这些官方资料开始:

暂时不会某个工具没有关系。相比入队前已经学了多少,我们更看重学习速度、任务完成度,以及遇到问题时是否愿意主动查资料、尝试和总结。

七、培训与考核

加入育苗群后,我们会安排基础培训,设置三轮递进式考核筛选,每一轮任务会逐步贴近真实赛场上的开发任务,具体题目和时间以队内通知为准。

考核主要关注:

阶段参考入队时间学习与考核内容
第一阶段
(第一轮考核)
1-4周全体新生统一学习C++,考核重点为指针、面向对象、简单STL库,此阶段不分方向,暂不接触ROS2。完成考核后进行组别分流。
分流节点第4周左右第一阶段考核结束,第二阶段开始前,结合个人兴趣与考核表现,选择进入视觉组或者导航组。
第二阶段
(第二轮考核)
2-3个月导航组:学习ROS2并完成相关考核;目标是能够在RViz中讲清坐标系,理解多坐标系之间的转换关系。
视觉组:不学习ROS2;目标是能够独立写出稳定识别装甲板的识别代码,使用队内提供视频素材,不需要调用真实摄像头。
第三阶段4-6个月本阶段开始系统学习Linux、Git、OpenCV、CMake、RViz等全套开发工具。
视觉组:独立完成视觉自瞄,将代码烧录到实车,完成对靶车识别-计算-云台锁定完整流程。
导航组:完成包含简单决策的点到点导航。

注:表格内时间仅为参考,不做硬性时间限制,评判标准以任务完成质量、代码理解程度、结果可复现能力为主。

八、怎样学习和解决问题

学习开源项目时,建议按照以下顺序进行:

  1. 1.阅读 README,了解项目结构;
  2. 2.在自己的环境中将项目跑通;
  3. 3.使用 rosbag 或样例数据验证结果;
  4. 4.读懂与任务相关的关键模块;
  5. 5.小范围修改,并记录修改前后的变化。

遇到问题时,请先整理好四项信息:你想实现什么、实际发生了什么、已经尝试过什么,以及完整命令和关键日志。排查问题时一次只改一个变量,并记录结果。能够稳定复现的问题,通常更容易解决。

判断一个功能是否真正"能用",至少要看四点:数据是否稳定、指令是否合法、延迟是否可以接受,以及发生异常后能否安全停止或恢复。

算法学习并不要求你从一开始就掌握复杂理论。先把一个小功能做出来,再把它做稳定、讲清楚、复现出来,就是很好的开始。

欢迎加入醒狮战队算法组

期待与你一起,让机器人真正看得见、走得稳、会判断。