直接能照着学、对应真实机器人研发岗的知识清单
我给你整理一份的知识清单,不分虚的,按「通用基础 → 细分岗位 → 学习路线」来写,你可以直接对标自己要走的方向。
我给你整理一份直接能照着学、对应真实机器人研发岗的知识清单,不分虚的,按「通用基础 → 细分岗位 → 学习路线」来写,你可以直接对标自己要走的方向。
一、所有机器人研发岗 必须会的通用知识
不管做硬件、软件、算法,这部分是底线:
-
数学基础
- 高等数学(微积分、微分方程)
- 线性代数(矩阵、旋转、四元数——机器人姿态核心)
- 概率论与数理统计(滤波、定位、误差分析)
-
编程基础
- C/C++(机器人实时控制、底层驱动必用)
- Python(算法、调试、数据处理、快速原型)
- Linux 系统(Ubuntu 为主,命令行、进程、文件系统)
-
通用工程基础
- 常见传感器:陀螺仪、加速度计、编码器、雷达、摄像头
- 通信:UART、CAN、I2C、SPI、以太网
- 基础控制:PID(机器人控制最常用)
二、按岗位方向:你具体要学什么
机器人研发不是一个岗,而是5 个主流方向,你可以挑一个深耕:
1)嵌入式 / 硬件驱动(机器人“手脚”)
适合喜欢电路、底层、实物调试的人
- 单片机/MCU:STM32、ARM、ESP32
- 模电、数电、PCB 设计
- 电机驱动:直流电机、步进、伺服
- 实时操作系统:FreeRTOS、RT-Thread
- 电源、硬件调试、抗干扰
2)运动控制 / 控制算法(机器人“动作”)
机器人关节、底盘、机械臂的核心
- 自动控制原理
- 机器人学:正运动学、逆运动学、动力学
- 伺服控制、减速器、传动
- 进阶:最优控制、自适应控制
3)机器人算法(导航、定位、SLAM)
目前薪资最高、需求最大的方向
- SLAM:激光SLAM / 视觉SLAM
- 路径规划:A*、RRT、动态避障
- 状态估计:卡尔曼滤波 EKF、粒子滤波
- 地图构建、自主导航
4)机器视觉 / 感知(机器人“眼睛”)
- 图像处理:OpenCV
- 相机标定、双目视觉、点云
- 深度学习基础:CNN、目标检测 YOLO
- 识别、跟踪、抓取
5)机器人软件 / ROS 开发(系统集成)
企业里最容易入门、就业面最广
- ROS1 / ROS2(机器人行业标准)
- 节点、话题、服务、TF 坐标变换
- 仿真工具:Gazebo、RViz
- 机器人系统架构、多传感器融合
6)机械结构(机器人“身体”)
- 机械设计、工程制图
- 三维建模:SolidWorks、UG
- 运动仿真、力学仿真
三、最实用:从零基础到能找工作的学习路线
阶段1(1–3 个月)入门通用能力
- C++ 基础 + Python 基础
- Linux 基本操作
- PID + 简单传感器 + 电机控制
- 做一个:循迹小车 / 遥控机械臂
阶段2(3–6 个月)主攻一个方向
- 想做软件/集成:学 ROS2
- 想做底层:学 STM32 + 电机驱动
- 想做算法:学 SLAM / 导航规划
阶段3(6–12 个月)就业级项目
- 自主导航小车
- 六轴机械臂控制
- 视觉抓取机器人
四、企业最看重的 5 个技能(面试高频)
- C++ 编程能力(指针、内存、多线程)
- PID 控制原理与调参
- ROS 使用经验
- 机器人正/逆运动学
- 实际项目(能跑的实物 > 纯理论)
转行专属·6个月机器人研发学习路线
每天2-3小时,走ROS机器人软件+运动控制方向(转行最友好、岗位最多、不用死磕硬件/深算法)
目标岗位:机器人软件工程师、ROS开发工程师
阶段1:编程&系统打底(第1-30天)
每日固定任务
- C++ 基础(1.5h)
变量/循环/函数→指针/引用→类与对象→STL(vector/string/map) - Linux 命令(0.5h)
cd/ls/vim/权限/编译/git 常用指令 - Python 基础(0.5h)
语法/列表/字典/文件/简单串口
✅ 验收:能写C++小程序、熟练用Linux终端、Python跑小脚本
阶段2:机器人核心基础(第31-75天,45天)
每日固定任务
- 控制核心(1h)
PID原理+仿真调参(面试必考,机器人控制灵魂) - 硬件通识(1h)
电机/编码器/IMU/雷达/串口CAN通信 - 小实战(0.5h)
Python模拟PID小车、看懂机器人驱动逻辑
✅ 验收:讲清PID、认识机器人全套传感器
阶段3:ROS2 实战核心(第76-135天,60天)
每日固定任务
- ROS2 理论(1h)
节点/话题/服务/动作/TF坐标/传感器数据 - 仿真工具(0.5h)
RViz2可视化、Gazebo仿真环境 - 编码实战(1h)
写ROS2功能包、跑仿真小车、调导航
✅ 验收:独立跑通激光SLAM+自主导航仿真项目
阶段4:项目+面试冲刺(第136-180天,45天)
每日固定任务
- 完整项目(1.5h)
做1个可演示项目:导航小车/机械臂控制 - 面试刷题(1h)
C++/Linux/ROS/PID 高频题 - 简历包装(0.5h)
把项目写成技术亮点,突出开发能力
✅ 验收:带项目简历+能过技术一面
转行必守小规则
- 每天完成即胜利,不熬夜赶进度
- 每周留1天复盘,不堆新知识
- 只学工作/面试真用得上的内容
机器人研发岗位(转行适配)详细学习路线(6-8个月,每日2-3小时)
核心定位:适配转行人群,优先主攻「ROS机器人软件+运动控制」方向(岗位最多、入门最友好,无需深厚硬件/算法功底),兼顾通用基础,最终能独立完成实战项目、通过企业技术面试,目标岗位:机器人软件工程师、ROS开发工程师、运动控制工程师。
核心原则:不堆无用理论,所有学习内容围绕「面试考点+项目实战」展开;每天完成既定任务即可,不熬夜赶进度;每周留1天复盘,每月1次阶段性验收,避免盲目推进。
第一阶段:基础打底期(第1-30天,共30天)—— 打通编程+系统门槛(转行最关键的入门阶段)
核心目标:掌握机器人研发必备的编程基础(C++/Python)、Linux系统操作,能独立编写简单程序,看懂基础代码,为后续机器人相关学习铺路。
每周任务拆解(共4周+2天复盘)
第1周:C++入门(核心,每天1.5小时)+ Linux基础(每天0.5小时)
-
每日任务(1.5h C++):
-
Day1-2:变量、数据类型(int/float/double/char)、运算符、输入输出(cout/cin),编写3个简单程序(求两数之和、判断奇偶、输出字符串);
-
Day3-4:条件判断(if-else)、循环结构(for/while/do-while),编写2个程序(打印1-100的奇数、求1到n的和);
-
Day5-6:函数(定义、调用、参数传递、返回值),编写1个程序(封装求最大值的函数,传入3个参数返回最大值);
-
Day7:复盘本周内容,修改之前编写的程序,解决报错问题,整理笔记。
-
每日任务(0.5h Linux):
-
Day1-2:安装Ubuntu 20.04/22.04(机器人研发主流系统),熟悉桌面操作,掌握基础命令(cd/ls/pwd/mkdir/rm/cp/mv);
-
Day3-4:vim编辑器使用(打开/编辑/保存/退出),设置简单vim配置(显示行号);
-
Day5-6:用户与权限(sudo指令、chmod权限修改),文件搜索(find/grep);
-
Day7:复盘Linux命令,熟练默写常用命令,能独立完成“创建文件夹→编辑文件→搜索文件”全流程。
第2周:C++核心(指针/引用)+ Linux编译(每天1.5h C++ + 0.5h Linux)
-
每日任务(1.5h C++):
-
Day8-9:指针基础(定义、取值、赋值、空指针),编写程序练习指针操作(用指针修改变量值);
-
Day10-11:引用(定义、与指针的区别),练习引用作为函数参数(通过引用修改实参值);
-
Day12-13:指针与数组(用指针遍历数组、修改数组元素),编写程序实现“指针遍历数组并求和”;
-
Day14:复盘本周内容,整理指针/引用的易错点(如野指针、引用不可修改绑定对象),修改练习中的错误。
-
每日任务(0.5h Linux):
-
Day8-9:Linux编译工具(g++命令,编译单个cpp文件、多个cpp文件);
-
Day10-11:Makefile基础(编写简单Makefile,实现多文件编译);
-
Day12-13:git基础(安装git、配置用户信息、init/add/commit/status/log指令);
-
Day14:复盘编译与git操作,能独立用g++编译多文件程序,用git提交代码。
第3周:C++进阶(类与对象)+ Python基础(每天1.5h C++ + 0.5h Python)
-
每日任务(1.5h C++):
-
Day15-16:类与对象基础(类的定义、对象的创建、成员变量/成员函数),编写“学生类”(包含姓名、年龄,实现赋值和打印功能);
-
Day17-18:访问控制(public/private/protected)、构造函数/析构函数,完善学生类(添加构造函数初始化,析构函数释放资源);
-
Day19-20:继承与多态基础(单继承、子类重写父类函数),编写“动物类→猫类”的继承示例;
-
Day21:复盘本周内容,整理类与对象的核心知识点,修改练习程序,解决继承中的报错。
-
每日任务(0.5h Python):
-
Day15-16:Python环境安装(Anaconda),基础语法(变量、数据类型、输入输出print/input);
-
Day17-18:列表、字典、元组、字符串操作(增删改查);
-
Day19-20:条件判断、循环结构(if-else/for/while),编写简单程序(遍历列表、统计字典元素个数);
-
Day21:复盘Python基础,能独立编写简单的Python脚本,实现基础的数据处理。
第4周:C++ STL + Python进阶(每天1.5h C++ + 0.5h Python)
-
每日任务(1.5h C++):
-
Day22-23:STL容器(vector,向量),练习vector的增删改查、遍历、排序,编写程序实现“vector存储整数并排序”;
-
Day24-25:STL容器(string、map),练习string的拼接、查找,map的键值对操作;
-
Day26-27:STL算法(sort排序、find查找),结合vector练习算法使用;
-
Day28:复盘本周内容,整理STL常用容器和算法,编写1个综合程序(用vector+map+sort实现“统计数字出现次数并排序”)。
-
每日任务(0.5h Python):
-
Day22-23:Python函数(定义、参数、返回值、匿名函数lambda);
-
Day24-25:Python文件操作(打开/读取/写入/关闭文件),编写程序实现“读取文本文件内容并统计行数”;
-
Day26-27:Python简单库(numpy基础,数组创建、遍历、求和);
-
Day28:复盘Python进阶内容,能独立用Python实现简单的文件处理和数据计算。
第5周:阶段验收+复盘(2天)
-
Day29:阶段验收,完成2个综合任务:
-
C++综合:编写一个“图书管理系统”(简单版),包含图书类(书名、作者、价格),实现添加、查询、删除图书功能;
-
Linux+Python综合:用Python编写脚本,读取一个文本文件中的数字,计算平均值,并用git提交脚本文件。
-
Day30:复盘整个基础阶段,整理易错点(如C++野指针、Linux权限报错、Python文件操作异常),补充未掌握的知识点,调整后续学习节奏。
工具推荐
-
C++:VS Code(安装C/C++插件)、Ubuntu自带的g++/make;
-
Linux:Ubuntu 22.04(优先)、Xshell(远程连接,可选);
-
Python:Anaconda、VS Code(安装Python插件)、PyCharm(可选);
-
学习资料:C++ Primer Plus(精简看核心章节)、Linux鸟哥的私房菜(基础章节)、Python基础教程(菜鸟教程,快速入门)。
验收标准(必须达标再进入下一阶段)
-
能独立用C++编写简单的类和程序,熟练使用STL常用容器(vector/string/map);
-
能熟练操作Linux系统,掌握编译、git基础、文件操作等常用命令;
-
能独立用Python编写简单脚本,实现文件处理和基础数据计算;
-
完成阶段验收的2个综合任务,无明显报错,能正常运行。
第二阶段:机器人核心基础期(第31-75天,共45天)—— 理解机器人“底层逻辑”
核心目标:掌握机器人研发必备的控制基础(PID)、硬件通识(电机、传感器)、通信基础(串口/CAN),能理解机器人的运动原理,看懂驱动逻辑,为后续ROS学习和项目实战打基础(面试高频考点集中在此阶段)。
每周任务拆解(共6周+3天复盘/验收)
第1周:数学基础补充(机器人必备)+ PID原理入门(每天1h数学 + 1.5h PID)
-
每日任务(1h 数学):
-
Day31-32:线性代数基础(矩阵定义、矩阵加减、矩阵乘法、单位矩阵、逆矩阵),重点掌握“旋转矩阵”基础(机器人姿态表示核心);
-
Day33-34:线性代数进阶(向量定义、向量点乘/叉乘),理解向量在机器人坐标系中的意义;
-
Day35-36:概率论基础(随机变量、期望、方差、正态分布),简单理解“误差分析”的概念(机器人定位/感知会用到);
-
Day37:复盘数学基础,整理核心公式(旋转矩阵、向量点叉乘),记住关键概念,无需深入推导(转行无需死磕理论)。
-
每日任务(1.5h PID):
-
Day31-32:PID核心概念(比例P、积分I、微分D),理解每个环节的作用(P调节响应速度、I消除静差、D抑制震荡);
-
Day33-34:PID工作原理,推导简单的PID公式,理解“偏差”的定义(目标值-实际值);
-
Day35-36:PID参数调参逻辑(先调P、再调I、最后调D),记住调参口诀(参数太大易震荡、太小响应慢);
-
Day37:用Python编写简单的PID仿真程序(模拟小车速度控制),观察不同参数对控制效果的影响。
第2周:PID实战+机器人硬件通识(电机/编码器)(每天1.5h PID + 1h 硬件)
-
每日任务(1.5h PID):
-
Day38-39:完善Python PID仿真程序,添加“扰动”(模拟实际场景中的误差),调整参数实现稳定控制;
-
Day40-41:学习PID的改进算法(增量式PID),理解增量式与位置式的区别(机器人电机控制常用增量式);
-
Day42-43:用C++编写PID程序(结合之前学的C++基础),实现简单的速度闭环控制逻辑;
-
Day44:复盘PID内容,整理PID原理、公式、调参方法,能清晰讲清PID的作用和调参步骤(面试必问)。
-
每日任务(1h 硬件):
-
Day38-39:机器人常用电机(直流电机、步进电机、伺服电机),理解每种电机的特点和应用场景(伺服电机最常用);
-
Day40-41:编码器基础(增量式编码器、绝对式编码器),理解编码器的作用(测量电机转速、位置);
-
Day42-43:电机驱动原理(驱动板的作用、PWM调速原理),认识常用驱动板(L298N、TB6612);
-
Day44:复盘电机/编码器知识,能区分三种电机的差异,理解编码器与电机的配合逻辑。
第3周:机器人传感器通识+通信基础(串口)(每天1.5h 传感器 + 1h 通信)
-
每日任务(1.5h 传感器):
-
Day45-46:机器人核心传感器(IMU惯性测量单元),理解IMU的作用(测量机器人姿态、加速度、角速度);
-
Day47-48:激光雷达(LiDAR)基础,理解激光雷达的作用(地图构建、避障、定位),认识常用激光雷达(RPLIDAR A1);
-
Day49-50:摄像头基础(单目、双目),理解摄像头在机器人中的应用(视觉识别、视觉定位);
-
Day51:复盘传感器知识,整理每种传感器的核心参数、作用,能说出机器人常用的3种以上传感器及其用途。
-
每日任务(1h 通信):
-
Day45-46:串口通信基础(UART),理解串口通信的原理、波特率、数据位、停止位;
-
Day47-48:用Python编写串口通信程序(读取传感器数据、发送控制指令);
-
Day49-50:用C++编写串口通信程序(结合Linux系统,实现串口读写);
-
Day51:复盘串口通信,能独立用Python/C++实现简单的串口读写,理解波特率等参数的设置逻辑。
第4周:通信进阶(CAN/I2C/SPI)+ 机器人坐标系基础(每天1.5h 通信 + 1h 坐标系)
-
每日任务(1.5h 通信):
-
Day52-53:CAN通信基础(机器人底层常用),理解CAN通信的特点(抗干扰强、多节点通信),认识CAN总线结构;
-
Day54-55:I2C通信基础(传感器常用),理解I2C的主从结构、通信流程;
-
Day56-57:SPI通信基础(高速通信,可选),简单理解SPI的作用和应用场景;
-
Day58:复盘通信知识,整理串口/CAN/I2C的差异和应用场景,能说出机器人中常用的2种以上通信方式。
-
每日任务(1h 坐标系):
-
Day52-53:机器人常用坐标系(世界坐标系、机器人基坐标系、工具坐标系),理解坐标系的定义和作用;
-
Day54-55:坐标变换基础(平移、旋转),结合之前学的旋转矩阵,理解坐标变换的逻辑;
-
Day56-57:四元数基础(机器人姿态表示常用),理解四元数的作用(避免旋转矩阵奇点),记住四元数与旋转矩阵的转换逻辑(无需推导);
-
Day58:复盘坐标系知识,能区分三种坐标系,理解坐标变换在机器人运动中的意义。
第5周:机器人运动原理+简单驱动逻辑(每天1.5h 运动原理 + 1h 驱动逻辑)
-
每日任务(1.5h 运动原理):
-
Day59-60:轮式机器人运动原理(差分驱动、阿克曼转向),理解两种驱动方式的差异和应用场景(差分驱动最常用);
-
Day61-62:机械臂运动原理基础(关节运动、正运动学入门),理解“关节角度→末端位置”的映射逻辑;
-
Day63-64:机器人运动控制逻辑(位置控制、速度控制、力矩控制),理解每种控制方式的应用场景;
-
Day65:复盘运动原理,能讲清差分驱动机器人的运动逻辑,理解正运动学的核心概念。
-
每日任务(1h 驱动逻辑):
-
Day59-60:看懂电机驱动代码(结合C++/串口,理解“发送PWM指令→电机转动”的逻辑);
-
Day61-62:看懂传感器驱动代码(读取IMU/编码器数据,解析数据格式);
-
Day63-64:编写简单的驱动逻辑(用C++读取编码器数据,计算电机转速);
-
Day65:复盘驱动逻辑,能看懂简单的机器人底层驱动代码,理解“传感器→控制器→执行器”的闭环逻辑。
第6周:阶段复盘+验收(7天,含3天验收任务)
-
Day66-67:复盘本阶段核心知识点(PID、硬件、通信、坐标系),整理面试高频问题(如PID调参、电机差异、串口通信参数);
-
Day68-70:阶段验收任务(3天完成):
-
用Python/C++编写PID控制程序,模拟轮式机器人速度控制,实现“目标速度1m/s,实际速度稳定在0.95-1.05m/s”;
-
编写串口通信程序,模拟读取IMU数据(自定义数据格式),并打印出机器人的姿态信息(角度、角速度);
-
整理一份“机器人硬件与通信”笔记,包含电机、传感器、串口/CAN通信的核心知识点(面试可直接参考)。
-
Day71-75:补充未掌握的知识点,重点攻克易错点(如PID参数调参、坐标变换逻辑),调整后续ROS学习的节奏,确保基础扎实。
工具推荐
-
PID仿真:Python(numpy、matplotlib,绘制控制曲线)、MATLAB(可选,快速仿真);
-
通信调试:SSCOM(串口调试助手)、CANoe(CAN通信调试,可选);
-
学习资料:《机器人控制基础》(精简看PID和运动控制章节)、B站“机器人硬件通识”系列视频、ROS官方文档(硬件部分)。
验收标准(必须达标)
-
能清晰讲清PID原理、调参方法,能独立编写PID仿真程序,实现稳定控制;
-
熟悉机器人常用电机、传感器、通信方式,能区分其差异和应用场景;
-
能独立编写串口通信程序,看懂简单的机器人驱动代码;
-
完成阶段验收的3个任务,程序能正常运行,笔记内容完整。
第三阶段:ROS2实战核心期(第76-135天,共60天)—— 机器人研发“核心工具”(就业核心技能)
核心目标:精通ROS2(机器人操作系统,目前主流),掌握ROS2的核心概念、工具使用、编程实战,能独立编写ROS2功能包、实现传感器数据可视化、跑通仿真项目(SLAM+自主导航),这是机器人软件工程师的核心竞争力,面试必考。
每周任务拆解(共8周+4天复盘/验收)
第1周:ROS2基础(安装+核心概念)(每天2h ROS2理论 + 1h 实操)
-
每日任务(2h 理论):
-
Day76-77:ROS2简介(ROS2与ROS1的区别、ROS2的优势),理解ROS2的核心作用(简化机器人开发、实现模块间通信);
-
Day78-79:ROS2核心概念(节点Node、话题Topic、服务Service、动作Action),理解每个概念的定义和作用(重点:话题是异步通信,服务是同步通信);
-
Day80-81:ROS2核心概念(消息Message、服务类型Service Type、参数Parameter),理解消息的格式和使用场景;
-
Day82:复盘ROS2核心概念,整理概念之间的关系(如节点通过话题发布/订阅消息),记住常用术语。
-
每日任务(1h 实操):
-
Day76-77:在Ubuntu 22.04上安装ROS2 Humble(主流版本),解决安装过程中的依赖报错;
-
Day78-79:ROS2常用命令(ros2 node、ros2 topic、ros2 service、ros2 param),练习查看节点、话题、参数;
-
Day80-81:运行ROS2官方示例(talker/listener),观察话题通信过程,用命令查看话题数据;
-
Day82:复盘实操内容,能独立安装ROS2,熟练使用常用命令,运行官方示例。
第2周:ROS2工作空间+功能包开发(每天1.5h 理论 + 1.5h 实操)
-
每日任务(1.5h 理论):
-
Day83-84:ROS2工作空间结构(src、build、install、log),理解每个目录的作用;
-
Day85-86:ROS2功能包开发流程(创建功能包、编写代码、配置CMakeLists.txt/package.xml);
-
Day87-88:ROS2消息与服务的自定义(创建.msg/.srv文件,配置编译);
-
Day89:复盘功能包开发流程,整理CMakeLists.txt/package.xml的核心配置项,记住自定义消息/服务的步骤。
-
每日任务(1.5h 实操):
-
Day83-84:创建ROS2工作空间,创建第一个功能包(hello_ros2);
-
Day85-86:编写简单的节点代码(C++/Python),实现“发布一个话题,发送字符串消息”;
-
Day87-88:自定义一个消息类型(如包含位置x/y/z的消息),编写节点发布/订阅该消息;
-
Day89:复盘实操内容,能独立创建工作空间、功能包,编写简单的话题通信节点,自定义消息。
第3周:ROS2 TF坐标变换+参数服务器(每天1.5h 理论 + 1.5h 实操)
-
每日任务(1.5h 理论):
-
Day90-91:TF2坐标变换基础(ROS2中处理坐标变换的工具),理解TF2的作用(实现不同坐标系之间的转换);
-
Day92-93:TF2的核心概念(广播器Broadcaster、监听器Listener),理解广播器发布坐标变换、监听器接收坐标变换的逻辑;
-
Day94-95:ROS2参数服务器(参数的设置、读取、修改),理解参数服务器的作用(存储机器人配置参数,如PID参数);
-
Day96:复盘TF2和参数服务器,整理TF2坐标变换的流程,记住参数服务器的常用操作。
-
每日任务(1.5h 实操):
-
Day90-91:编写TF2广播器节点(C++/Python),发布机器人基坐标系到工具坐标系的变换;
-
Day92-93:编写TF2监听器节点,接收坐标变换数据,并计算两个坐标系之间的相对位置;
-
Day94-95:编写参数服务器相关节点,实现参数的设置、读取、动态修改(如修改PID参数);
-
Day96:复盘实操内容,能独立编写TF2广播器/监听器,熟练操作参数服务器。
第4周:ROS2传感器数据处理+RViz2可视化(每天1.5h 理论 + 1.5h 实操)
-
每日任务(1.5h 理论):
-
Day97-98:ROS2中传感器数据的发布与订阅(IMU、激光雷达、摄像头),理解传感器消息的格式;
-
Day99-100:RViz2简介(ROS2可视化工具),理解RViz2的作用(可视化传感器数据、机器人姿态、坐标变换);
-
Day101-102:RViz2核心操作(添加显示项、设置坐标系、调整参数),掌握常用的可视化选项;
-
Day103:复盘传感器数据处理与RViz2,整理常用传感器消息的格式,记住RViz2的核心操作。
-
每日任务(1.5h 实操):
-
Day97-98:编写节点,模拟发布IMU、激光雷达数据(自定义消息格式或使用官方消息);
-
Day99-100:启动RViz2,添加IMU、激光雷达显示项,实现传感器数据的可视化;
-
Day101-102:在RViz2中添加TF2坐标变换显示,可视化机器人的坐标系关系;
-
Day103:复盘实操内容,能独立用RViz2可视化传感器数据和坐标变换,编写简单的传感器数据处理节点。
第5周:Gazebo仿真环境+仿真机器人搭建(每天1.5h 理论 + 1.5h 实操)
-
每日任务(1.5h 理论):
-
Day104-105:Gazebo简介(机器人仿真工具),理解Gazebo的作用(模拟真实环境、机器人运动、传感器数据);
-
Day106-107:Gazebo核心概念(世界World、模型Model、关节Joint、传感器Sensor),理解每个概念的定义和作用;
-
Day108-109:ROS2与Gazebo的结合(将Gazebo中的机器人、传感器与ROS2节点关联,发布仿真数据);
-
Day110:复盘Gazebo相关知识,整理Gazebo与ROS2的结合流程,记住核心概念。
-
每日任务(1.5h 实操):
-
Day104-105:安装Gazebo,启动官方仿真世界,熟悉Gazebo的操作界面(添加模型、调整环境);
-
Day106-107:搭建简单的仿真机器人(轮式机器人),添加电机、编码器、激光雷达、IMU传感器;
-
Day108-109:配置ROS2与Gazebo的通信,让仿真机器人的传感器数据发布到ROS2话题中,用RViz2可视化;
-
Day110:复盘实操内容,能独立搭建简单的仿真机器人,实现Gazebo与ROS2的通信,可视化仿真数据。
第6周:ROS2运动控制实战(仿真小车控制)(每天1.5h 理论 + 1.5h 实操)
-
每日任务(1.5h 理论):
-
Day111-112:ROS2中运动控制的核心节点(cmd_vel话题,机器人速度指令),理解cmd_vel消息的格式(线速度、角速度);
-
Day113-114:差分驱动机器人的运动控制逻辑(将cmd_vel指令转换为电机转速);
-
Day115-116:ROS2控制节点的编写(接收cmd_vel指令,发布电机控制指令,结合PID控制);
-
Day117:复盘运动控制实战,整理cmd_vel消息格式、差分驱动控制逻辑,记住控制节点的编写流程。
-
每日任务(1.5h 实操):
-
Day111-112:编写节点,发布cmd_vel话题指令(控制仿真小车前进、后退、转弯);
-
Day113-114:编写运动控制节点,接收cmd_vel指令,结合PID控制,驱动仿真小车运动;
-
Day115-116:调试控制节点,调整PID参数,实现小车的稳定控制(如直线行驶不跑偏、转弯平稳);
-
Day117:复盘实操内容,能独立编写运动控制节点,实现仿真小车的速度控制和转向控制。
第7周:SLAM算法基础+ROS2 SLAM实战(每天1.5h 理论 + 1.5h 实操)
-
每日任务(1.5h 理论):
-
Day118-119:SLAM简介(即时定位与地图构建),理解SLAM的核心作用(机器人在未知环境中定位并构建地图);
-
Day120-121:激光SLAM基础(GMapping、Cartographer算法),理解两种算法的特点(Cartographer更常用、精度更高);
-
Day122-123:ROS2中SLAM功能包的使用(安装GMapping/Cartographer功能包,配置参数);
-
Day124:复盘SLAM相关知识,整理SLAM的核心流程,记住ROS2中常用的SLAM功能包。
-
每日任务(1.5h 实操):
-
Day118-119:安装ROS2 SLAM相关功能包(GMapping、Cartographer),解决依赖报错;
-
Day120-121:启动仿真小车和SLAM功能包,控制小车在仿真环境中移动,构建地图;
-
Day122-123:调试SLAM参数(如激光雷达话题、机器人运动速度),优化地图精度;
-
Day124:保存构建好的地图,复盘实操内容,能独立跑通激光SLAM,构建完整的仿真地图。
第8周:自主导航实战+阶段验收(7天,含3天验收任务)
-
Day125-126:ROS2自主导航基础(Nav2功能包),理解自主导航的核心流程(定位→路径规划→运动控制);
-
Day127-128:实操自主导航(配置Nav2参数,加载之前构建的地图,实现仿真小车自主导航、避障);
-
Day129-131:阶段验收任务(3天完成):
-
搭建完整的仿真机器人(轮式小车,带激光雷达、IMU),实现ROS2与Gazebo的通信;
-
跑通激光SLAM(Cartographer),构建仿真环境地图并保存;
-
配置Nav2自主导航,实现小车从起点到终点的自主导航,能躲避仿真环境中的障碍物;
-
整理ROS2实战笔记,包含功能包开发、TF坐标变换、SLAM、自主导航的核心步骤和代码。
-
Day132-135:复盘本阶段内容,攻克易错点(如SLAM地图精度低、自主导航避障失败),补充未掌握的ROS2知识点,为后续项目冲刺做准备。
工具推荐
-
ROS2:Ubuntu 22.04 + ROS2 Humble,VS Code(安装ROS2插件);
-
仿真工具:Gazebo 11/12,RViz2;
-
SLAM/导航:Cartographer功能包、Nav2功能包;
-
学习资料:ROS2官方文档(Humble版本)、B站“ROS2实战教程”、《ROS2入门到精通》(精简看核心章节)。
验收标准(核心,直接关联就业)
-
能独立搭建ROS2工作空间、创建功能包,编写节点实现话题/服务/参数通信;
-
能熟练使用RViz2可视化传感器数据、坐标变换,使用Gazebo搭建仿真机器人;
-
能独立跑通激光SLAM(Cartographer),构建地图并保存;
-
能配置Nav2自主导航,实现仿真小车的自主导航和避障;
-
完成阶段验收的4个任务,项目能正常演示,笔记内容完整。
第四阶段:项目冲刺期(第136-170天,共35天)—— 打造就业“敲门砖”(面试核心加分项)
核心目标:完成1-2个完整的、可演示的机器人实战项目(优先仿真项目,转行无需实物,重点体现开发能力),将之前学的知识点(C++/Python、Linux、PID、ROS2、SLAM、导航)整合起来,形成项目经验,为简历和面试做准备。
项目选择(2选1,优先项目1,难度适中、贴合岗位需求)
项目1:ROS2自主导航小车(仿真版,推荐)—— 最贴合机器人软件工程师岗位,面试高频
项目2:ROS2机械臂控制(仿真版,可选)—— 适合喜欢机械臂方向的同学,难度稍高
每周任务拆解(以项目1为例,共5周,每天2.5h 项目开发 + 0.5h 笔记整理)
第1周:项目需求分析+环境搭建(5天)
-
Day136:项目需求分析,明确项目目标(搭建仿真小车、实现SLAM地图构建、自主导航、避障、远程控制),梳理项目模块(机器人模型模块、传感器模块、SLAM模块、导航模块、控制模块);
-
Day137:搭建项目工作空间,创建项目所需的功能包(如robot_model、sensor_driver、slam_node、nav_node、control_node);
-
Day138:配置项目依赖(ROS2 Humble、Gazebo、Cartographer、Nav2等功能包),解决依赖报错;
-
Day139:搭建仿真环境(在Gazebo中创建简单的室内环境,添加障碍物);
-
Day140:整理项目文档,记录项目需求、模块划分、环境配置步骤,每天同步项目笔记。
第2周:机器人模型搭建+传感器驱动开发(7天)
-
Day141-142:搭建仿真机器人模型(轮式差分小车),添加电机、编码器、激光雷达(RPLIDAR A1)、IMU传感器,配置关节和物理属性;
-
Day143-144:开发传感器驱动节点(编写激光雷达、IMU的驱动代码,实现传感器数据的发布,确保数据格式正确);
-
Day145-146:调试传感器驱动,用RViz2可视化传感器数据,确保数据稳定、无异常;
-
Day147:整理模块开发笔记,记录机器人模型搭建步骤、传感器驱动代码逻辑,解决开发中的问题(如传感器数据无输出)。
第3周:SLAM模块+运动控制模块开发(7天)
-
Day148-149:集成Cartographer SLAM功能包,配置SLAM参数(激光雷达话题、机器人尺寸、运动速度等);
-
Day150-151:开发SLAM控制节点,实现“控制小车移动→构建地图”的自动化流程,优化地图精度;
-
Day153-154:开发运动控制模块,编写节点接收cmd_vel指令,结合PID控制,驱动小车运动,调试PID参数确保运动稳定;
-
Day155:调试SLAM+运动控制模块,实现小车移动过程中稳定构建地图,保存地图文件,整理开发笔记。
第4周:自主导航模块开发+避障调试(7天)
-
Day156-157:集成Nav2自主导航功能包,配置导航参数(地图文件、路径规划算法、避障参数);
-
Day158-159:开发自主导航节点,实现“加载地图→设置起点和终点→自主导航”的功能;
-
Day160-161:调试避障功能,确保小车在导航过程中能躲避仿真环境中的障碍物,优化避障参数(如避障距离、转向速度);
-
Day162:调试自主导航模块,解决导航过程中的问题(如路径规划不合理、小车跑偏、避障失败),整理开发笔记。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)