3.ROS工作原理及通信机制

1. 智能机器人工作流程

2. 基于ROS的实现方式

3. ROS通信层术语

  1. Resource:构成计算图的一切东西都可以称为资源,比如:node,topic,service,parameter等
  • 为了方便使用这些资源,需要对这些资源进行命名,而且要求在系统中具有唯一性
  1. Namepace:为了避免名字冲突,ROS提出了一种策略:给同一个模块的资源名字加上一个“前缀”,这个前缀就叫做名字空间(Namespace)
  2. Node:是一个数据处理或者执行动作的进程,是计算图中的独立个体,系统中的独立功能单元。

  1. Master node:计算图中的管理通信节点所有信息的中心节点(超级节点)
    1. 它跟踪节点中的publisher与subscriber,service 的server与client,记录其他节点的位置(uri标明,host与port),并将这些信息通知给需要建立链接的节点
    2. ROS 中无时间同步!!ROS time 为当前系统时间!多机需要同步系统时间的工具来实现RPS内时钟同步。
  1. Topic:ROS中广为使用的publish-subscribe异步的通信模式。这种方式将信息的产生和使用双方解耦,首发双方的信息都是由master node 进行管理。

    1. 常用于不断更新的,含有较少逻辑处理的数据通信
  1. Service:用于处理ROS通信中的同步通信,采用server/client 语义。
    1. 每个service type拥有 request 与 response两部分,对于service中的Server,ROS不会检查重名(name conflict),只有最后注册的server会生效,与client建立连接。
    2. 常用于资料量较小,但有强逻辑处理的数据交换。
  1. Parameter:可以看作为ROS系统运行时中定义的全局变量,而Master node 中有Parameter server 来维护这些变量。
    1. 这些变量的命名同样遵循namespace的命名规则
    2. namespace的存在使得parameter 拥有非常清晰的层次,有效避免重名
    3. 而且对parameter访问可以单独访问也可以树状访问(层层解析namespace)
  1. URI
    1. 作用:定位node在分布式系统中的位置
    2. 格式为: protocol://host:port
    3. Protocol一般为http或者 rosrpc,host为 hostname 或者 IP 地址,port则为端口号
    4. 比如,在多台计算机上运行ROS的时候,通常需要指定ROS Master的位置(整个系统只能有一个)
    5. ROS_MASTER_URI = http://192.168.2.1:11311
  1. XML-RPC:ROS 通信网路中的基础,一种通用远程调用协议
    1. ROS通过远程过程调用来建立节点之间的连接以及数据传输,ROS中的远程过程调用通过XML-RPC协议实现
    2. 用于 master node 与 其他节点之间的信息交换
    3. 传输文本使用XML支持(支持语言类型多)
    4. 调用时无状态(逻辑较为简单)
    5. ROS中topic/service p2p传输时的node name信息交换与parameter server 都是由XML-RPC进行支持
  1. Parameter server 直接使用XML-RPC的数据类型:
    1. int 或者 i4 是32位的有符号整型,十进制表示中,前缀-号则为负数。
    2. boolean 只有两种取值,0和1,用于表示布尔类型。
    3. double 实数类型,前缀-号表示负数。
    4. dataTime.iso8601 日期时间,用iso-8601格式表示。
    5. base64 用 base64算法编码的二进制字符串。
    6. array values组成的表,在data实体下一层
    7. Struct 又称为map 表示关系的集合,每一个struct实体是由一个 name 与 value的键值对组成。

4. ROS消息通信机制

5. ROS消息通信过错——实例

6. ROS数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值