机器人操作系统ROS原理及应用 课件 12 ROS话题与消息.pptx

机器人操作系统ROS原理及应用 课件 12 ROS话题与消息.pptx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

ROS话题与消息;在之前建立的turtlesim例子中,键盘控制节点(turtle_teleop_key)和仿真节点(turtulesim_node)以某种方式进行对话使海龟响应按键操作。

ROS节点之间进行通信所利用的最重要的机制就是消息传递(发布/订阅)。;在ROS中,消息就是数据,有组织地存放在话题里。

消息传递的理念是:当一个节点想要分享信息时,它就会发布(publish)消息到对应的一个或者多个话题;

当一个节点想要接收信息时,它就会订阅(subscribe)它所需要的一个或者多个话题。

ROS节点管理器负责确保发布节点和订阅节点能找到对方;而且消息是直接地从发布节点传递到订阅节点,中间并不经过节点管理器转交。;话题的通信是通过节点间发送ROS消息实现的。

为了使发布者(turtle_teleop_key)和订阅者(turtulesim_node)进行通信,发布者和订阅者必须发送和接收相同类型的消息。

这意味着话题的类型是由发布在它上面消息的类型决定的。;使用rostopicecho查看话题数据(消息)内容

$rostopicecho/turtle1/cmd_vel

需要按键控制乌龟节点移动才看得到数据变化;使用rostopicecho查看话题数据(消息)内容

$rostopicecho/turtle1/cmd_vel

每当/teleop_turtle接收到按键信息时,将会显示类似右图的结果。输出中的每一个“---”线表示一个消息的结束以及另一个消息的起始

linear:线速度

angular:角速度;$rostopichz/turtle1/cmd_vel

$rostopicbw/turtle1/cmd_vel

第一条命令输出每秒发布的消息数量

第二条命令输出每秒发布消息所占的字节量

这些命令主要用于调试,它们提供了一种简单的方法来验证这些消息确实有规律地在向这些特定的话题发布;rostopicinfo/turtle1/cmd_vel

输出了该话题的消息类型。Type在文本输出中表示数据类型。

理解消息的类型很重要,因为它决定了消息的内容。也就是说,一个话题的消息类型能告诉你该话题中每个消息携带了哪些信息,以及这些信息是如何组织的;要想查看某种消息类型的详情,使用类似下面的命令:

rosmsgshow#显示消息的说明描述

rosmsglist#列出所有消息

rosmsgmd5#显示消息的md5码

rosmsgpackage#列出单个包中的消息

rosmsgpackages#列出包含消息的软件包

;rosmsgshow消息类型

例如:rosmsgshowturtlesim/Color

其输出为:

uint8r

uint8g

uint8b

rosmsgshow可以帮助理解通过话题传输的数据类型的具体构成,

即变量类型及变量名称(结构体)

;rosmsgshowturtlesim/Color

输出的格式是域(field)的列表,每行一个元素。每一个域由基本数据类型(例如int8、bool、或者string)以及域名称定义。

turtlesim/Color包含三个无符号8位整型变量r,g和b。任何话题的消息只要是turtlesim/Color类型,都由上述三个域的值定义。

;rosmsgshowgeometry_msgs/Twist

geometry_msgs/Twist是ROS中常用消息类型。该消息类型对应/turtle1/cmd_vel话题

geometry_msgs/Twist消息包含六个成员,并且以两个向量的形式组织,分别为linear和angular(线速度和角速度)。其中每个数值都是基本数据类型float64,即每个数值都是64位浮点型数据

;

线速度值为正时沿相应的轴正向移动,值为负时反向移动

角速度值为正时沿相应的轴逆时针转动,值为负时顺时针转动

;ROS复合域是由简单的一个或者多个子域组合而成,其中的每一个子域可能是另一个复合域或者独立的域,而且它们一般也都由基本数据类型组成

常见的例子:

geometry_msgs/Twist表示线速度和角速度

std_msgs/Header序列号,时间戳以及坐标系等信息

sensor_msgs/NavSatFix表示单个GPS的定位数据

sensor_msgs/LaserScan表示激光雷达数据

;和ROS里其他的程序一样,每个消息类型都属于一个特定的包。

消息类型名总会包含一个斜杠

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档