嵌入式组与软件算法组公共路线
路线定位
本路线面向准备进入嵌入式组或软件算法组的成员,只说明共同基础、学习顺序、实践目标和分流要求。具体技术内容位于与“Vinci机器人队培养计划”同级的独立教程中,本路线通过链接引用,不在本目录下新建C++、Linux、STM32或ROS2技术教程。
历史上曾使用“电控组”“控制组”“电路组”“视觉算法组”等称谓。现行职责不是简单改名:
嵌入式组由原电路组及原控制组中的嵌入式开发、底层驱动、实时闭环、电机控制和嵌入式通信职责整合而来。
软件算法组由原视觉算法组及原控制组中的Linux/ROS、运动学、里程计、状态估计、机器人运动控制和上位机软件职责整合而来。
两组协作边界
软件算法组负责感知结果、目标位姿、运动学、轨迹、期望速度或位置、状态估计、导航和任务决策;嵌入式组负责接收指令、MCU实时任务、传感器与执行器底层驱动、电机速度环和位置环、嵌入式协议以及安全保护。两组应共同约定消息字段、单位、坐标系、更新频率、超时策略、故障码和反馈内容。
公共学习阶段
第一阶段:C/C++基础
学习目标:
能独立编写、编译和调试简单的C/C++程序。
掌握变量、数据类型、流程控制、数组、函数、指针、引用、结构体、枚举和联合体。
理解头文件、源文件、声明、定义、作用域、生命周期和多文件工程。
掌握类与对象、封装、继承、多态、模板和常用STL容器。
理解基本内存管理、RAII和智能指针,避免未初始化、越界和悬空指针等问题。
推荐教程:
Vinci机器人队C/C++教程(基础可用)
C/C++开发环境搭建(基础可用)
第二阶段:Git与协作
学习目标:
能完成仓库克隆、分支创建、提交、拉取、合并和冲突处理。
提交前能检查差异,不提交编译产物、密钥或无关文件。
能编写清晰的提交说明、README和问题复现步骤。
推荐教程:
Vinci机器人队Git教程(基础可用)
第三阶段:Linux基础
学习目标:
理解目录、用户、权限、软件包和进程等基本概念。
会使用终端完成文件管理、软件安装、日志查看和远程连接。
能使用SSH、SCP和常见Shell命令完成开发环境维护。
嵌入式组需要掌握交叉编译、串口设备、调试器和构建工具所需的Linux基础;软件算法组需要进一步掌握Linux部署、服务、设备权限、网络和性能诊断。
推荐教程:
Linux教程(基础可用)
第四阶段:CMake与工程基础
学习目标:
理解编译、链接、静态库、动态库、头文件搜索路径和依赖关系。
能组织包含
src、include和多个模块的C/C++工程。能阅读并修改基础
CMakeLists.txt,定位常见编译和链接错误。
推荐教程:
CMake工程模板(基础可用)
CMake C/C++编译环境配置(基础可用)
第五阶段:调试与工程习惯
学习目标:
能根据错误信息、日志、断点和最小复现定位问题。
能阅读数据手册、官方文档和现有工程,而不是只复制代码片段。
统一使用明确的单位、类型、命名和错误处理方式。
修改公共接口前主动与另一组确认兼容性。
公共实践与考核
建议公共实践至少包含:
创建一个多文件C/C++工程,使用CMake构建。
使用Git分支完成一次功能开发、代码检查和合并。
在Linux下完成编译、运行、日志记录和问题排查。
编写README,说明环境、构建方法、运行方法和已知限制。
公共基础考核覆盖C/C++、Git、Linux基础、CMake基础和基本工程能力。完成公共路线后再进入专项分流:
公共能力检查表
以下检查表由原控制路线和原综合路线迁移,用于检查是否真正掌握公共基础,而不是要求死记概念:
C/C++
基本类型、常量、运算符、作用域、生命周期和内存分区。
if、switch、while、do-while和for等流程结构。一维与多维数组、字符串、数组与指针。
函数声明、定义、调用、参数传递、默认参数、重载和函数模板。
指针、引用、结构体、枚举、联合体和类型别名。
头文件、源文件、自定义库、C与C++混合编译。
命名空间、类与对象、构造与析构、封装、友元和运算符重载。
继承、多态、类模板和常用STL容器与算法。
动态内存、RAII、智能指针、移动语义和基础错误处理。
基础并发、文件操作和常用标准库能力根据项目逐步学习。
Linux与工程工具
安装和维护常用Linux开发环境,理解系统目录和启动过程的基本概念。
文件与目录、用户与用户组、权限、磁盘和软件包管理。
ssh、scp、编辑器、Shell脚本和日志查看。Git分支、提交、合并、冲突处理和远程仓库协作。
CMake目标、包含目录、链接库、依赖和构建目录。
使用调试器、编译器错误、运行日志和最小复现定位问题。
教程状态说明
完整:队内教程能够支持从入门到实践。
基础可用:基础部分可以自学,进阶或实机内容仍需补充。
在建:已有正文,但缺少关键章节。
待建设:暂无对应队内教程,只在路线中记录,不创建空Markdown文件。
待更新:现有内容存在版本或平台更新需求。
项目选修:根据当年赛题和项目需求学习。







