1466|2

76

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

RDK X3测评:5.ROS2命令行操作 [复制链接]

ROS2(Robot Operating System 2)作为机器人开发领域的核心工具,其命令行操作是开发者与系统交互的重要桥梁。无论是启动节点、管理话题,还是调试参数、记录数据,ROS2命令行工具都提供了强大的支持。而TogetherROS是基于ROS2深度优化的,很多模块还是会复用ROS2中的功能,所有ROS2的原生功能也可以支持。本文将从整体上学习了解ROS2命令行的功能,并通过详细的示例和解释,深入分析其核心操作,全面掌握ROS2命令行的使用技巧。

ROS2命令行概览

ROS2的命令行工具基于ros2命令,它是ROS2生态系统的核心接口。通过ros2命令,开发者可以完成以下主要任务:

  1. 节点管理:启动、查看和调试节点。

  2. 话题操作:查看话题列表、监听话题消息、发布消息等。

  3. 服务操作:调用服务、查看服务列表。

  4. 参数管理:获取、设置和修改节点参数。

  5. 数据记录与回放:使用ros2 bag工具记录和回放话题数据。

  6. 系统调试:查看节点关系图、监控系统状态。

在命令行中直接输入ros2,可以看到相关命令的使用介绍。

接下来,我们将以上一节中的publisher_member_function和subscriber_member_function为例,逐步深入分析这些功能。

启动节点

启动Publisher节点

首先,我们启动一个发布者节点:

  • source /opt/tros/humble/setup.bash
  • ros2 run examples_rclcpp_minimal_publisher publisher_member_function
  • examples_rclcpp_minimal_publisher是包名,publisher_member_function是节点名(这里不起作用,节点名实际为minimal_publisher)。

  • 这个节点会周期性地向/topic话题发布消息。

启动Subscriber节点

接下来,我们启动一个订阅者节点:

  • source /opt/tros/humble/setup.bash
  • ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
  • examples_rclcpp_minimal_subscriber是包名,subscriber_member_function是节点名(这里不起作用,节点名实际为minimal_subscriber)。

  • 这个节点会订阅/topic话题,并打印接收到的消息。

节点管理

查看节点列表

启动节点后,可以使用如下命令查看当前运行的节点:

  • ros2 node list

输出示例:

这表示当前系统中运行了两个节点:/minimal_publisher和/minimal_subscriber。

查看节点信息

通过如下命令,可以获取节点的详细信息。例如,查看发布者节点的信息:

  • ros2 node info /minimal_publisher

输出示例:

这里显示了/minimal_publisher节点的发布者和服务信息。

同样,查看订阅者节点的信息:

  • ros2 node info /minimal_subscriber

输出示例:

这里显示了/minimal_subscriber节点的订阅者和服务信息。

话题操作

查看话题列表

使用如下命令可以查看当前所有的话题:

  • ros2 topic list

输出示例:

这里列出了系统中所有活跃的话题,包括/topic。

监听话题消息

通过如下命令,可以实时查看某个话题的消息内容。例如,监听/topic话题:

  • ros2 topic echo /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话题的数据:

  • 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话题:

  • 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命令行工具为开发者提供了强大的支持。

 

最新回复

ROS2命令行工具确实很强大的   详情 回复 发表于 2025-2-3 10:09
点赞 关注

回复
举报

6966

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

ROS2命令行工具确实很强大的

点评

确实,值得深入去学习  详情 回复 发表于 2025-2-4 15:15
 
 

回复

76

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
Jacktang 发表于 2025-2-3 10:09 ROS2命令行工具确实很强大的

确实,值得深入去学习

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
立即报名 | 2025 瑞萨电子工业以太网技术日即将开启!
3月-4月 深圳、广州、北京、苏州、西安、上海 走进全国6城
2025瑞萨电子工业以太网技术巡回沙龙聚焦工业4.0核心需求,为工程师与企业决策者提供实时通信技术最佳解决方案。
预报从速,好礼等您拿~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表