X:000 · Y:000SECTOR / AIv0.9.SIGNALNO_ADS // NO_TRACK
CILLIAN.AI
← MEMORY

ROS 2 不是操作系统:节点、话题、服务与 Action

零基础建立 ROS 2 心智模型:是什么/不是什么、通信四件套、工作空间、常用工具,以及和单片机的边界。进阶 DDS/QoS 另见本站专题。

3 MIN READ~2100 CHARS
ROS 2 不是操作系统:节点、话题、服务与 Action

名字叫 Robot Operating System,但 ROS 2 不是替代 Ubuntu 的 OS,也不是烧进 51 单片机里的系统。本文面向第一次接触 ROS 2 的读者;若你已熟悉 ROS 1、要迁 DDS/QoS,请直接看 ROS 2 要点

系列入口:机器人栈分层

ROS 2 是什么 / 不是什么

ROS 2 是一套机器人中间件 + 工具 + 生态约定

  • 把软件拆成多个节点(Node)
  • 用标准方式做通信、参数、启动、可视化、录包
  • 社区有大量驱动、导航、感知相关包
ROS 2 是 ROS 2 不是
跑在 Linux(等)之上的中间件生态 替代 Ubuntu 的操作系统
进程间通信与工具链 单片机上的裸机 OS
包结构、接口、QoS 等约定 某一个品牌的控制器固件
便于组队与复用的软件平台 「装上就会自己导航」的成品大脑

底层传输常见基于 DDS;入门阶段先抓住 话题 / 服务 / Action / 参数 即可。

ROS 1 和 ROS 2(只需知道这些)

  • 新项目默认学 ROS 2
  • ROS 1 资料多,但别当新栈起点。
  • 概念可迁移:Node、Topic、Service;ROS 2 强化了 DDS、QoS、生命周期等。

发行版示例(以官方支持矩阵为准):

发行版 常见搭配 Ubuntu 备注
Humble 22.04 教程里长期出现
Jazzy 24.04 较新 LTS 向选择

选定一个发行版 + 对应 Ubuntu,锁住别乱跨。

核心对象

节点(Node)

一个节点 ≈ 一个职责清晰的进程级组件,例如 camera_driverlidar_driverplanner

话题(Topic)——异步数据流

发布者往话题丢消息,订阅者收。适合传感器流、/cmd_vel、日志。一对多、持续更新。

有点像带类型的消息总线,但带 QoS;和 Kafka 不是一回事。

服务(Service)——一问一答

适合开关模式、查一次状态、触发标定。长任务(导航几秒~几分钟)更适合 Action。

Action——带反馈的长任务

Goal → Feedback → Result,可取消。适合导航到点、机械臂轨迹。

参数与 Launch

参数便于启动时注入最大速度等配置。Launch 一次拉起多个节点——真机很少靠人手逐个 ros2 run

工作空间与包

ros2_ws/
└── src/
    ├── my_robot_desc/     # URDF 等
    ├── my_bringup/        # launch、配置
    └── my_nodes/          # C++/Python 节点
cd ros2_ws
colcon build
source install/setup.bash
ros2 run <package> <executable>

接口常用 .msg / .srv / .action 描述。

天天会碰到的工具

命令/工具 用途
ros2 topic list / echo 看话题、打印消息
ros2 node list 看节点
ros2 interface show 看消息定义
ros2 bag 录包 / 回放
RViz 2 三维可视化
TF2 坐标系变换树

TF 很重要:每个传感器坐标系不同,导航与点云融合都依赖 TF 树正确。

和单片机的边界

[ 传感器/电机 ] ←→ [ MCU 固件 ] ←串口/CAN/网→ [ ROS 2 节点 ] ←→ [ 导航/视觉/UI ]
  • ROS 2 一般不替代电机电流环。
  • MCU 一般不直接跑完整导航栈。
  • micro-ROS 等可评估,不是默认必选项。

选型清单见 何时 MCU、何时 ROS 2

最小心智实验

环境装好后:

  1. ros2 run demo_nodes_cpp talker
  2. 另开终端 ros2 run demo_nodes_cpp listener
  3. ros2 topic list / ros2 topic echo /chatter

亲眼看到多进程 + 话题如何工作,再学 turtlesim、再上仿真小车。更多实验见 学习路径

常见误区

  1. 「学会 ROS = 学会机器人」——缺控制与标定仍然走不远。
  2. 「小车不必碰 ROS」——纯 MCU 遥控的确不必;多传感器融合与导航时很划算。
  3. 「先读完所有包源码」——先跑通 demo,再按需深入。
  4. 「发行版随便混」——依赖绑在发行版上,混用最痛。

相关阅读

RELATED

NEXT STEP

本篇已归档到 MEMORY。继续解码相邻信号,或回到档案首页。