0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ROS通信接口机制介绍

麦辣鸡腿堡 来源:古月居 作者:古月 2023-12-01 15:03 次阅读

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度了,让我们知道运动的进度。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    210

    文章

    28189

    浏览量

    206454
  • 服务器
    +关注

    关注

    12

    文章

    9015

    浏览量

    85169
  • 通信接口
    +关注

    关注

    3

    文章

    234

    浏览量

    30960
  • ROS
    ROS
    +关注

    关注

    1

    文章

    276

    浏览量

    16963
收藏 人收藏

    评论

    相关推荐

    基于串口的STM32通过rosserial和ROS系统通信的代码

    前言最初参考网上资料移植了一份基于串口的STM32通过rosserial和ROS系统通信的代码。对于小数据量格式的消息,可以正常通信,但消息量一大便会出错(如:发布ROS提供的odom
    发表于 08-06 08:54

    ROS与STM32是如何进行通信

    ROS与STM32通信2020.8.1主要内容制作ROS包,将控制命令传给STM32,并将接收到的数据作为话题进行发布STM32接收数据并将姿态数据传回给ROS接收:期望角速度、期望线
    发表于 08-11 07:25

    ROS的serial是如何进行通信

    怎样去安装seria呢?ROS的serial是如何进行通信的?
    发表于 12-06 06:31

    如何完成ROS与STM32之间的串口通信

    如何去实现ROS与STM32串口通信测试功能?如何完成ROS与STM32之间的串口通信呢?
    发表于 12-10 06:54

    什么是ROSROS产生、发展和壮大的原因和意义

    基本问题1. 什么是 ROSROS 是一个操作系统ROS 是一种跨平台模块化软件通讯机制ROS 是一系列开源工具ROS 是一系列最先进的算法2.
    发表于 12-17 06:08

    通信接口介绍

    1.通信接口介绍2. I²C总线3. USART1.通信接口介绍共计9个
    发表于 01-14 08:07

    如何在ROS上使用serial包进行串口通信

    如何在ROS上使用其提供的serial包进行串口通信。我的环境介绍:PC:使用的是Ubuntu 16-04 ROS-Kinetic嵌入式端:STM32F071
    发表于 02-21 07:27

    RT-Thread实时操作系统与ROS2是怎样进行通信

    的资源有限,并不能直接运行完整的 ROS。于是,通常的做法是利用 Linux 丰富的软件包实现一些顶层算法,而 RT-Thread 则负责实时控制相关的任务,它们之间的通信就是后面会介绍
    发表于 04-01 11:38

    ROS是什么?机器人操作系统ROS介绍

    ROS 也自称是一个 OS。 2、是一种跨平台模块化软件通讯机制 ROS 用节点(Node)的概念表示一个应用程序,不同 node 之间通过事先定义好格式 的消息(Topic),服
    发表于 09-13 17:23 14次下载
    <b class='flag-5'>ROS</b>是什么?机器人操作系统<b class='flag-5'>ROS</b>的<b class='flag-5'>介绍</b>

    ROS与STM32通信

    ROS与STM32通信2020.8.1主要内容制作ROS包,将控制命令传给STM32,并将接收到的数据作为话题进行发布STM32接收数据并将姿态数据传回给ROS接收:期望角速度、期望线
    发表于 12-24 19:00 11次下载
    <b class='flag-5'>ROS</b>与STM32<b class='flag-5'>通信</b>

    ROS移动机器人的通信接口电路设计

      本文来聊聊ROS移动机器人中控制器与树莓派进行传输信号的通信接口电路设计。在此之前回顾下在本项目第一篇文章中提到的硬件框图。
    的头像 发表于 03-17 10:46 1447次阅读
    <b class='flag-5'>ROS</b>移动机器人的<b class='flag-5'>通信</b><b class='flag-5'>接口</b>电路设计

    ROS基本介绍

    近来找到的实习主要是做智能车控制,用到的也就是ROS机器人操作系统,ROS需要运行在一个操作系统上,这个操作系统常用的就是Linux,而公司用的就是Ubuntu,所以Ubuntu-ROS组合就是实习的主要学习内容了。所以我就新开
    的头像 发表于 05-19 17:07 7322次阅读
    <b class='flag-5'>ROS</b>基本<b class='flag-5'>介绍</b>

    ROS1的通信架构的基础通信方式及相关概念

    ROS通信架构是ROS的灵魂所在,它包括数据处理,进程运行,消息传递等** 。这篇文章主要介绍ROS1的
    的头像 发表于 05-19 17:23 3371次阅读
    <b class='flag-5'>ROS</b>1的<b class='flag-5'>通信</b>架构的基础<b class='flag-5'>通信</b>方式及相关概念

    Unity与ROS链接介绍

    对于ROS而言,其最常用的就是Topic话题以及Service两个了。之前我们在了解Unity Robotics Hub时候就了解到基本的Unity和ROS的通讯,下面我们来详细介绍一下Unity
    的头像 发表于 11-17 17:22 938次阅读
    Unity与<b class='flag-5'>ROS</b>链接<b class='flag-5'>介绍</b>

    ROS核心框架介绍

    ROS核心框架 对于第一个问题,我也没仔细研究过源码,核心代码基本由python和C++组成,运用了xmlrpc机制,每个运行的节点可以理解成一个进程。进程间通讯有些是共享内存的方式(比如
    的头像 发表于 11-21 18:07 946次阅读
    <b class='flag-5'>ROS</b>核心框架<b class='flag-5'>介绍</b>