ROS2 命令体系总览:一套命令覆盖「开发 → 部署 → 运行监控」

ROS2 的 CLI(ros2 主命令)设计理念:单一入口,全生命周期覆盖 三大阶段:程序开发调试 → 系统部署上线 → 运行时观测监控。

下面结合你亚博小车实操场景分类讲解,区分每一类工具的定位。

总结构

plaintext

ros2 [命令]
├─ 开发工具:写代码、创建包、查询接口、编译配套
├─ 部署启动工具:拉起节点、参数配置、命名空间、多节点启动
└─ 运行监控工具:话题/节点/服务观测、数据打印、性能查看

一、开发阶段工具(程序开发)

作用:创建工程、查看接口、验证消息类型、代码开发辅助

  1. ros2 pkg 功能包管理

bash

运行

ros2 pkg create        # 创建全新ROS2软件包(开发起点)
ros2 pkg list          # 检索所有已安装功能包
ros2 pkg executables   # 查看包内可执行程序
ros2 pkg describe      # 读取package.xml信息
  1. ros2 interface 消息 / 服务 / 动作接口

bash

运行

ros2 interface list
ros2 interface show geometry_msgs/msg/Twist
# 查看消息结构,开发底盘控制、遥控通信必备
  1. ros2 run 单节点试运行(单元调试)

配套外部工具:colcon build(编译工具,不属于 ros2 cli,但是开发链路必需)

二、部署 & 启动工具(部署运行)

作用:编排节点、批量启动、加载参数、实现机器人整套系统部署

  1. ros2 launch ⭐最重要部署工具 读取 launch 文件,一次性启动一组节点、配置环境变量、话题重映射、设置参数。 机器人正式部署标准方式,替代手动开多个终端 ros2 run

bash

运行

ros2 launch yahboomcar_ctrl yahboomcar_joy_launch.py
  1. ros2 run 最小单元部署,启动单个节点,适合调试部署。
  2. ros2 param 参数服务(部署配置) 部署时动态加载参数、修改配置,无需修改源码重启程序

bash

运行

ros2 param set /joy_node dev /dev/input/js0
ros2 param dump

三、运行监控、诊断工具(系统上线后观测)

机器人上电运行过程中,用来排查通信、定位故障,是机器人运维监控工具

1)节点监控

bash

运行

ros2 node list                # 查看当前所有运行节点
ros2 node info /yahboom_joy  # 查看节点订阅/发布话题、服务

2)话题通信监控(最高频)

bash

运行

ros2 topic list                     # 列出所有话题
ros2 topic echo /joy                # 实时打印手柄原始数据
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.2}}"
# 手动下发速度指令,测试底盘驱动
ros2 topic hz /joy                  # 统计话题发布频率,检查通信卡顿

3)服务、动作监控

bash

运行

ros2 service list
ros2 service call
ros2 action list

4)系统性能 / 日志监控

bash

运行

ros2 bag record /joy /cmd_vel       # 录制运行数据(离线复盘故障,黑匣子)
ros2 bag play                       # 回放数据,复现问题
ros2 doctor                         # 系统诊断:网络、DDS、时钟异常检测

关键通俗总结

  1. 开发期ros2 pkg 创建包,ros2 interface 确认消息,ros2 run 单节点调试
  2. 部署上线ros2 launch 批量拉起整套机器人程序 + ros2 param 加载硬件参数
  3. 运维监控topic/node/service 系列命令查看实时数据流、通信状态;ros2 bag 录制日志排查偶现 bug

延伸:和传统嵌入式开发对比,凸显 ROS2 优势

普通嵌入式: 开发 (IDE) → 烧录固件 (下载工具) → 没有统一监控手段,依靠串口打印。

ROS2 机器人: 同一套 ros2 命令行,不用切换工具,开发、部署、线上调试监控一体化。

工程化痛点补充(你小车调试常会遇到)

很多新手混淆:

colcon build编译工具,只负责把源码生成可执行文件 ❌ 不属于 ros2 内置命令

ros2 xxx:编译之后,用于启动程序、观测程序运行状态。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