Ros 2-4 ros常用命令

机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?
在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:

rosnode : 操作节点
rostopic : 操作话题
rosservice : 操作服务
rosmsg : 操作msg消息
rossrv : 操作srv消息
rosparam : 操作参数

作用:
和之前介绍的文件系统操作命令比较,文件操作命令是静态的,操作的是磁盘上的文件,而上述命令是动态的,在ROS程序启动后,可以动态的获取运行中的节点或参数的相关信息。

更多请参考
http://wiki.ros.org/ROS/CommandLineTools
在这里插入图片描述

1.rosnode

rosnode 是用于获取节点信息的命令

rosnode ping 测试到节点的连接状态
rosnode list 列出活动节点
rosnode info 打印节点信息
rosnode machine 列出指定设备上节点
rosnode kill 杀死某个节点
rosnode cleanup 清除不可连接的节点 清除无用节点,启动乌龟节点,然后 ctrl + c 关闭,该节点并没被彻底清除,可以使用 cleanup 清除节点

2.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 打印主题类型

rostopic list(-v)
直接调用即可,控制台将打印当前运行状态下的主题名称

rostopic list -v : 获取话题详情(比如列出:发布者和订阅者个数…)
在这里插入图片描述
rostopic pub
可以直接调用命令向订阅者发布消息

rostopic pub /话题名称 消息类型 消息内容
rostopic pub /chatter_person std_msgs gagaxixi

案例:
为我们之前自定义的person类型话题发布 演示:
为subscriber_person 订阅者发布一条消息
步骤:
1、进入到工作空间
2、刷新环境变量 source ./devel/setup.bash
3、在这里插入图片描述rostopic pub /chatter_person pub_sub/Person "name: " " age: 0 hegiht: 0.0 "

注意:写到/chatter_person可以按两下tab补齐后面的消息类型和消息内容

4、查看订阅方的消息
在这里插入图片描述
rostopic echo
获取指定话题当前发布的消息

rostopic echo 话题名称
例子:
rostopic echo /chatter_person
输入话题名称中,可以安tab自动补齐

rostopic info

获取当前话题的相关信息

Type:消息类型

Publishers:发布者信息

Subscribers:订阅者信息

在这里插入图片描述
rostopic type
列出话题的消息类型

rostopic find 消息类型
根据消息类型查找话题

rostopic delay
列出消息头信息

rostopic hz
列出消息发布频率

rostopic bw
列出消息发布带宽

3.rosmsg

rosmsg是用于显示有关 ROS消息类型的 信息的命令行工具。
rosmsg演示

rosmsg show 显示消息描述
rosmsg info 显示消息信息
rosmsg list 列出所有消息
rosmsg md5 显示 md5 加密后的消息
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包

简单介绍一个 rosmsg show
在这里插入图片描述

4.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

rosservice call
调用服务

为小乌龟的案例生成一只新的乌龟

rosservice call /spawn “x: 1.0
y: 2.0
theta: 0.0
name: ‘xxx’”
name: “xxx”

//生成一只叫 xxx 的乌龟

5.rossrv

rossrv是用于显示有关ROS服务类型的信息的命令行工具,与 rosmsg 使用语法高度雷同。

rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息
rossrv list 列出所有服务信息
rossrv md5 显示 md5 加密后的服务消息
rossrv package 显示某个包下所有服务消息
rossrv packages 显示包含服务消息的所有包

rossrv package
//rossrv package 包名
rossrv package turtlesim

6.rosparam

rosparam包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数。

rosparam set 设置参数
rosparam get 获取参数
rosparam load 从外部文件加载参数
rosparam dump 将参数写出到外部文件
rosparam delete 删除参数
rosparam list 列出所有参数

rosparam list

rosparam list

//默认结果
/rosdistro
/roslaunch/uris/host_helloros_virtual_machine__42911
/rosversion
/run_id

rosparam set
设置参数
rosparam set name huluwa

//再次调用 rosparam list 结果
/name
/rosdistro
/roslaunch/uris/host_helloros_virtual_machine__42911
/rosversion
/run_id

rosparam get
获取参数
rosparam get name

//结果
huluwa

rosparam delete
删除参数
rosparam delete name

//结果
//去除了name

rosparam load(先准备yaml文件)
从外部文件加载参数
rosparam load xxx.yaml

rosparam dump
将参数写出到外部文件
rosparam dump xxx.yaml

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值