CATEGORY 1 · 核心课程 / CORE-01

机器人 ROS2 应用与开发

20 个递进实验:从 ROS2 概念与命令工具起步,贯通话题 / 服务 / 动作三大通信机制与参数体系,深入 DDS 分布式底座,掌握 rqt、rviz2、rosbag2、Launch 调试工具链,最终以 TF2 坐标变换与 URDF 建模收口。
每个实验都配原理讲解、动画演示与交互沙盒。

📚 20 个实验 ⏱️ 48 学时 🤖 硬件:实验箱 B2 · 小车 C1 🎯 前置:Linux 与 Python 基础
20递进实验
48总学时
5知识篇章
⭐1~3难度跨度
CHAPTER 1

第 1 章 · ROS2 基础与开发环境

认识 ROS2 的设计哲学与命令体系,掌握工作空间与功能包两大工程骨架。

EXP-01⭐ · 2 学时

ROS2 简介

ROS 是什么、为什么机器人需要这层"中间件";ROS1 与 ROS2 架构对比(中心化 Master vs 去中心化 DDS),五层架构与设计特点、Humble 发行版选型,最后跑通 talker / listener 第一个 Hello World。

中间件DDSRMWtalker · listener
▶ 视频讲解27:50 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-02⭐ · 2 学时

ROS2 常用命令工具

程序跑起来就变黑盒?ROS2 把"结构可见"做进了架构:与后端 / 前端 / 小程序 / 嵌入式横向对比后,看 ros2 六大命令族如何零侵入看清运行中的系统,并对比异步话题与同步服务两种通信模型。

CLIros2 runinfo / echo / hz
▶ 视频讲解9:57 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-03⭐ · 2 学时

工作空间

以真实工程为案例:src / build / install / log 四层目录各管什么、colcon 构建的完整流程、Underlay 与 Overlay 的叠层覆盖规则,从源码到跑起来完整走一圈。

colconOverlaysource setup.bash
▶ 视频讲解12:41 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-04⭐⭐ · 2 学时

功能包

ament_python 与 ament_cmake 两类功能包的差别;package.xml 三类依赖的阶段语义、setup.py 与 entry_points 入口注册,最后动手建包跑通话题闭环。

package.xmlCMakeListsentry_points
▶ 视频讲解16:32 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
CHAPTER 2

第 2 章 · 通信机制精讲(节点 · 话题 · 服务 · 动作 · 接口 · 参数)

ROS2 应用开发的核心:搞清几种通信范式的原理差异与选型边界,并用真实传感器与执行器把它们跑起来。

EXP-05⭐ · 2 学时

节点

节点是 ROS2 的"一个岗位":一台机器人身上 20 多个程序怎么分工。以真实节点 gas_sensor_node 为标本,从构造 → spin → 销毁走完整生命周期,讲透"为什么要拆、spin 在转什么、节点怎么接上头"。

rclpyNode 类spin计算图
▶ 视频讲解25:20 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-06⭐⭐ · 4 学时

话题通讯 · MQ5 传感器

发布 / 订阅模式全解析:消息从发布端走到回调里的四个环节、QoS 三要素如何决定"丢消息还是补消息";再把 MQ5 的电压读数经对数换算成 ppm,用阈值报警验证整条链路。

Publisher/SubQoSMQ5
▶ 视频讲解9:45 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-07⭐⭐ · 4 学时

服务通讯 · 指纹传感器

同步请求 / 应答范式的四拍时序与"阻塞"代价;指纹模组 PS_* 串口协议,采图 → 生成特征 → 搜索比对三步验证封装成服务。

Client/ServersrvUART 指纹模组
▶ 视频讲解10:47 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-08⭐⭐⭐ · 4 学时

动作通讯 · RFID 刷卡

Goal / Feedback / Result 三通道模型,以及藏在端点里的 5 条线;MFRC522 寻卡(REQA)→ 防冲突 → 读 UID 三步流程封装成动作服务器,带取消与进度反馈。

ActionGoal/FeedbackMFRC522
▶ 视频讲解18:20 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-09⭐⭐ · 2 学时

自定义接口消息 · 温湿度传感器

从"数据串台"事故入手,讲清为什么要把一份数据打包成一条消息;.msg / .srv / .action 三种接口文件语法与 --- 分隔符,接口包的编译生成与跨语言复用。

.msg.srv接口包
▶ 视频讲解5:43 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-10⭐⭐ · 2 学时

参数服务

参数是"从代码里拉出来的配置项":declare / get / set 三步生命周期,ParameterDescriptor 的两层约束,以及 set_parameters_callback 实现的动态调参闭环与参数持久化。

Parameter动态参数YAML
▶ 视频讲解5:41 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
CHAPTER 3

第 3 章 · 时间体系 · 底层通信与分布式

先把"时间"这个隐性地基打牢,再拆开 DDS 黑盒:发现协议、QoS 匹配、域隔离与跨机通信,理解 ROS2 "去中心化"的底气从何而来。

