[具身智能-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 /talker3.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 true7.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 rviz22.rqt系列工具
功能:图像化调试
bash
运行
rqt # 总工具 rqt_graph # 看节点连接图(最常用) rqt_plot # 画数据曲线 rqt_console # 日志查看 rqt_tf_tree # 坐标树查看四、系统诊断工具
1.ros2 doctor
功能:检查 ROS2 环境、网络、DDS、依赖是否正常
bash
运行
ros2 doctor2.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系列
