资讯详情

【3】ROS2学习——核心概念的学习Ⅱ(通信接口、动作、参数)


文章目录

  • 一、通信接口
    • 1.通信接口的概念
    • 2.通信接口的核心代码
  • 二、动作
    • 动作的概念
    • 2.动作的核心代码
  • 三、参数
  • 总结


一、通信接口

1.通信接口的概念

一个完整的机器人由不同的节点组成,不同的节点需要通信,只有相互匹配才能建立连接。

ROS有三种常用的通信机制,即主题、服务和行动。各种节点可以通过定义的每个通信接口有机地连接在一起。

通过以上学习,我们知道不同的节点可以使用不同的编程语言,ROS该系统将这些接口设计成与语言无关的接口,需要在特定的文件中定义传输的数据类型,并在编译成功后自动生成相应的接口C 、Python语言中的数据结构等。

2.通信接口的核心代码

bool get      # 获取目标位置的指令 --- int32 x       # 目标X坐标 int32 y       # Y坐标的目标 

若要获得获取图像的中心坐标,- - -”分割线以上的部分表示获取目标位置的指令,get为true如果我们需要一个位置,服务端会反馈这个x、y坐标,即- - -分割线以下部分的定义。

二、动作

动作的概念

动作是ROS另一种通信机制。目的是便于管理机器人完整行为的过程。类似于服务,动作也是客户端和服务端模型,比如客户端发送动作的目标,机器人想做什么,服务器端执行动作过程。 控制机器人实现运动目标,并在执行周期中反馈运动状态。与服务一样,它也是一对多通信和同步通信。

2.动作的核心代码

bool enable     # 定义动作目标,表示动作开始的指令 --- bool finish     # 定义动作结果,表示是否成功执行 --- int32 state     # 定义动作反馈意味着当前执行的位置 

动作部分的代码是话题和服务的结合。

三、参数

参数是ROS机器人系统中的全球字典可以在多个节点中共享数据。

ROS参数由键值对组成:

例: 名称:显示亮度:60%

ROS支持的参数值类型如下:

  1. bool 和bool[ ],例如,我们可以控制雷达控制节点,开始扫描和停止扫描。
  2. int64 和int64[ ],整形手术表示一个数字,意思可以自己定义,这里我们可以用来表示李四节点写小说的周期值
  3. float64 和float64[ ],浮点类型可以表示小数类型的参数值
  4. string 和string[ ],字符串可用于表示雷达控制节点中的真实雷达ip地址
  5. byte[ ],字节数组可用于表示图片、点云数据等信息

监控和修改参数将是后续的实用工具——Rqt中继续分析。

总结

话题是单向的,不需要等服务端上线,直接发,数据实时性比较高。 传感器数据传输频率高,实时性强,一般采用主题实现。 服务是双向的,客户端发送请求后,服务端有响应,可以了解服务端的处理结果。 服务通常用于强调服务特性和反馈的场景。 参数是基于服务的节点设置。 动作适用于基于主题和服务的需要实时反馈的场景。

标签: 韩国cas传感器型号smn

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台