EXP-11⭐⭐ · 2 学时

时间 API 与双时钟体系

Clock 只有一个出口、只有 use_sim_time 一个开关;系统时钟与 /clock 仿真时钟如何透明切换,create_timer 的真实行为与 Header.stamp 的盖章规范。

ClockTimerstamp
▶ 视频讲解15:07 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-12⭐⭐ · 2 学时

DDS 通信中间件剖析

RMW → RTPS → DDS 分层解剖,Domain / Participant / Endpoint 域模型与 SPDP/SEDP 两阶段发现协议,并给出按数据特性选 QoS 的决策表。

RTPSRMW发现协议
▶ 视频讲解14:09 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-13⭐⭐ · 2 学时

ROS2 分布式通讯

ROS_DOMAIN_ID 到底隔离了什么:组播地址与端口的物理映射、多机组网配置、两种发现模式的取舍,以及 SROS2 安全边界。

DOMAIN_ID多机组网域隔离
▶ 视频讲解6:58 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
CHAPTER 4

第 4 章 · 可视化与调试工具链

rqt 与 rviz2 双可视化入口,rosbag2 数据闭环,Launch 系统与元功能包把单点实验串成系统工程。

EXP-14⭐ · 2 学时

Rqt 工具箱

Qt 插件体系一次加载多处复用;五大核心插件逐个拆——rqt_graph 看拓扑、rqt_plot 画波形、rqt_console 管日志、rqt_topic 查数据、rqt_bag 看录制。

rqt_graphrqt_plot插件
▶ 视频讲解18:50 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-15⭐⭐ · 2 学时

Rviz2 三维可视化

OGRE 渲染引擎 + 插件面板体系;Fixed Frame 决定视角基准,TF 显示与七大 Display 类型的组合调试方法,以及黑屏问题的系统排查路径。

OGREFixed FrameDisplay
▶ 视频讲解9:12 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-16⭐⭐ · 2 学时

录制与回放 rosbag2

bag 文件的 SQLite3 存储原理与 metadata.yaml 的关系,record / play 两大参数族,离线复现现场故障与数据集采集实战。

ros2 bagSQLite3数据回放
▶ 视频讲解15:19 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-17⭐⭐ · 2 学时

Launch 启动系统

ROS2 为什么把启动语言换成 Python:解析、拉起、优雅退出的全过程,以及 remap 重映射、IfCondition 条件、OnProcessExit 事件三件套,最后做综合系统整合。

launch事件remap
▶ 视频讲解11:59 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-18⭐ · 2 学时

元功能包

只声明依赖、不写代码的"打包胶水":讲清是什么、和普通包什么区别、什么场景该用(对照 bringup 包),按仓库场景四步自建一个,并进阶打成 apt 可装的 .deb。

metapackageexec_depend一键安装
▶ 视频讲解5:28 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
CHAPTER 5

第 5 章 · 建模与坐标系统

TF2 坐标树让所有传感器"各归其位",URDF 让机器人在数字世界拥有身体。

EXP-19⭐⭐ · 2 学时

TF2 坐标变换

TF2 树为什么是一棵树:/tf 与 /tf_static 双通道与 QoS 差异、旋转为什么用四元数、查询一条变换链的全过程,并用三种手段验证坐标树。

TF2坐标树odom→base
▶ 视频讲解23:13 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
EXP-20⭐⭐⭐ · 4 学时

URDF 机器人建模

link 三重属性(visual / collision / inertial)与 joint 六类型,惯性矩阵为什么不能拍脑袋;手写完整差分车模型,并用 Xacro 参数化把复用压到 80 行。

URDFlink/jointXacro
▶ 视频讲解24:30 · 点击新窗口播放
👆 点击小节标题或右侧标签直达对应章节
TECH STACK

技术栈与硬件平台

全课程围绕 ROS2 Humble + 真实外设展开,实验数据全部来自实物采集。

ROS2 Humble DDS / RTPS rclpy / rclcpp colcon rviz2 rqt rosbag2 launch TF2 URDF / Xacro MQ5 · 指纹 · RFID 实验箱 B2 · 小车 C1
LEARNING PATH

学习路径建议

先懂原理,再敲命令

每个实验的"核心原理"章节建议在动手前通读——知道了"为什么",命令报错时才知道该去哪里排查。

通信机制是主轴

EXP-05~10 是全课程的脊梁:节点承载一切,话题 / 服务 / 动作 / 参数 / 自定义接口决定你的系统如何拆分与解耦。

善用交互动画

DDS 发现、QoS 匹配、TF2 坐标树这些抽象概念,先在交互沙盒里把参数调一遍,再去终端验证,印象会牢得多。

从单点到系统

EXP-17、18 两关通过后,试着把前面所有实验的节点串进一个 launch 文件、再用元包聚合起来——这就是完整机器人系统的雏形。