ROS2(Robot Operating System 2)作为机器人开发领域的核心工具,其命令行操作是开发者与系统交互的重要桥梁。无论是启动节点、管理话题,还是调试参数、记录数据,ROS2命令行工具都提供了强大的支持。而TogetherROS是基于ROS2深度优化的,很多模块还是会复用ROS2中的功能,所有ROS2的原生功能也可以支持。本文将从整体上学习了解ROS2命令行的功能,并通过详细的示例和解释,深入分析其核心操作,全面掌握ROS2命令行的使用技巧。
ROS2命令行概览
ROS2的命令行工具基于ros2命令,它是ROS2生态系统的核心接口。通过ros2命令,开发者可以完成以下主要任务:
-
节点管理:启动、查看和调试节点。
-
话题操作:查看话题列表、监听话题消息、发布消息等。
-
服务操作:调用服务、查看服务列表。
-
参数管理:获取、设置和修改节点参数。
-
数据记录与回放:使用ros2 bag工具记录和回放话题数据。
-
系统调试:查看节点关系图、监控系统状态。
在命令行中直接输入ros2,可以看到相关命令的使用介绍。
接下来,我们将以上一节中的publisher_member_function和subscriber_member_function为例,逐步深入分析这些功能。
启动节点
启动Publisher节点
首先,我们启动一个发布者节点:
- source /opt/tros/humble/setup.bash
- ros2 run examples_rclcpp_minimal_publisher publisher_member_function
启动Subscriber节点
接下来,我们启动一个订阅者节点:
- source /opt/tros/humble/setup.bash
- ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
节点管理
查看节点列表
启动节点后,可以使用如下命令查看当前运行的节点:
输出示例:
这表示当前系统中运行了两个节点:/minimal_publisher和/minimal_subscriber。
查看节点信息
通过如下命令,可以获取节点的详细信息。例如,查看发布者节点的信息:
- ros2 node info /minimal_publisher
输出示例:
这里显示了/minimal_publisher节点的发布者和服务信息。
同样,查看订阅者节点的信息:
- ros2 node info /minimal_subscriber
输出示例:
这里显示了/minimal_subscriber节点的订阅者和服务信息。
话题操作
查看话题列表
使用如下命令可以查看当前所有的话题:
输出示例:
这里列出了系统中所有活跃的话题,包括/topic。
监听话题消息
通过如下命令,可以实时查看某个话题的消息内容。例如,监听/topic话题:
输出示例:
这里显示了/topic话题上发布的消息内容。
发布消息
使用ros2 topic pub命令,可以手动向某个话题发布消息。例如,向/topic话题发布一条消息:
- ros2 topic pub /topic std_msgs/msg/String "{data: 'Hello from CLI'}"
这行命令向/topic话题发布了一条消息,内容为Hello from CLI。在subscriber端我们可以看到,接收到了同样的消息。
参数管理:配置节点的行为
查看参数列表
使用如下命令可以查看某个节点的所有参数。例如,查看发布者节点的参数:
- ros2 param list /minimal_publisher
输出示例:
获取参数值
通过命令如下,可以获取某个参数的值。例如,获取use_sim_time参数的值:
- ros2 param get /minimal_publisher use_sim_time
输出示例:
设置参数值
使用如下命令,可以修改某个参数的值。例如,将use_sim_time参数设置为True:
- ros2 param set /minimal_publisher use_sim_time True
这行命令将/minimal_publisher节点的use_sim_time参数设置为True。
数据记录与回放
记录话题数据
使用ros2 bag record命令可以记录指定话题的数据。例如,记录/topic话题的数据:
这行命令会开始记录/topic话题上的所有消息,并将其保存到一个bag文件中。
查看bag信息
通过如下命令,可以查看之前记录的bag文件信息:
- ros2 bag info rosbag2_2025_02_01-19_50_01
输出示例:
回放话题数据
通过如下命令,可以回放之前记录的bag文件:
- ros2 bag play rosbag2_2025_02_01-19_16_17
这行命令会回放指定bag文件中的数据,模拟话题消息的发布。
打开另一个终端,使用ros2 topic echo监听/topic话题:
我们可以看到以下的输出
系统调试
查看节点关系图
使用rqt_graph工具可以可视化节点、话题和服务之间的关系:
-
- sudo apt-get install ros-humble-rqt
- sudo apt-get install ros-humble-rqt-common-plugins
-
- rqt_graph
这个命令会打开一个图形化界面,显示当前系统中所有节点和话题的连接关系。
监控系统状态
通过ros2 doctor命令,可以检查系统的健康状况:
这个命令会生成一份报告,列出系统中可能存在的问题。
总结
通过本文的详细介绍,我们以publisher_member_function和subscriber_member_function为例,初步探索了ROS2命令行的核心功能。从节点管理到话题操作,从参数配置到数据记录,ROS2命令行工具为开发者提供了强大的支持。
|