引言ROS2Robot Operating System 2是目前机器人开发领域最流行的框架。它不是一个传统意义上的操作系统而是一个分布式通信框架——让机器人的各个部件传感器、控制器、规划器能够互相“说话”。在ROS2中一切都是通过命令行工具来观察和操作的。ros2命令是进入ROS2世界的入口。它就像一把“瑞士军刀”——集成了查看节点、发布话题、调用服务、录制数据等所有功能。如果说Linux命令行是“操作系统的遥控器”那么ROS2命令行就是“机器人的听诊器”——它能让你听到机器人的心跳节点、看到它在说什么话题、命令它做什么服务甚至记录它的所有“生命体征”rosbag。前置知识在学习ROS2命令之前你需要了解几个核心概念节点NodeROS2中最基本的执行单元相当于一个独立的进程。每个节点负责一项具体功能如读摄像头、控制电机。话题Topic节点之间异步通信的通道。一个节点发布消息到话题另一个节点订阅该话题接收消息。适用于持续数据流如传感器数据。服务Service节点之间同步通信的机制。客户端发送请求服务端返回响应。适用于偶发请求如查询状态、执行一次性任务。动作Action带反馈的长时间任务。客户端发送目标服务端在执行过程中持续返回反馈最后返回结果。适用于需要中途取消或实时反馈的任务如导航到某个位置。参数Parameter节点的配置项可以在运行时动态修改。环境准备在使用ROS2命令之前需要先配置环境变量bashsource /opt/ros/humble/setup.bash # 以Humble版本为例建议将这行命令添加到~/.bashrc文件中这样每次打开终端都会自动配置。环境安装建议使用鱼香ros鱼香ros链接https://fishros.com/d2lros2/#/humble/chapt1/get_started/3.%E5%8A%A8%E6%89%8B%E5%AE%89%E8%A3%85ROS2第一章ros2命令总览——一切从这里开始bashros2 --help # 查看所有可用的子命令[reference:67] ros2 command -h # 查看某个子命令的详细用法[reference:68]ros2是ROS2命令行工具的入口。所有子命令都遵循ros2 command verb [args]的格式。常用子命令一览子命令用途node查看和管理节点topic查看和操作话题service查看和调用服务action查看和发送动作目标param查看和修改节点参数pkg查看ROS2包信息run运行节点launch启动launch文件bag录制和回放数据doctor检查ROS2系统健康状态第二章节点操作——看看“谁在跑”2.1ros2 node list—— 查看所有正在运行的节点bashros2 node list功能列出当前ROS2系统中所有活跃的节点。当你第一次使用这个命令时ROS2守护进程daemon会自动启动。2.2ros2 node info—— 查看节点的详细信息bashros2 node info /turtlesim功能显示某个节点的详细信息包括它订阅了哪些话题、发布了哪些话题、提供了哪些服务等。2.3ros2 run—— 启动一个节点bashros2 run turtlesim turtlesim_node # 运行 turtlesim 包中的 turtlesim_node ros2 run turtlesim turtle_teleop_key # 运行键盘控制节点功能从指定包中运行一个可执行节点。第三章话题操作——监听和发布“对话”3.1ros2 topic list—— 查看所有话题bashros2 topic list # 列出所有话题 ros2 topic list -t # 列出话题及其消息类型[reference:76]功能列出当前系统中所有活跃的话题。3.2ros2 topic echo—— “偷听”话题上的消息bashros2 topic echo /turtle1/pose功能实时显示某个话题上发布的所有消息。这是调试时最常用的命令之一——可以“看到”传感器数据在说什么。3.3ros2 topic pub—— 手动发布消息到话题bashros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist {linear: {x: 2.0}, angular: {z: 1.0}}功能手动向话题发布一条消息。常用于测试比如“假装”给机器人发送速度指令。3.4ros2 topic hz—— 查看消息发布频率bashros2 topic hz /turtle1/pose功能显示话题上消息的发布频率Hz。用于检查传感器数据是否正常。3.5ros2 topic info—— 查看话题详情bashros2 topic info /turtle1/cmd_vel功能显示话题的详细信息包括发布者和订阅者的数量。第四章服务操作——发送“请求”获取“响应”4.1ros2 service list—— 查看所有服务bashros2 service list功能列出当前系统中所有可用的服务。4.2ros2 service type—— 查看服务的类型bashros2 service type /clear功能查看某个服务的消息类型。4.3ros2 service call—— 调用服务bashros2 service call /clear std_srvs/srv/Empty功能调用一个服务发送请求并接收响应。例如清空turtlesim的轨迹。4.4ros2 interface show—— 查看服务/消息的结构bashros2 interface show turtlesim/srv/TeleportAbsolute功能显示服务或消息的详细结构帮助你知道调用时需要传递什么参数。第五章动作操作——执行“长时间任务”动作Action用于需要持续反馈的长时间任务如导航到某个位置。5.1ros2 action list—— 查看所有动作bashros2 action list功能列出当前系统中所有可用的动作。5.2ros2 action info—— 查看动作详情bashros2 action info /turtle1/rotate_absolute功能显示某个动作的详细信息服务器、客户端、类型等。5.3ros2 action send_goal—— 发送动作目标bashros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute {theta: 1.57}功能向动作服务器发送一个目标。执行过程中会显示反馈最后显示结果。第六章参数操作——动态调整节点配置6.1ros2 param list—— 查看节点的所有参数bashros2 param list功能列出某个节点的所有可配置参数。6.2ros2 param get—— 查看参数的值bashros2 param get /turtlesim background_r功能获取某个参数的当前值和类型。6.3ros2 param set—— 修改参数的值bashros2 param set /turtlesim background_r 255功能在运行时修改节点的参数值。修改后立即生效无需重启节点。6.4ros2 param dump—— 导出参数到文件bashros2 param dump /turtlesim功能将节点的所有参数保存为.yaml文件。这样可以方便地备份或复用配置。6.5ros2 param load—— 从文件加载参数bashros2 param load /turtlesim ./turtlesim.yaml功能从.yaml文件加载参数到节点。第七章数据录制与回放rosbag——“时间机器”7.1ros2 bag record—— 录制话题数据bashros2 bag record /turtle1/cmd_vel /turtle1/pose功能录制指定话题上发布的所有数据。相当于给机器人的“通信”录像。7.2ros2 bag play—— 回放录制的数据bashros2 bag play rosbag2_2025_01_01-12_00_00_0.db3功能回放之前录制的数据重现当时的场景。这对于调试和算法验证非常有用。第八章其他实用工具8.1ros2 pkg—— 查看包信息bashros2 pkg list # 列出所有已安装的ROS2包[reference:100] ros2 pkg executables turtlesim # 查看某个包中的所有可执行文件[reference:101]8.2ros2 launch—— 一次性启动多个节点bashros2 launch turtlesim multisim.launch.py功能通过launch文件一次性启动多个节点。launch文件用Python编写可以配置节点参数、设置依赖关系等。8.3ros2 doctor—— 系统健康检查bashros2 doctor # 检查ROS2系统是否有问题[reference:104] ros2 doctor -r # 生成完整报告[reference:105]功能检查ROS2系统的配置和运行状态帮助诊断网络、包版本等问题。8.4ros2 daemon—— 管理ROS2守护进程bashros2 daemon stop # 停止ROS2守护进程[reference:108] ros2 daemon --help # 查看更多选项[reference:109]功能ROS2守护进程在后台维护系统信息加快命令响应速度。通常不需要手动操作。ROS2命令速查表操作命令查看所有节点ros2 node list运行一个节点ros2 run pkg node查看所有话题ros2 topic list监听话题消息ros2 topic echo topic发布话题消息ros2 topic pub topic msg_type data查看所有服务ros2 service list调用服务ros2 service call service srv_type data查看所有动作ros2 action list发送动作目标ros2 action send_goal action action_type data查看参数ros2 param get node param修改参数ros2 param set node param value录制数据ros2 bag record topic1 topic2回放数据ros2 bag play bag_file启动launch文件ros2 launch pkg launch_file系统健康检查ros2 doctor总结ROS2命令行工具是进入机器人世界的“窗口”。通过它你可以观察看到系统中有哪些节点、话题、服务在运行。调试实时查看话题上的消息、调用服务测试功能。控制手动发布指令、修改参数、发送动作目标。记录录制和回放数据重现实验场景。
ROS2基本操作指令:从“节点”到“机器人”的完整工具箱
发布时间:2026/7/2 3:05:27
引言ROS2Robot Operating System 2是目前机器人开发领域最流行的框架。它不是一个传统意义上的操作系统而是一个分布式通信框架——让机器人的各个部件传感器、控制器、规划器能够互相“说话”。在ROS2中一切都是通过命令行工具来观察和操作的。ros2命令是进入ROS2世界的入口。它就像一把“瑞士军刀”——集成了查看节点、发布话题、调用服务、录制数据等所有功能。如果说Linux命令行是“操作系统的遥控器”那么ROS2命令行就是“机器人的听诊器”——它能让你听到机器人的心跳节点、看到它在说什么话题、命令它做什么服务甚至记录它的所有“生命体征”rosbag。前置知识在学习ROS2命令之前你需要了解几个核心概念节点NodeROS2中最基本的执行单元相当于一个独立的进程。每个节点负责一项具体功能如读摄像头、控制电机。话题Topic节点之间异步通信的通道。一个节点发布消息到话题另一个节点订阅该话题接收消息。适用于持续数据流如传感器数据。服务Service节点之间同步通信的机制。客户端发送请求服务端返回响应。适用于偶发请求如查询状态、执行一次性任务。动作Action带反馈的长时间任务。客户端发送目标服务端在执行过程中持续返回反馈最后返回结果。适用于需要中途取消或实时反馈的任务如导航到某个位置。参数Parameter节点的配置项可以在运行时动态修改。环境准备在使用ROS2命令之前需要先配置环境变量bashsource /opt/ros/humble/setup.bash # 以Humble版本为例建议将这行命令添加到~/.bashrc文件中这样每次打开终端都会自动配置。环境安装建议使用鱼香ros鱼香ros链接https://fishros.com/d2lros2/#/humble/chapt1/get_started/3.%E5%8A%A8%E6%89%8B%E5%AE%89%E8%A3%85ROS2第一章ros2命令总览——一切从这里开始bashros2 --help # 查看所有可用的子命令[reference:67] ros2 command -h # 查看某个子命令的详细用法[reference:68]ros2是ROS2命令行工具的入口。所有子命令都遵循ros2 command verb [args]的格式。常用子命令一览子命令用途node查看和管理节点topic查看和操作话题service查看和调用服务action查看和发送动作目标param查看和修改节点参数pkg查看ROS2包信息run运行节点launch启动launch文件bag录制和回放数据doctor检查ROS2系统健康状态第二章节点操作——看看“谁在跑”2.1ros2 node list—— 查看所有正在运行的节点bashros2 node list功能列出当前ROS2系统中所有活跃的节点。当你第一次使用这个命令时ROS2守护进程daemon会自动启动。2.2ros2 node info—— 查看节点的详细信息bashros2 node info /turtlesim功能显示某个节点的详细信息包括它订阅了哪些话题、发布了哪些话题、提供了哪些服务等。2.3ros2 run—— 启动一个节点bashros2 run turtlesim turtlesim_node # 运行 turtlesim 包中的 turtlesim_node ros2 run turtlesim turtle_teleop_key # 运行键盘控制节点功能从指定包中运行一个可执行节点。第三章话题操作——监听和发布“对话”3.1ros2 topic list—— 查看所有话题bashros2 topic list # 列出所有话题 ros2 topic list -t # 列出话题及其消息类型[reference:76]功能列出当前系统中所有活跃的话题。3.2ros2 topic echo—— “偷听”话题上的消息bashros2 topic echo /turtle1/pose功能实时显示某个话题上发布的所有消息。这是调试时最常用的命令之一——可以“看到”传感器数据在说什么。3.3ros2 topic pub—— 手动发布消息到话题bashros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist {linear: {x: 2.0}, angular: {z: 1.0}}功能手动向话题发布一条消息。常用于测试比如“假装”给机器人发送速度指令。3.4ros2 topic hz—— 查看消息发布频率bashros2 topic hz /turtle1/pose功能显示话题上消息的发布频率Hz。用于检查传感器数据是否正常。3.5ros2 topic info—— 查看话题详情bashros2 topic info /turtle1/cmd_vel功能显示话题的详细信息包括发布者和订阅者的数量。第四章服务操作——发送“请求”获取“响应”4.1ros2 service list—— 查看所有服务bashros2 service list功能列出当前系统中所有可用的服务。4.2ros2 service type—— 查看服务的类型bashros2 service type /clear功能查看某个服务的消息类型。4.3ros2 service call—— 调用服务bashros2 service call /clear std_srvs/srv/Empty功能调用一个服务发送请求并接收响应。例如清空turtlesim的轨迹。4.4ros2 interface show—— 查看服务/消息的结构bashros2 interface show turtlesim/srv/TeleportAbsolute功能显示服务或消息的详细结构帮助你知道调用时需要传递什么参数。第五章动作操作——执行“长时间任务”动作Action用于需要持续反馈的长时间任务如导航到某个位置。5.1ros2 action list—— 查看所有动作bashros2 action list功能列出当前系统中所有可用的动作。5.2ros2 action info—— 查看动作详情bashros2 action info /turtle1/rotate_absolute功能显示某个动作的详细信息服务器、客户端、类型等。5.3ros2 action send_goal—— 发送动作目标bashros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute {theta: 1.57}功能向动作服务器发送一个目标。执行过程中会显示反馈最后显示结果。第六章参数操作——动态调整节点配置6.1ros2 param list—— 查看节点的所有参数bashros2 param list功能列出某个节点的所有可配置参数。6.2ros2 param get—— 查看参数的值bashros2 param get /turtlesim background_r功能获取某个参数的当前值和类型。6.3ros2 param set—— 修改参数的值bashros2 param set /turtlesim background_r 255功能在运行时修改节点的参数值。修改后立即生效无需重启节点。6.4ros2 param dump—— 导出参数到文件bashros2 param dump /turtlesim功能将节点的所有参数保存为.yaml文件。这样可以方便地备份或复用配置。6.5ros2 param load—— 从文件加载参数bashros2 param load /turtlesim ./turtlesim.yaml功能从.yaml文件加载参数到节点。第七章数据录制与回放rosbag——“时间机器”7.1ros2 bag record—— 录制话题数据bashros2 bag record /turtle1/cmd_vel /turtle1/pose功能录制指定话题上发布的所有数据。相当于给机器人的“通信”录像。7.2ros2 bag play—— 回放录制的数据bashros2 bag play rosbag2_2025_01_01-12_00_00_0.db3功能回放之前录制的数据重现当时的场景。这对于调试和算法验证非常有用。第八章其他实用工具8.1ros2 pkg—— 查看包信息bashros2 pkg list # 列出所有已安装的ROS2包[reference:100] ros2 pkg executables turtlesim # 查看某个包中的所有可执行文件[reference:101]8.2ros2 launch—— 一次性启动多个节点bashros2 launch turtlesim multisim.launch.py功能通过launch文件一次性启动多个节点。launch文件用Python编写可以配置节点参数、设置依赖关系等。8.3ros2 doctor—— 系统健康检查bashros2 doctor # 检查ROS2系统是否有问题[reference:104] ros2 doctor -r # 生成完整报告[reference:105]功能检查ROS2系统的配置和运行状态帮助诊断网络、包版本等问题。8.4ros2 daemon—— 管理ROS2守护进程bashros2 daemon stop # 停止ROS2守护进程[reference:108] ros2 daemon --help # 查看更多选项[reference:109]功能ROS2守护进程在后台维护系统信息加快命令响应速度。通常不需要手动操作。ROS2命令速查表操作命令查看所有节点ros2 node list运行一个节点ros2 run pkg node查看所有话题ros2 topic list监听话题消息ros2 topic echo topic发布话题消息ros2 topic pub topic msg_type data查看所有服务ros2 service list调用服务ros2 service call service srv_type data查看所有动作ros2 action list发送动作目标ros2 action send_goal action action_type data查看参数ros2 param get node param修改参数ros2 param set node param value录制数据ros2 bag record topic1 topic2回放数据ros2 bag play bag_file启动launch文件ros2 launch pkg launch_file系统健康检查ros2 doctor总结ROS2命令行工具是进入机器人世界的“窗口”。通过它你可以观察看到系统中有哪些节点、话题、服务在运行。调试实时查看话题上的消息、调用服务测试功能。控制手动发布指令、修改参数、发送动作目标。记录录制和回放数据重现实验场景。