入门学习概览
“入门学习”用于帮助新成员建立对四足组软件工作的整体认识,并提供后续学习和项目实践的入口。
四足组以四足机器人运动控制为核心,主要采用强化学习技术栈,同时负责策略部署、实机调试、机器人通信,以及为比赛任务服务的定位、导航和感知等工作。根据每年的足式赛道赛题,组内也可能承担机械臂、特殊机构或其他机器人平台的软件控制与系统集成工作。机械结构与硬件电路主要由机器人队的机械组和硬件组负责,但软件成员仍需要了解与开发相关的基本接口、执行器、传感器和整机结构。
除了具体技术能力,组内也重视 AI 与 Agent 的使用能力以及基本的工程实践能力。它们不会只对应某一个项目,而会贯穿资料学习、代码阅读、开发实现、问题排查和项目协作的全过程。
首先建立参与机器人软件开发所需的基本能力,包括 Linux、Git / GitHub、Python、C / C++ 和常用开发工具。
这一部分不要求系统学习完整的操作系统或编程语言知识,重点是能够进入实际项目环境,运行程序、阅读代码、管理修改并完成基本问题排查。
AI 与 Agent 协作
Section titled “AI 与 Agent 协作”AI 与 Agent 已经成为软件学习和开发中的重要工具。入门阶段需要了解大语言模型和 Agent 的基本概念,并逐步学会利用它们辅助查找资料、理解代码、分析报错、修改程序、整理文档和完成测试。
我们希望在学习过程中建立一套可靠的协作方式,例如:
- 能够清楚描述目标、环境、现象和已经尝试的方法;
- 在处理已有项目时,先让 Agent 阅读和理解代码,再制定修改方案;
- 修改后主动检查 diff、编译结果、日志和实际运行表现;
- 对 AI 给出的结论保持检查,不将生成内容直接视为正确答案;
- 涉及电机控制、系统权限、破坏性命令和实机测试时保持必要的人工确认;
- 不向模型或外部服务提供密码、Token、私钥等敏感信息。
AI 可以提高进入陌生领域和处理复杂项目的效率,但最终仍需要能够理解代码、解释方案并通过实际实验验证结果。具体使用的模型、Agent 和开发工具可能随时间调整,本文档更关注长期有效的使用方法。
机器人软件基础
Section titled “机器人软件基础”在开始具体算法之前,需要先理解机器人软件系统是怎样工作的,包括:
- 坐标系、关节、执行器和传感器等基本概念;
- 机器人状态、控制指令和控制周期;
- 不同程序之间的数据流与通信方式;
- ROS 2 中 Node、Topic、Service 等基础概念;
- 从传感器反馈到控制输出的基本闭环。
ROS 2 是目前已经在队内实际验证和使用的软件技术栈,因此暂时作为基础内容学习。具体项目后续是否继续使用 ROS 2,则根据实际架构决定。
四足强化学习与仿真
Section titled “四足强化学习与仿真”这是四足组最核心的技术主线。
入门阶段需要逐步理解 Environment、Observation、Action、Reward、Policy、Episode 等基本概念,了解 PPO 在四足运动控制中的作用,并接触 Isaac Gym、Isaac Lab、MuJoCo 等仿真工具。
所有成员都建议至少亲手完成一次四足机器人强化学习训练,经历从环境运行、策略训练、结果评估到模型导出的基本过程。即使后续主要负责定位、导航或系统开发,也需要理解四足运动控制模块的输入、输出和工作方式。
实机部署与调试
Section titled “实机部署与调试”训练得到策略只是完整流程的一部分。四足组还需要将模型真正运行在机器人上,并处理实机系统中的各种问题。
这部分会涉及模型推理、Observation 构建、Action 映射、PD 控制、电机通信、IMU 与状态反馈、程序运行周期、ROS 2 通信、日志记录、Sim-to-Real 和实机安全等内容。
学习重点不仅是“程序能够运行”,还包括能够根据日志、数据和实验现象定位问题,并判断问题来自算法、软件、通信、硬件还是机械系统。
定位、导航与感知
Section titled “定位、导航与感知”比赛任务通常不仅要求机器人能够稳定运动,还需要知道自己在哪里、应该去哪里以及如何到达目标位置。
这一部分主要介绍 LiDAR、Camera、IMU 等传感器,以及定位、建图、路径规划、导航和基础感知之间的关系。具体算法和工具根据当届比赛方案进一步学习。
机械臂基础与控制
Section titled “机械臂基础与控制”机械臂并不是四足组每届比赛都会使用的平台,但在已经完成的比赛项目中,机械臂控制曾作为重要的软件任务出现,因此将其作为一个相对独立的拓展方向保留在入门学习中。
这一部分主要从软件与控制角度介绍机械臂,包括关节空间与笛卡尔空间、正运动学与逆运动学、轨迹生成、基本控制方式、末端执行器以及实机调试等内容。学习目标是能够理解机械臂控制程序的基本结构,并在需要时参与机械臂相关的软件开发,而不是机械结构设计或加工。
对于四足机器人搭载机械臂的场景,还需要进一步关注机械臂动作与机身运动之间的影响,以及机械臂控制如何与四足运动控制、传感器和上层任务进行配合。
除机械臂外,每年的赛题还可能出现其他特殊机构或机器人形式。这些内容可能会有变化,不作为固定的入门学习章节,具体需要根据当届项目再组织学习。
机器人开发需要能够留下可验证、可复现的结果。学习和项目过程中应逐渐养成以下习惯:
- 明确任务目标、输入、输出和完成标准;
- 记录使用的环境、参数和实际操作步骤;
- 使用日志、数据、截图或视频验证结果;
- 区分已经确认的现象、当前判断和仍待验证的猜测;
- 记录已经尝试的方法和尚未解决的问题;
- 使用 Git 管理代码修改,并保留必要的说明文档。
AI 与 Agent 的使用也应遵循这些原则。无论代码由谁编写、方案由谁提出,最终结果都应该能够被解释、验证和复现。
推荐学习方式
Section titled “推荐学习方式”不需要在加入前一次性掌握上述全部内容。推荐按照下面的顺序逐步建立能力:
- 先了解 Linux、Git、编程、AI / Agent 使用、机器人和强化学习的基础概念;
- 熟悉 ROS 2 和机器人软件的基本数据流,理解各模块之间怎样交换状态与控制信息;
- 通过统一的入门任务实际运行四足仿真环境,并亲手完成一次强化学习训练;
- 进一步理解模型部署、机器人通信和实机调试流程;
- 根据后续项目需要,深入定位导航、感知、机械臂控制或其他具体方向。
学习过程中不要求脱离 AI 独立完成所有工作。更重要的是能够正确使用工具提高学习和开发效率,同时保持对代码、结论和实验结果的判断能力。
比起记住大量术语,我们更希望你最终能够理解各模块在完整机器人系统中的作用,知道遇到问题时应该如何获取信息、提出假设、进行验证,并逐步形成独立完成任务的能力。