接口可以让程序之间的依赖降低,便于我们使用别人的代码,也方便别人使用我们的代码,这就是ROS的核心目标,减少重复造轮子。
ROS有三种常用的通信机制,分别是话题、服务、动作,通过每一种通信种定义的接口,各种节点才能有机的联系到一起。
语言无关
为了保证每一个节点可以使用不同语言编程,ROS将这些接口的设计做成了和语言无关的。
比如这里看到的int32表示32位的整型数,int64表示64位的整型数,bool表示布尔值,还可以定义数组、结构体,这些定义在编译过程中,会自动生成对应到C++、Python等语言里的数据结构。
话题通信接口的定义使用的是.msg文件,由于是单向传输,只需要描述传输的每一帧数据是什么就行,比如在这个定义里,会传输两个32位的整型数,x、y,我们可以用来传输二维坐标的数值。
服务通信接口的定义使用的是.srv文件,包含请求和应答两部分定义,通过中间的“---”区分,比如之前我们学习的加法求和功能,请求数据是两个64位整型数a和b,应答是求和的结果sum。
动作是另外一种通信机制,用来描述机器人的一个运动过程,使用.action文件定义。
比如我们让小海龟转90度,一边转一边周期反馈当前的状态,此时接口的定义分成了三个部分,分别是动作的目标;
比如是开始运动,运动的结果,最终旋转的90度是否完成,还有一个周期反馈;
比如每隔1s反馈一下当前转到第10度、20度还是30度了,让我们知道运动的进度。
-
机器人
+关注
关注
211文章
28390浏览量
206957 -
服务器
+关注
关注
12文章
9129浏览量
85349 -
通信接口
+关注
关注
3文章
237浏览量
30982 -
ROS
+关注
关注
1文章
278浏览量
17004
发布评论请先 登录
相关推荐
基于串口的STM32通过rosserial和ROS系统通信的代码
ROS与STM32是如何进行通信的
什么是ROS?ROS产生、发展和壮大的原因和意义
如何在ROS上使用serial包进行串口通信
RT-Thread实时操作系统与ROS2是怎样进行通信的
ROS是什么?机器人操作系统ROS的介绍

ROS与STM32通信

ROS基本介绍

Unity与ROS链接介绍

ROS核心框架介绍

评论