【ROS】话题基础使用

关于ROS中的话题

话题采用异步通信的机制,是节点间用来传输信息的重要总线,使用发布/订阅模型,数据由发布者传输给订阅者,同一话题的订阅者或发布者可以不唯一,即在话题通信过程中为节点间多对多的关系。
消息是话题中传输的数据,具有一定的类型和数据结构,包括ROS提供的标准类型和自定义类型;使用与编程语言无关的 .msg 文件定义,编译过程中生成对应的代码文件。
不过话题相对于服务来讲,实时性不高。

在这里记录下话题相关的基础操作,在本篇文章展开前,需要关注ROS节点等相关内容,具体可以参看链接。现在假设我们还以ROS经典小乌龟案例展开。

此处,我们按照节点那篇博文进入,我们已经打开了小乌龟对话框和节点话题计算图。
在这里插入图片描述
在这里插入图片描述
刚才已经说了,话题相对于两个节点间的通信中继,从上图中可以看到,根据信息的走向箭头可以知道,/teleop_turtle 为消息发布者,经过矩形框中的 /turtle1/cmd_vel 这个话题, /turtlesim 为消息订阅者,订阅了 /turtle1/cmd_vel 这个话题传输过来的信息。
另外 /turtlesim 作为 /turtle1/cmd_vel话题的订阅者,其也为 /turtle1/pose 和 /turtle1/color_sensor 话题的发布者。
我们知道了节点与话题之间的关系后,可以进一步通过命令进行得到节点与话题间传输的信息内容。

使用命令查看话题的信息

1 打开终端,在终端输入话题相关命令如下:

rostopic -h

在这里插入图片描述
从上面可以看到 rostopic 包含了几个命令

rostopic bw /your topic // 显示所用话题的带宽

在这里插入图片描述

rostopic delay /your topic // 显示话题的延迟,但是直接调用命令后,显示下面的情况

在这里插入图片描述

rostopic echo /your topic // 打印话题中的信息

在这里插入图片描述

rostopic info /your topic // 显示话题中使用的信息类型 如这里的 geometry_msgs/Twist

在这里插入图片描述

rostopic find msg_type // 查找包含对应消息类型的话题

在这里插入图片描述

rostopic hz /your topic // 监听话题发布者的消息发布速率

在这里插入图片描述

rostopic list // 获取当前的话题列表

在这里插入图片描述

rostopic type /your topic // 话题的消息类型

在这里插入图片描述

rostopic pub /your_topic /topic_msg_type /msg_value // 为发布者发布信息
例 让小乌龟在y轴上前进3个单位:
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist “linear:
x: 0.0
y: 3.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0”

运行命令前:
在这里插入图片描述
运行命令后:
在这里插入图片描述

还可以加参数,-r 2 为以 2hz 的发布速度一直在y方向上 以 1单位的速度运动

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 2 “linear:
x: 0.0
y: 1.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0”

使用 rostopic hz /turtle1/cmd_vel 查看
在这里插入图片描述
以上是关于 ROS中话题基本命令的测试,希望对您有帮助!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值