Skip to content

模块三:高级话题(ROS 2 底层实现) ​

位置:08-ros / 03_高级话题难度:全 ⭐(入门门槛高 —— 面向已具备 ROS 2 使用经验的进阶读者,需 C++/Linux 功底) 前置模块:模块一 · 基础概念、模块二 · 核心模块


导读 ​

本模块是 ROS 2 知识库里最偏底层的一部分,目标是让你从"会用话题/服务/参数"上升到"能解释并调优 ROS 2 的运行时行为"。六篇文章从架构分层出发,逐层深入线程模型、实时性、进程内通信、安全与中间件选型——这些都是高级岗/系统岗面试与真实项目调优的高频战场。

主题清单 ​

#文档主题难度
01ROS 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、零拷贝⭐
05ROS 2 安全架构(SROS2)DDS-Security、认证/加密/访问控制、信任域⭐
06RMW 实现对比(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 之上,理解前几篇的握手/发现后更容易吃透。

贯穿全模块的三条红线(自查) ​

  1. 底层优先:每篇第 3 节必须落到类名/函数名/头文件(如 rcl_wait、rmw_publish、rclcpp::CallbackGroup::can_be_taken_from_、rmw_qos_profile_t)。
  2. 数字必溯源:所有性能/延迟/吞吐数字要么给来源,要么标注"待验证",绝不编造基准数据。
  3. 交叉引用:与前/后模块及本模块其余文章用相对链接互链,形成知识网络。

前置模块链接 ​