Appearance
ROS 2 工程实践(模块四)README
本模块是 ROS 2 知识库的工程实践篇,回答"如何把 ROS 2 代码变成可量产、可维护、可定位故障的机器人系统"。与前三个模块(概念/核心/高级)偏"原理"不同,本模块全部围绕可执行的工具链、真实包名、工程决策与故障 playbook展开。
前置要求:已完成 模块一·基础概念、模块二·核心模块 学习 难度:⭐⭐⭐(工程进阶)
目录与学习顺序
| 顺序 | 文档 | 主题 | 难度 |
|---|---|---|---|
| 01 | ROS2 应用架构设计模式 | 分层架构、节点粒度、接口契约、故障隔离 | ⭐⭐⭐ |
| 02 | ROS2 测试体系 | 测试金字塔、gtest/pytest、launch_testing、CI | ⭐⭐⭐ |
| 03 | 诊断监控与故障定位 | 日志/诊断/可视化、故障 playbook、性能剖析 | ⭐⭐⭐ |
| 04 | 持续构建发布与部署 | colcon→bloom→构建农场→apt/Docker 部署 | ⭐⭐⭐ |
| 05 | 导航与运动控制栈 | Nav2 / MoveIt 2 / ros2_control 三栈协同 | ⭐⭐⭐ |
| 06 | 仿真与硬件生态 | 仿真器选型、硬件分层、sim-to-real | ⭐⭐ |
建议学习顺序:01 → 02 → 03 → 04 → 05 → 06
- 01→03 构成"架构 → 测试 → 监控"的软件工程闭环,是前四篇的主线。
- 04 是工程化交付(构建/发布/部署),承接 02 的 CI。
- 05、06 是机器人垂直领域(导航/机械臂/控制、仿真/硬件),在 01-04 的工程地基之上展开。
知识图谱位置
模块要点速览
- 架构设计(01):进程边界 = 故障域 + 资源域;消息是模块间唯一契约;进程隔离 + lifecycle + supervisor 三层容错。
- 测试(02):单元测纯库、集成测契约(含 QoS)、仿真回归放 CI 夜间。
- 监控定位(03):先拓扑→再契约→后数据流;话题无数据先查 QoS;executor 阻塞是"节点卡死"头号原因。
- 发布部署(04):colcon→lint/pre-commit→action-ros-ci→bloom→build.ros2.org→index.ros.org→apt/Docker;量产锁 distro。
- 三栈协同(05):Nav2 出
cmd_vel、MoveIt 2 出关节轨迹、ros2_control 统一翻译成硬件指令;仿真换真机只换 hardware_plugin。 - 仿真硬件(06):GZ Sim(开源通用)/Isaac Sim(视觉高保真)/Webots(教学);x86/Jetson/MCU 三层各司其职。
引用与验证约定
本模块所有 URL 均经 web_search 核实,正文标注 ✅(已验证)或 ⚠️(待验证)。ROS 2 官方文档以 Jazzy 为主(https://docs.ros.org/en/jazzy/);Nav2 现行文档域名为 docs.nav2.org,MoveIt 2 为 moveit.picknik.ai,ros2_control 为 control.ros.org。命名规范、消息版本化等无官方强制文档的内容,已明确标注为"社区工程惯例"。