[具身智能-679]:ROS2功能包 - 命令行与系统工具概述与使用示例
·
这是 ROS2 开发每天必用 的工具,全部通过终端命令操作,用于调试、查看、控制、记录整个 ROS2 系统。
我按最常用顺序给你整理,每条命令都能直接复制运行。
一、核心工具组:ros2cli
所有命令都以 ros2 开头,是 ROS2 的总控制台。
1. ros2 run —— 启动节点(最常用)
功能:运行一个功能包中的可执行节点
bash
运行
ros2 run 功能包名 节点名
示例
bash
运行
ros2 run demo_nodes_cpp talker # 启动发布者节点
ros2 run demo_nodes_cpp listener # 启动订阅者节点
ros2 run rviz2 rviz2 # 启动可视化节点
2. ros2 node —— 节点管理
功能:查看当前运行的节点信息
bash
运行
ros2 node list # 列出所有运行中的节点
ros2 node info 节点名 # 查看节点的订阅、发布、服务
示例
bash
运行
ros2 node list
ros2 node info /talker
3. ros2 topic —— 话题监控
功能:查看、发布、监听话题
bash
运行
ros2 topic list # 列出所有话题
ros2 topic echo /话题名 # 实时打印话题数据
ros2 topic info /话题名 # 查看消息类型
ros2 topic hz /话题名 # 查看发布频率
ros2 topic pub /话题名 消息类型 "数据" # 手动发消息(调试神器)
示例
bash
运行
ros2 topic echo /chatter
ros2 topic pub /cmd_vel geometry_msgs/Twist "{linear: {x: 0.5}, angular: {z: 0.2}}"
4. ros2 service —— 服务调用
功能:调用、查看服务
bash
运行
ros2 service list
ros2 service call /服务名 服务类型 "参数"
示例
bash
运行
ros2 service call /add_two_ints example_interfaces/srv/AddTwoInts "{a: 5, b: 3}"
5. ros2 action —— 动作(长任务)
功能:查看、发送动作目标(导航、机械臂常用)
bash
运行
ros2 action list
ros2 action send_goal /动作名 动作类型 "目标数据"
6. ros2 param —— 参数管理
功能:查看、设置节点参数
bash
运行
ros2 param list # 查看参数
ros2 param get /node 参数 # 获取参数值
ros2 param set /node 参数 值 # 设置参数
示例
bash
运行
ros2 param set /controller use_sim_time true
7. ros2 launch —— 一键启动多节点
功能:运行启动文件,一次性启动多个节点 + 配置
bash
运行
ros2 launch 功能包名 启动文件.launch.py
示例
bash
运行
ros2 launch nav2_bringup navigation_launch.py
ros2 launch slam_toolbox online_async_launch.py
二、数据记录工具:ros2 bag (rosbag2)
功能:把传感器 / 话题数据录下来,事后回放调试(机器人必备)
bash
运行
ros2 bag list # 查看话题
ros2 bag record /话题1 /话题2 -o 文件名 # 录制
ros2 bag play 文件夹名 # 回放
ros2 bag info 文件夹名 # 查看信息
示例
bash
运行
ros2 bag record /imu /laser_scan /image -o my_sensor_data
ros2 bag play my_sensor_data

三、可视化与调试工具
1. rviz2 —— 3D 可视化
功能:看地图、TF、激光、相机、路径
bash
运行
ros2 run rviz2 rviz2
2. rqt 系列工具
功能:图像化调试
bash
运行
rqt # 总工具
rqt_graph # 看节点连接图(最常用)
rqt_plot # 画数据曲线
rqt_console # 日志查看
rqt_tf_tree # 坐标树查看
四、系统诊断工具
1. ros2 doctor
功能:检查 ROS2 环境、网络、DDS、依赖是否正常
bash
运行
ros2 doctor

2. ros2 component
功能:进程内节点加载、调试,查看哪些动态库(.so)被加载到了组件容器进程里。
bash
运行
ros2 component list
Component manager instances:
/ComponentManager
Component 'ros2::components::Talker'
URI: library://demo_nodes_cpp/libtalker_component.so
Node name: talker
Node namespace: /
Component 'ros2::components::Listener'
URI: library://demo_nodes_cpp/liblistener_component.so
Node name: listener
Node namespace: /
五、最实用的 10 条命令(直接背)
bash
运行
ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener
ros2 node list
ros2 topic echo /chatter
ros2 topic pub /cmd_vel geometry_msgs/Twist "{linear: {x: 0.5}}"
ros2 service list
ros2 param set /node use_sim_time true
ros2 launch nav2_bringup navigation_launch.py
ros2 bag record /imu /laser_scan
rqt_graph
六、一句话总结
ROS2 命令行工具就是ROS2 的控制台:
- 启动节点 →
ros2 run - 查看节点 / 话题 / 服务 →
list / info / echo - 调试发消息 →
ros2 topic pub - 启动多个节点 →
ros2 launch - 记录数据 →
ros2 bag - 画图 / 看日志 / 查连接 →
rqt系列
更多推荐
所有评论(0)