与话题有关的常用操作

通过Tutorials上的一个教程来做一下topic相关的常用操作。

  1. 分别在三个终端中执行:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

这个时候可以使用键盘控制龟了。

  1. topic的查看
    再打开一个新的终端, 查看当前所有的topic:
duncan@ubuntu:~$ rostopic list
/rosout
/rosout_agg
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

查看某一个topic的信息类型:

duncan@ubuntu:~$ rostopic type /turtle1/cmd_vel 
geometry_msgs/Twist

可以在使用rostopic list时加上-v选项,直接在列表中显示话题的信息类型,并且显示话题的发布和订阅的情况:

duncan@ubuntu:~$ rostopic list -v

Published topics:
 * /turtle1/color_sensor [turtlesim/Color] 1 publisher
 * /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
 * /rosout [rosgraph_msgs/Log] 2 publishers
 * /rosout_agg [rosgraph_msgs/Log] 1 publisher
 * /turtle1/pose [turtlesim/Pose] 1 publisher

Subscribed topics:
 * /turtle1/cmd_vel [geometry_msgs/Twist] 1 subscriber
 * /rosout [rosgraph_msgs/Log] 1 subscriber
  1. 查看节点和话题之间的连接情况
    当一个话题同时被发布和订阅时,才是有效话题,使用下面的命令来查看:
duncan@ubuntu:~$ rqt

然后可以看到如下图所示:
在这里插入图片描述

turtle1这种大方框是为了在大量的topic被发布时,用于将topic分类,方便观察。
/turtle1/cmd_vel就是有效话题,使用rostopic list命令查看的5个话题只有一个显示在了表中。
/teleop_turtle 这是一个节点,在(1)使用 rosrun turtlesim turtle_teleop_key命令生成的,如表所示,该节点向/turtle1/cmd_vel中发布消息。
/turtlesim 同样是在(1)使用命令生成的节点,该节点从/turtle1/cmd_vel订阅消息。

由于/turtle1/cmd_vel的信息类型为geometry_msgs/Twist,通过命令来查看数据格式:

duncan@ubuntu:~$ rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
  float64 x
  float64 y
  float64 z
geometry_msgs/Vector3 angular
  float64 x
  float64 y
  float64 z

所以整个流程就是:1./teleop_turtle节点接受键盘输入。2.将键盘输入的上、下、左、右输入转换成乌龟的 线速度、角速度 数据信息。3./teleop_turtle节点将信息发布到/turtle1/cmd_vel话题上。4./turtlesim节点订阅/turtle1/cmd_vel话题,读取其中的信息数据。5.程序根据/turtlesim读取到的数据刷新乌龟的位置

  1. 监听话题的消息输入
duncan@ubuntu:~$ rostopic echo /turtle1/cmd_vel

当按下键盘方向键时,就可以看到刷新数据了:

duncan@ubuntu:~$ rostopic echo /turtle1/cmd_vel 
linear: 
  x: -2.0
  y: 0.0
  z: 0.0
angular: 
  x: 0.0
  y: 0.0
  z: 0.0
---
  1. 向话题中发布消息:
rostopic pub [topic] [msg_type] [args]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值