Skip to content

第零章 · ROS 2 技术全景图谱 ​

目标:建立 ROS 2 的全景视角,理解其演进、分支、架构、选型。 覆盖范围:80%+ 关键技术 | 更新时间:2026-08-25 读者假设:有 C++/Python 基础,对发布订阅、中间件有初步概念。


0.1 ROS 2 技术演进时间线 ​

2008       2012        2014-2016     2016         2019-2021       2022           2024            2025          2026
  |          |            |            |             |              |               |               |             |
[ROS 1 开]→[OSRF 成立]→[ROS 2 立项]→[Ardent 首发]→[每 9 个月 1 版]→[Humble LTS]→[Jazzy LTS 发布]→[Kilted 发布]→[L 系列]
[开源]     [基金会]     [设计阶段]    [首个发行版]   [Crystal 起     [5 年支持      [5 年支持,       [年度发布,    [Lyrical Luth
                                                   冻结发行版]     至 2027]     Python 3 全面]   多平台成熟]  官方公告发布

各阶段详解 ​

阶段时间核心特征代表技术/项目
ROS 1 时代2008-2016Willow Garage / Stanford 起源的开源机器人软件框架;master 单点协调;单机假设;无内建安全ROS 1 (ros.ros.org), moveit, nav_stack (ros1)
治理成型2012-2014非营利基金会出现(2012 年社区资料记载的基金会成立),项目治理从单一公司走向社区/基金会OSRF(非营利,具体沿革以官方页为准,待细核)
ROS 2 设计与落地2014-2016为"多机、实时、安全、多平台"重新设计通信底座;选 DDS 替代自研通信Ardent Aesthetics(2016 首个发行版)
年度发行版节奏2019-2021Crystal/Dashing/Eloquent/Foxy/Galactic:约 9-12 个月一个发行版,字母序命名rclcpp/rcl/rmw 分层稳定,ros2cli 成型
LTS 常态化2022Humble Hawksbill(2022-05)为 5 年支持的 LTS 版Humble + nav2/moveit2 全面 ROS 2 化
当前主力 LTS2024-2029Jazzy Jalisco(2024-05 发布):官方定位 LTS、5 年支持Jazzy + Gazebo(gz) 生态
年度版2025-2026Kilted Kaiju(2025-05 发布);Lyrical Luth(2026-05 发布,✅ 官方公告:ROS 2 Lyrical Luth Released!;官方文档已含 lyrical 分支,如 Windows-Install-Binary)Kilted, Lyrical, rolling

发行版名称遵循"字母序 + 押韵词"惯例(Ardent → Bouncy → … → Kilted → Lyrical),每版冻结后独立维护; Jazzy(以及前序 Humble)是当前的 LTS 主力(官方:Jazzy Jalisco Released,Kilted 发布说明:Release-Kilted-Kaiju); Kilted 与 Lyrical 为年度版(Lyrical Luth 于 2026-05 官方公告发布,其支持级别以官方文档为准)。 完整发行版与支持周期以官方 Releases 与 Roadmap 为准。


0.2 ROS 2 技术分支知识图谱 ​

带 * 的项目为具体支持情况以官方文档为准(见 04 模块与 05 模块,个别条目标注待验证)。

分层心智模型(自上而下) ​

┌─────────────────────────────────────────────────────────────┐
│  应用层:你的节点 + Nav2 / MoveIt2 / ros2_control / 感知      │
├─────────────────────────────────────────────────────────────┤
│  客户端库:rclcpp (C++) / rclpy (Python)                     │
├─────────────────────────────────────────────────────────────┤
│  rcl:C 语言运行时(context · waitset · guard condition)     │
├─────────────────────────────────────────────────────────────┤
│  rmw:中间件抽象纯虚接口(rmw_send / rmw_take / rmw_wait…)   │
├─────────────────────────────────────────────────────────────┤
│  RMW 实现:rmw_fastrtps / rmw_cyclonedds / …                 │
│  DDS 厂商:eProsima Fast DDS / Open Source(C++) Cyclone DDS / │
└─────────────────────────────────────────────────────────────┘

关键设计:rcl/rmw 的解耦使"同一份应用代码可以换底层 DDS"——这是 ROS 2 相对 ROS 1 最大的架构进步(详见 03_ROS2架构分层详解)。


0.3 技术选型指南 ​

按场景选择 ​

场景推荐方案备选方案理由
学习/原型Jazzy LTSKiltedLTS 文档/包最齐,5 年支持
生产部署(长生命周期)Jazzy LTSHumble(存量项目)官方 LTS 定位,生态成熟
需要新特性/新 APILyrical / rollingKiltedLyrical 为最新年度版(2026-05),新特性先进 rolling
MCU 传感器节点micro-ROS标准 ROS 2(x86)micro-ROS 专为 Cortex-M/RISC-V 设计(详见 05_microROS2)
实时控制环(≥1kHz)C++ 组件化 + RT 纪律 + 共享内存Python 不可详见 03_实时性
机械臂规划MoveIt 2自研 IK/规划器成熟求解器栈
移动底盘导航Nav2ROS 1 nav(仅存量)BT 恢复、多机、QoS
跨 DDS 性能敏感链路按 RMW 对比选型默认 Fast DDS详见 06_RMW对比

按团队规模选择 ​

团队规模推荐栈理由
1-3 人Jazzy + Python(rclpy) + 单层 launch上手快,单 distro 即可
5-20 人Jazzy + C++/Python 混编 + ament 分包 + CI(pre-commit+colcon test)接口契约化,测试兜底
20+ 人上述 + 独立 DDS/RMW 选型组 + 安全组(SROS2) + 仿真回归流水线多域隔离、审计与可维护性成为主要矛盾

语言选型 ​

层推荐语言理由
高实时控制环、驱动、感知热点C++无 GIL、可 RT 纪律
业务逻辑、规划、学习/数据Python开发效率高(注意 GIL 限制,见 02_线程模型)
混合同进程组件化进程内通信省序列化/拷贝

0.4 核心术语表 ​

术语英文定义
节点NodeROS 2 进程内的可复用计算单元(可组件化、可多 context 隔离)
话题Topic发布订阅的命名通道,节点间解耦通信
发布者/订阅者Publisher/Subscriber话题两端;默认 QoS reliable + volatile + keep_last(10)
服务Service请求-应答语义,适合短任务
动作Action目标-反馈-结果三段式,适合长任务可取消
参数Parameter节点级可动态读写配置,类型化
QoSQoS质量策略四维:reliability/durability/history/liveliness
DDSDDSOMG 数据分发中间件,ROS 2 的通信底座之一
RMWrmwROS 2 中间件抽象层,屏蔽具体 DDS 实现
rclrclROS 2 的 C 运行时(context/waitset/guard condition)
Executorexecutorrclcpp/rclpy 的事件调度循环(wait → take → invoke)
回调组Callback group同一 group 内互斥/可重入的回调调度单元
生命周期节点Lifecycle node带状态机(unconfigured→inactive→active…)的节点
TF2tf2ROS 2 的坐标变换库(frame 为节点、transform 为边的有向图)
ROSBag2rosbag2话题记录/回放系统,存储插件机制(mcap 默认,sqlite3 旧)
发行版DistroROS 2 按字母序冻结的发布版本(Jazzy/Kilted/…)
工作空间Workspacesrc/ + 构建产物,colcon 构建的基本单元
进程内通信Intra-process同进程订阅跳过 DDS,直接传对象
组件节点Composable node可编译成 .so、同进程加载的节点
micro-ROSmicro-ROSMCU 侧的 ROS 2 轻量实现(agent 代理模式)
SROS2SROS2ROS 2 安全方案(DDS-Security:认证/加密/访问控制)

0.5 行业生态 ​

主流厂商/组织 ​

组织定位代表产品
Open Robotics(公司)ROS 2 的核心开发与发布方Jazzy/Kilted 等发行版、ros2_control、导航/移动平台
eProsimaFast DDS 厂商;ROS 2 TSC RMW 报告贡献方Fast DDS、rmw_fastrtps
Cyclone DDS 维护方(社区/Open Source 组织,具体署名以官方为准)Cyclone DDS 生态rmw_cyclonedds
ROS 2 TSC(技术指导委员会)跨包版本治理、发布决策发行版发布流程(见 Releases)
Open Robotics 博客 / ROSCon社区与会议Open Robotics Blog、ROSCon(roscon.ros.org/2026,Toronto)
Index二进制包仓库index.ros.org
ros2(GitHub org)核心源码仓库集合(rcl/rclcpp/rmw_*/ros2cli…)github.com/ros2

社区资源 ​

组织署名与具体产品归属建议以各官方页为准;本表不做强断言,待细核后回填。


0.6 本章总结 ​

  • ROS 2 的本质:一套"中间件 + 工具集 + 生态",不是操作系统;通信底座是 DDS,分层为 rcl/rmw/DDS 三层(架构详解)。
  • 演进主线:从"单机"假设到"多机/实时/安全/多平台"四支柱(01_什么是ROS2)。
  • 当前 LTS:Jazzy Jalisco(2024-05,5 年支持),Kilted Kaiju(2025-05)是年度版;Lyrical Luth(2026-05 官方公告发布,✅ 已核实)为最新年度版。
  • 功能栈三大件:Nav2(移动导航)/ MoveIt 2(机械臂)/ ros2_control(控制抽象),叠加感知与仿真形成完整机器人栈(05_导航与运动控制栈)。
  • 工程化成熟:colcon/ament 构建、index 包仓库、CI/测试、SROS2 安全、micro-ROS 到 MCU,构成从实验室到量产的完整链条(04_模块导读)。

📅 最后更新:2026-08-25