Appearance
模块三:高级话题(ROS 2 底层实现)
位置:
08-ros / 03_高级话题难度:全 ⭐(入门门槛高 —— 面向已具备 ROS 2 使用经验的进阶读者,需 C++/Linux 功底) 前置模块:模块一 · 基础概念、模块二 · 核心模块
导读
本模块是 ROS 2 知识库里最偏底层的一部分,目标是让你从"会用话题/服务/参数"上升到"能解释并调优 ROS 2 的运行时行为"。六篇文章从架构分层出发,逐层深入线程模型、实时性、进程内通信、安全与中间件选型——这些都是高级岗/系统岗面试与真实项目调优的高频战场。
主题清单
| # | 文档 | 主题 | 难度 |
|---|---|---|---|
| 01 | ROS 2 架构分层详解 | rcl / rmw / DDS 分层、Context、waitset、guard condition | ⭐ |
| 02 | 线程模型与 Executor 深度解析 | Callback Group、单/多线程执行器、死锁、GIL | ⭐ |
| 03 | 实时性与任务调度 | PREEMPT_RT、SCHED_FIFO、RT 纪律、cyclictest | ⭐ |
| 04 | 组件化与进程内通信 | Composable Node、intra-process、SHM、零拷贝 | ⭐ |
| 05 | ROS 2 安全架构(SROS2) | DDS-Security、认证/加密/访问控制、信任域 | ⭐ |
| 06 | RMW 实现对比(Fast DDS vs Cyclone DDS) | rmw 抽象、切换、TSC 报告、选型 | ⭐ |
建议学习顺序
01 架构分层 → 02 线程模型/Executor → 03 实时性 → 04 组件化/进程内通信 → 06 RMW 对比 → 05 安全(SROS2)- 01 是全模块的地基:先建立
rcl → rmw → DDS的调用链心智模型。 - 02/03 紧贴 01 的 waitset 机制,讲调度与实时,是性能调优的主线。
- 04 是 01 的"优化路径":跳过 DDS 的 intra-process 与组件化。
- 06 回到 rmw 层做选型;05 放到最后,因为安全叠加在 DDS-Security 之上,理解前几篇的握手/发现后更容易吃透。
贯穿全模块的三条红线(自查)
- 底层优先:每篇第 3 节必须落到类名/函数名/头文件(如
rcl_wait、rmw_publish、rclcpp::CallbackGroup::can_be_taken_from_、rmw_qos_profile_t)。 - 数字必溯源:所有性能/延迟/吞吐数字要么给来源,要么标注"待验证",绝不编造基准数据。
- 交叉引用:与前/后模块及本模块其余文章用相对链接互链,形成知识网络。
前置模块链接
- 模块一 · 基础概念 —— 话题/服务/参数、QoS 基础
- 模块二 · 核心模块 —— 节点、launch、tf、生命周期等
- 后续:模块四 · 工程实践 —— 部署、测试、CI、容器化