ROS命令行工具
这里主要参考了wiki上的ros文档),还有需要命令没有包含到,便用边学吧,当然建议使用万能的
--help
: )
1. 常用用户工具
1.1 roscore
使用roscore
命令启动ros的核心节点(包括Master, Paremeter Server, rosout等等),启动时直接运行如下命令即可:
1 | roscore |
1.2 rosrun
我们使用rosrun
命令来运行某个功能包中的某个节点,如下是帮助信息
1 | Usage: rosrun [--prefix cmd] [--debug] PACKAGE EXECUTABLE [ARGS] |
主要使用方法是:
1 | rosrun [功能包名] [节点名] |
举个栗子,运行我们的小海龟仿真节点
1.3 rosnode
使用rosnode
命令可以打印出ROS节点的信息,命令如下
1 | rosnode is a command-line tool for printing information about ROS Nodes. |
举个栗子:
查看当前节点列表(rosout节点是ros默认的一个节点,用于采集节点信息):
1 | rosnode list |
查看小海龟仿真节点的详细信息(发布信息、订阅信息、服务、进程PID等等):
1 | rosnode info /turtlesim |
1.4 rostopic
主要用于打印当前的一些话题信息
1 | rostopic is a command-line tool for printing information about ROS Topics. |
举个栗子:
查看当前的话题:
1 | rostopic list |
其中的/turtle1/cmd_vel
就是我们控制小海龟的一个话题,我们可以使用rostopic pub
命令(使用--help
获取命令细节)给想该话题发布数据。比如说我们这里给小海龟发布数据(linear是线速度,angular是角速度,一般使用常用单位m/s和rad/s,这就是这个消息的数据结构):
1 | rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear: |
然后就能看到小海龟向前跑动了,但是很快停了下来,因为我们只发布了一次数据,我们可以灵活的使用参数定义这个发布的过程(如加-r
设定发布频率,-1
发布一次退出等等,万能的help命令!)
1.5 rosmsg
rosmsg
命令用于查看话题消息(Message)的数据结构的定义
1 | rosmsg is a command-line tool for displaying information about ROS Message types. |
举个栗子:
我们现在查看控制小海龟话题的消息的数据结构,我们首先使用rostopic info
查看话题的详细信息,获得消息名,然后再使用rosmsg show
查看消息的数据结构,可以看到六个速度都是使用float64数据格式。
1.6 rosservice
rosservice
命令用于查看和控制服务相关信息
1 | Commands: |
举个栗子:
我们查看当前存在的服务
1 | rosservice list |
然后我们将当前的终端作为客户端,小海龟模拟器作为服务端,使用rosservice call
命令调用/spawn
服务(产卵服务)产生一个新的小海龟:
1 | rosservice call /spawn "x: 3.0 |
产生了一只新的小海龟,我们对应的话题也就相应增加了,简单查看一下:
1.7 rosbag
rosbag
命令可以通过记录消息包(bag)或者发送消息包来实现过程的记录与复现(仿真),所谓消息包(bag)就是一串消息的序列。
1 | Usage: rosbag <subcommand> [options] [args] |
举个栗子:
我们现在使用bag记录我们用键盘操控小海龟的过程,然后保存消息bag用于后续复现。
使用rosbag record
记录小海龟的message,运行如下命令(-a记录全部消息,-O 输出为文件,更多命令参数参考—help),然后我们移动小海龟。
1 | rosbag record -a -O turtle_path |
记录完成后 ctrl+c
结束记录,可以看到保存到了当前目录下:
然后我们运行这个消息bag
1 | rosbag play turtle_path.bag |
就可以发现小海龟复现了之前用键盘操作的过程(这里我重新开了个小海龟)
2. 可视化工具
2.1 rxgraph
rxgraph
用于显示ROS节点以及话题的计算图。
其中rosgraph
是命令行版本,rqt_graph
的基于QT开发的图形界面版本
运行rosgraph
可以看到节点信息(以及入站出站接口)和服务信息(Services)
运行rqt_graph
,可以以图形界面的形式展示计算图