ROS通信接口
接口可以让程序之间的依赖降低,便于我们使用别人的代码,也方便别人使用我们的代码,这就是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度了,让我们知道运动的进度。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
前言最初参考网上资料移植了一份基于串口的STM32通过rosserial和ROS系统通信的代码。对于小数据量格式的消息,可以正常通信,但消息量一大便会出错(如:发布ROS提供的odom
发表于 08-06 08:54
ROS与STM32通信2020.8.1主要内容制作ROS包,将控制命令传给STM32,并将接收到的数据作为话题进行发布STM32接收数据并将姿态数据传回给ROS接收:期望角速度、期望线
发表于 08-11 07:25
怎样去安装seria呢?ROS的serial是如何进行通信的?
发表于 12-06 06:31
如何去实现ROS与STM32串口通信测试功能?如何完成ROS与STM32之间的串口通信呢?
发表于 12-10 06:54
基本问题1. 什么是 ROSROS 是一个操作系统ROS 是一种跨平台模块化软件通讯机制ROS 是一系列开源工具ROS 是一系列最先进的算法2.
发表于 12-17 06:08
1.通信接口介绍2. I²C总线3. USART1.通信接口介绍共计9个
发表于 01-14 08:07
如何在ROS上使用其提供的serial包进行串口通信。我的环境介绍:PC:使用的是Ubuntu 16-04 ROS-Kinetic嵌入式端:STM32F071
发表于 02-21 07:27
的资源有限,并不能直接运行完整的 ROS。于是,通常的做法是利用 Linux 丰富的软件包实现一些顶层算法,而 RT-Thread 则负责实时控制相关的任务,它们之间的通信就是后面会介绍到
发表于 04-01 11:38
ROS 也自称是一个 OS。 2、是一种跨平台模块化软件通讯机制 ROS 用节点(Node)的概念表示一个应用程序,不同 node 之间通过事先定义好格式 的消息(Topic),服
发表于 09-13 17:23
•14次下载
ROS与STM32通信2020.8.1主要内容制作ROS包,将控制命令传给STM32,并将接收到的数据作为话题进行发布STM32接收数据并将姿态数据传回给ROS接收:期望角速度、期望线
发表于 12-24 19:00
•11次下载
本文来聊聊ROS移动机器人中控制器与树莓派进行传输信号的通信接口电路设计。在此之前回顾下在本项目第一篇文章中提到的硬件框图。
发表于 03-17 10:46
•1486次阅读
近来找到的实习主要是做智能车控制,用到的也就是ROS机器人操作系统,ROS需要运行在一个操作系统上,这个操作系统常用的就是Linux,而公司用的就是Ubuntu,所以Ubuntu-ROS组合就是实习的主要学习内容了。所以我就新开
发表于 05-19 17:07
•7389次阅读
ROS的通信架构是ROS的灵魂所在,它包括数据处理,进程运行,消息传递等** 。这篇文章主要介绍ROS1的
发表于 05-19 17:23
•3430次阅读
对于ROS而言,其最常用的就是Topic话题以及Service两个了。之前我们在了解Unity Robotics Hub时候就了解到基本的Unity和ROS的通讯,下面我们来详细介绍一下Unity
发表于 11-17 17:22
•986次阅读
ROS核心框架 对于第一个问题,我也没仔细研究过源码,核心代码基本由python和C++组成,运用了xmlrpc机制,每个运行的节点可以理解成一个进程。进程间通讯有些是共享内存的方式(比如
发表于 11-21 18:07
•987次阅读
评论