ros架构

发布时间 2023-10-26 19:13:54作者: 洛苏

ros架构简介

ROS架构的三个层次:基于Linux系统的OS层;实现ROS核心通信机制以及众多机器人开发库的中间层;在ROS Master的管理下保证功能节点的正常运行的应用层。·

从系统实现角度将ROS划分成的三个层次:计算图、文件系统和开源社区,其中涵盖了ROS中的关键概念,如节点、消息、话题、服务、功能包、元功能包等。·

ROS的三种通信机制:基于发布/订阅的话题通信、基于客户端/服务器的服务通信以及基于RPC的参数服务器。

ROS架构分为三个层次: os层, 中间层,应用层。

  •  os层
  •  中间层

  中间层最重要的工作是基于TCPROS/UDPROS的通信系统, 其基于TCP/UDP网络进行了封装。通信系统使用发布/订阅、客户端/服务器等模型,实现多种通信机制的数据传输。

  除了TCPROS/UDPROS, ROS还提供一种进程内的通信方法——Nodelet,可以为多进程通信提供一种更优化的数据传输方式,适合对数据传输实时性方面有较高要求的应用。

  •  应用层

在应用层,ROS需要运行一个管理者——Master,负责管理整个系统的正常运行。ROS社区内共享了大量的机器人应用功能包,这些功能包内的模块以节点为单位运行,以ROS标准的输入输出作为接口.

从系统实现的角度来看,ROS也可以分为三个层次:文件系统、计算图和开源社区。

  1.    计算图

ROS系统软件的功能模块以节点为单位独立运行,可以分布于多个相同或不同的主机中。节点(Node)就是一些执行运算任务的进程,一个系统一般由多个节点组成,也可以称为“软件模块”。

节点之间最重要的通信机制就是基于发布/订阅模型的消息(Message)通信。每一个消息都是一种严格的数据结构。

    • 节点
    • 话题: 消息以一种发布/订阅(Publish/Subscribe)的方式传递。一个节点可以针对一个给定的话题(Topic)发布消息(称为发布者/Talker),也可以关注某个话题并订阅特定类型的数据(称为订阅者/Listener
    • 服务: 称双向同步传输模式为服务(Service),其基于客户端/服务器(Client/Server)模型,包含两个部分的通信数据类型:一个用于请求,另一个用于应答,类似于Web服务器。与话题不同的是,ROS中只允许有一个节点提供指定命名的服务。
    • 节点管理器(Master):通过远程过程调用(RPC)提供登记列表和对其他计算图表的查找功能,帮助ROS节点之间相互查找、建立连接,同时还为系统提供参数服务器,管理全局参数。

     2.文件系统

    •  功能包