目录
- 一、前言
- 二、rosnode
- 三、rostopic
- 3.1rostopic list
- 3.2rostopic pub
- 3.3rostpic echo
- 3.4rostopic info
- 四、rosservice
- 4.1rosservice args
- 4.2rosservice call
- 五、rosmsg
- 5.1rosmsg package
- 5.2rosmsg show
- 六、rossrv
- 6.1rossrv package
- 6.2rossrv show
- 七、rosparam
- 7.1rosparam set
- 7.2rosparam get
- 7.3rosparam delete
- 7..4rosparam load(先准备 yaml 文件)
- 7.5rosparam dump
一、前言
在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:
rosnode : 操作节点
rostopic : 操作话题
rosservice : 操作服务
rosmsg : 操作msg消息
rossrv : 操作srv消息
rosparam : 操作参数
官方参考网址:http://wiki.ros.org/ROS/CommandLineTools
二、rosnode
rosnode 是用于获取节点信息的命令
rosnode ping 测试到节点的连接状态
rosnode list 列出活动节点
rosnode info 打印节点信息
rosnode machine 列出指定设备上节点
rosnode kill 杀死某个节点
rosnode cleanup 清除不可连接的节点
三、rostopic
rostopic包含rostopic命令行工具,用于显示有关ROS 主题的调试信息,包括发布者,订阅者,发布频率和ROS消息。它还包含一个实验性Python库,用于动态获取有关主题的信息并与之交互。
rostopic bw 显示主题使用的带宽
rostopic delay 显示带有 header 的主题延迟
rostopic echo 打印消息到屏幕
rostopic find 根据类型查找主题
rostopic hz 显示主题的发布频率
rostopic info 显示主题相关信息
rostopic list 显示所有活动状态下的主题
rostopic pub 将数据发布到主题
rostopic type 打印主题类型
3.1rostopic list
直接调用即可,控制台将打印当前运行状态下的主题名称
rostopic list -v : 获取话题详情(比如列出:发布者和订阅者个数…)
3.2rostopic pub
可以直接调用命令向订阅者发布消息
为roboware 自动生成的 发布/订阅 模型案例中的 订阅者 发布一条字符串
rostopic pub /主题名称 消息类型 消息内容
rostopic pub /liaotian std_msgs huluwa
以小乌龟为案例的发布一条运动信息
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist
"linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 2.0"
//只发布一次运动信息
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist
"linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 2.0"
// 以 10HZ 的频率循环发送运动信息
3.3rostpic echo
获取指定话题当前发布的消息
3.4rostopic info
获取当前话题的信息
消息类型
发布者信息
订阅者信息
四、rosservice
rosservice包含用于列出和查询ROSServices的rosservice命令行工具。
调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash
rosservice args 打印服务参数
rosservice call 使用提供的参数调用服务
rosservice find 按照服务类型查找服务
rosservice info 打印有关服务的信息
rosservice list 列出所有活动的服务
rosservice type 打印服务类型
rosservice uri 打印服务的 ROSRPC uri
4.1rosservice args
打印服务参数
rosservice args /spawn
x y theta name
4.2rosservice call
调用服务
生成一只新的乌龟
rosservice call /spawn "x: 1.0
y: 2.0
theta: 0.0
name: 'xxx'"
name: "xxx"
//生成一只叫 xxx 的乌龟
五、rosmsg
rosmsg是用于显示有关 ROS消息类型的 信息的命令行工具。
rosmsg show 显示消息描述
rosmsg info 显示消息信息
rosmsg list 列出所有消息
rosmsg md5 显示 md5 加密后的消息
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包
5.1rosmsg package
列出某个包下的所有msg
rosmsg package 包名
5.2rosmsg show
显示消息描述
//rosmsg show 消息名称
rosmsg show turtlesim/Pose
结果:
float32 x
float32 y
float32 theta
float32 linear_velocity
float32 angular_velocity
六、rossrv
rossrv是用于显示有关ROS服务类型的信息的命令行工具,与 rosmsg 使用语法高度雷同。
rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息
rossrv list 列出所有服务信息
rossrv md5 显示 md5 加密后的服务消息
rossrv package 显示某个包下所有服务消息
rossrv packages 显示包含服务消息的所有包
6.1rossrv package
rossrv package 包名
6.2rossrv show
显示消息描述
//rossrv show 消息名称
rossrv show turtlesim/Spawn
结果:
float32 x
float32 y
float32 theta
string name
---
string name
七、rosparam
rosparam包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数。
rosparam set 设置参数
rosparam get 获取参数
rosparam load 从外部文件加载参数
rosparam dump 将参数写出到外部文件
rosparam delete 删除参数
rosparam list 列出所有参数
7.1rosparam set
设置参数
rosparam set name xxx
7.2rosparam get
获取参数
rosparam get name
7.3rosparam delete
删除参数
rosparam delete name
7…4rosparam load(先准备 yaml 文件)
从外部文件加载参数
rosparam load xxx.yaml
7.5rosparam dump
将参数写出到外部文件
rosparam dump yyy.yaml