关于ros通信机制的浅谈

来源:互联网 发布:笛子校音器软件 编辑:程序博客网 时间:2024/05/16 04:07

ROS会创建一个连接到所有进程的网络。在系统中任何节点都可以访问此网络,并且通过该网络与其他节点的交互,在获取其他节点发布的信息,并将自身数据发布到网络上。

1、节点:节点是主要的计算执行过程。如果你想要有一个可以与其他节点进行交互的进程,那么你需要创建一个节点,并将此节点链接到ROS网络。通常情况下,系统包含能够实现不同功能的节点。你最好让每个节点都具有特定的单一功能,而不是在系统中创建一个包罗万象的大节点。节点需要使用roscpp或rospy 的ROS的客户端进行编写

2、节点管理器:用于节点的名称注册和查找,如果在你的整个ROS系统中没有节点管理器,就不会节点、服务、消息之间的通信。需要注意的是,由于ROS本身就是一个分布式网络系统,你可以在某一台计算机上运行节点管理器,在其他计算机上运行由该管理器管理的节点。

3、参数服务器:参数服务器能够使数据通过关键词存储在一个系统的核心位置。通过使用参数,就能够在运行时配置节点或者改变节点的工作任务。

4、消息:节点通过消息完成彼此的通信。消息包含一个节点发送到其他节点的数据消息。ROS中包含很多标准类型的消息,同时你也可以基于标准消息开放自定义类型的消息。

5、主题(topic):由ROS网络对消息进行路由和消息管理的数据总线。每一条消息都要到相应的主题。当一个节点发送数据时,我们就说该节点正在向主题发布消息。节点可以通过订阅某个主题,接受其他节点的消息。一个节点可以订阅一个主题,而不需要该节点同时发布该主题。这就保证了消息的发布者和订阅者之间相互解耦,完全无需知晓对方的存在。主题的名称必须是独一无二,否则在同名主题之间的消息路由就会发生错误。

6、在发布主题的时候,正在发送的数据能够以多对多的方式进行交互。但当你需要从某个节点获得一个请求或者应答时,就不能通过主题来实现。服务能够允许我们直接与某个节点进行交互。此外,服务必须有一个唯一的名称。当一个节点提供服务时候,所有的节点都可以通过使用ROS客户端库所编写的代码与它通信

7、消息记录包:是一种用于保存和回放ROS消息数据的文件格式。消息记录包是一种用于存放数据的重要机制。它能够获取并且记录各种难以收集的传感器数据。我们可以通过消息记录包反复获取实验数据,进行必要的开发和算法的测试。在使用复杂机器人进行试验工作时,需要经常使用消息记录包。



创建节点图的工具是rxgraph.

原创粉丝点击