当前位置:网站首页>ROS2学习笔记(五)-- ROS2命令行操作常用指令总结(一)
ROS2学习笔记(五)-- ROS2命令行操作常用指令总结(一)
2022-04-21 13:55:00 【溪风沐雪】
简介:在前面的章节中,我们先简单学习了ROS2的话题发布和订阅,两种操作都是通过python代码实现的,而在实际应用过程中,我们会经常用到命令行操作来辅助调试,更进一步的可以使用GUI工具辅助调试,比如前边用到的rqt中的Image View工具,这一节在现有功能基础上介绍一部分常用的命令行操作指令。
注:以下实际操作数据都是在duckiebot节点和control节点运行过程中的数据。
目录
1、包管理工具 ros2 pkg
ros2 pkg有create、executables、list、prefix、xml共5个命令,我们常用的是前3个。
1.1 ros2 pkg create
命令功能:创建功能包,指定包名、编译方式、依赖项、节点名等
命令格式:ros2 pkg create duckiebot --build-type ament_python --node-name duckiebot_node --dependencies rclpy std_msgs sensor_msgs
| 命令 |
说明 |
| ros2 pkg create |
ROS2功能包创建命令 |
| duckiebot |
所建功能包名称,可以放在最后 |
| --build-type ament_python |
指定编程语言,我们这里使用python |
| --node-name duckiebot_node |
指定要生成的源码文件,可以后期创建,但是手动创建需要手动配置 |
| --dependencies rclpy std_msgs sensor_msgs |
指定依赖模块,rclpy是python编程必选的, std_msgs和sensor_msgs是我们要用的消息模块,也可以不指定手动配置 |
1.2 ros2 pkg list
命令功能:查看系统中功能包列表
命令格式:ros2 pkg list
如果要查看自己写的节点包,需要用source设置环境变量

1.3 ros2 pkg executables
命令功能:查看包内可执行文件列表
命令格式: ros2 pkg executables <package_name>


2、节点运行工具 ros2 run
命令功能:运行包内节点功能
命令格式:ros2 run <package_name> <node_name>

3、节点查看工具 ros2 node
3.1 ros2 node list
命令功能: 查看当前域内(ROS_DOMAIN_ID相同的节点组)活动的节点列表
命令格式: ros2 node list

3.2 ros2 node info
命令功能: 查看节点详细信息,包括订阅、发布的消息,开启的服务和动作等
命令格式:ros2 node info <node_name>

4、主题操作工具 ros2 topic
4.1 ros2 topic list
命令功能:列出域内可使用的主题列表
命令格式:ros2 topic list

4.2 ros2 topic info
命令功能:显示主题消息类型,订阅者数量,发布者数量等
命令格式:ros2 topic info <topic_name>

4.3 ros2 topic type
命令功能:查看主题消息类型
命令格式:$ ros2 topic type <topic_name>

4.4 ros2 topic find
命令功能:按消息类型查找相关主题
命令格式:$ ros2 topic find <message_type>
$ ros2 topic find <-c> <message_type>

命令加-c参数,只统计并显示数量

4.5 ros2 topic hz
命令功能:显示主题平均发布频率
命令格式:ros2 topic hz <topic_name>

4.6 ros2 topic bw
命令功能:显示所查阅主题的带宽
命令格式:ros2 topic bw <topic_name>

4.7 ros2 topic delay
命令功能:通过header中的时间戳计算消息延迟
命令格式:ros2 topic delay <topic_name>

4.8 ros2 topic echo
命令功能:在控制台显示主题消息
命令格式:ros2 topic echo <topic_name>
运行主题查看命令后,按方向键,可以看到发布出来的控制消息:

4.9 ros2 topic pub
命令功能:通过命令行发布指定主题消息
命令格式:ros2 topic pub <topic_name> <message_type> <message_content>
ros2 topic pub -1 <topic_name> <message_type> <message_content>
ros2 topic pub -t 5 <topic_name> <message_type> <message_content>
ros2 topic pub -r 5 <topic_name> <message_type> <message_content>
默认循环发布,频率为1Hz,参数-1只发布一次,参数-t 5循环发布5次结束,参数-r 5以5Hz的频率循环发布,详细命令如下:
$ ros2 topic pub control_node/action geometry_msgs/msg/TwistStamped "{header: {stamp:{sec: 0, nanosec: 0}, frame_id: control_node}, twist: {linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}}"

5、接口操作工具 ros2 interface
5.1 ros2 interface list
命令功能:f分类显示系统内所有的接口,包括消息(Messages)、服务(Services)、动作(Actions)
命令格式:ros2 interface list

5.2 ros2 interface package
命令功能:显示指定接口包内的子接口
命令格式:ros2 interface package <interface_name>

5.3 ros2 interface packages
命令功能:显示指定接口包
命令格式:ros2 interface packages

5.4 ros2 interface show
命令功能:显示指定接口的详细内容
命令格式:ros2 interface show <interface_name>
用于消息类型Messsage

用于服务Service

用于动作Action

5.5 ros2 interface proto
命令功能:显示消息模板
命令格式:ros2 interface proto <message_name>

以上是目前内容可能会用到的命令行操作指令,后续功能再有相关命令时,将通过章节内穿插介绍或者单独章节介绍的方式给出。
若有收获,就点个赞吧
版权声明
本文为[溪风沐雪]所创,转载请带上原文链接,感谢
https://blog.csdn.net/aibingjin/article/details/123899829
边栏推荐
猜你喜欢
随机推荐
数组的动态创建
Web Course Design - photo recording website (flask)
C语言实现杨辉三角
Zabbix5 series - report tool zbxtable (XVIII)
Notes on questions (I)
带你轻松玩转C语言函数
一改测试步骤代码就全写?为什么不试试用 Yaml实现数据驱动?
MysQL读写分离服务器--maxscale服务
English word memory method based on anki + vocabulary
C语言每日一题第一天
技术分享 | Selenium 测试用例编写
C语言每日一题——小乐乐改数字(牛客网)
ECMAScript 6 --变量的解构赋值
顺序表例题个人总结
MySQL storage engine
NFS service, LVM capacity expansion
支付宝二面:如何用 UDP 实现可靠传输?
干掉项目中杂乱 的 if-else,试试状态模式,这才是优雅的实现方式
Summary of network module knowledge points
应用打包还是测试团队老大难问题?








