Skip to content

ROS 2 工程实践(模块四)README ​

本模块是 ROS 2 知识库的工程实践篇,回答"如何把 ROS 2 代码变成可量产、可维护、可定位故障的机器人系统"。与前三个模块(概念/核心/高级)偏"原理"不同,本模块全部围绕可执行的工具链、真实包名、工程决策与故障 playbook展开。

前置要求:已完成 模块一·基础概念、模块二·核心模块 学习 难度:⭐⭐⭐(工程进阶)


目录与学习顺序 ​

顺序文档主题难度
01ROS2 应用架构设计模式分层架构、节点粒度、接口契约、故障隔离⭐⭐⭐
02ROS2 测试体系测试金字塔、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 的工程地基之上展开。

知识图谱位置 ​


模块要点速览 ​

  1. 架构设计(01):进程边界 = 故障域 + 资源域;消息是模块间唯一契约;进程隔离 + lifecycle + supervisor 三层容错。
  2. 测试(02):单元测纯库、集成测契约(含 QoS)、仿真回归放 CI 夜间。
  3. 监控定位(03):先拓扑→再契约→后数据流;话题无数据先查 QoS;executor 阻塞是"节点卡死"头号原因。
  4. 发布部署(04):colcon→lint/pre-commit→action-ros-ci→bloom→build.ros2.org→index.ros.org→apt/Docker;量产锁 distro。
  5. 三栈协同(05):Nav2 出 cmd_vel、MoveIt 2 出关节轨迹、ros2_control 统一翻译成硬件指令;仿真换真机只换 hardware_plugin。
  6. 仿真硬件(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。命名规范、消息版本化等无官方强制文档的内容,已明确标注为"社区工程惯例"。