[ROS2] --- 通信接口

简介: [ROS2] --- 通信接口

1 通信接口的定义

通信并不是一个人自言自语,而是两个甚至更多个人,你来我往的交流,交流的内容是什么呢?为了让大家都好理解,我们可以给传递的数据定义一个标准的结构,这就是通信接口。

ROS的通信系统,它的主要目的就是传输数据,那就得让大家高效的建立连接,并且准确包装和解析传输的数据内容,话题、服务等机制也就诞生了,他们传输的数据,都要符合通信接口的标准定义。

2 ROS通信接口

接口可以让程序之间的依赖降低,便于我们使用别人的代码,也方便别人使用我们的代码,这就是ROS的核心目标,减少重复造轮子。

ROS有三种常用的通信机制,分别是话题、服务、动作,通过每一种通信种定义的接口,各种节点才能有机的联系到一起。

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

2.2 ROS提供的标准接口

ROS安装路径中的share文件夹中找到,涵盖众多标准定义,可以打开几个看看。


相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
2月前
|
人工智能 算法 安全
AI + 热成像技术在动火作业风险防控中的实现路径
融合AI视觉与热成像技术,构建动火作业安全管控体系。通过定制化易燃物识别、计算机视觉测距、红外温度监测与多源图像融合,实现风险目标精准识别、安全距离实时预警、高温火源智能捕捉,并结合小程序“即拍即查”与后端闭环管理平台,完成隐患从发现到整改的全流程追溯,提升工业现场安全管理智能化水平。
219 10
|
1月前
|
人工智能 API 调度
我用 n8n 教自动化,结果自己在干最蠢的活
作者本为学员免费开通n8n账号,却因频繁手动操作陷入效率困境。起初尝试全自动流程,反被滥用;最终引入“人在回路”(HITL)机制,结合自动化与人工审核,用飞书审批实现高效协作。真正高效的自动化,是让机器处理重复工作,人类专注核心决策。
|
5月前
|
网络安全 Windows
Windows IIS 10如何配置自签名SSL并实现自动跳转
本文记录了IIS配置自签名证书及HTTPS跳转的注意事项。包括解决443端口占用问题、URL Rewrite插件安装与配置、web.config修改方法,以及避免因旧教程导致的配置错误。
Windows IIS 10如何配置自签名SSL并实现自动跳转
|
机器人
[ROS2] --- action
[ROS2] --- action
529 0
|
传感器 自动驾驶 机器人
大疆Livox Mid360 使用指南
本文是大疆Livox Mid-360激光雷达的使用指南,包括Livox Viewer 2的安装与使用、Livox SDK2的安装与演示、Livox ROS的配置与启动,以及一些使用时的注意事项。文章还提供了关于Livox Mid-360的详细特点、接线信息、尺寸信息、主控端IP设置、修改Livox Mid 360的IP方法、坐标系定义和IMU内参的介绍。此外,还提供了官方资料和软件下载的链接。
7208 2
Vue3栅格(Grid)
该文章介绍了一种基于24栅格系统的布局方案,通过`Row`和`Col`组件实现灵活的内容排布。`Row`负责水平方向的一组`Col`,`Col`则用于承载实际内容。栅格系统支持1到24的列值,超过24的`Col`会自动换行。此外,系统还支持Flex布局,允许子元素进行多种对齐方式,并可通过响应式属性适应不同屏幕尺寸。文章提供了详细的API说明和代码示例,展示了如何在实际项目中应用这一布局系统。
437 1
Vue3栅格(Grid)
|
传感器
[ROS2] --- topic
[ROS2] --- topic
618 0
|
存储 算法 搜索推荐
保护数据隐私:深入探索Golang中的SM4加密解密算法
保护数据隐私:深入探索Golang中的SM4加密解密算法
558 0
|
安全 Linux Java
linux下nproc的作用
nproc是操作系统级别对每个用户创建的进程数的限制,在Linux下运行多线程时,每个线程的实现其实是一个轻量级的进程,对应的术语是:light weight process(LWP)。
4186 0
|
Linux 数据安全/隐私保护
如何在 Linux 中使用 nmcli 连接 WiFi?
如何在 Linux 中使用 nmcli 连接 WiFi?
621 0