《ROS机器人开发实践》阅读(1)——ROS架构

2.1 ROS框架设计 ROS框架可以分为OS层、中间层和应用层。 1. OS层:Ubuntu、macOS、Arch、Debian 2. 中间层:给予TCP/UDP网络进行再次封装的TCPROS/UDPROS通信系统,使用发布/订阅、客户端/...

2.1 ROS框架设计

ROS框架可以分为OS层、中间层和应用层。

1. OS层:Ubuntu、macOS、Arch、Debian

2. 中间层:给予TCP/UDP网络进行再次封装的TCPROS/UDPROS通信系统,使用发布/订阅、客户端/服务器等模型,实现多种通信机制的数据传输。进程内使用Nodelet进行通信,适合对数据穿书实时性方面有较高要求的应用。

3. 应用层:通过管理者(Master)实现管理。

2.2 计算图

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

2.2.1 节点

节点(Node)是执行运算任务的进程,可通过节点关系图绘制端对端的通信

2.2.2 消息

节点之间最重要的通信机制就是基于发布/订阅模型的消息(Message)通信。

2.2.3 话题

消息以一种发布/订阅(Publish/Subscribe)的方式传递。一个节点可以针对一个给定的话题(Topic)发布消息(称为发布者/Talker),也可以关注某个话题并订阅特定类型的数据(称为订阅者/Listener)。发布者和订阅者并不了解彼此的存在,系统中可能同时有多个节点发布或者订阅同一个话题的消息。

2.2.4 服务

同步传输模式:服务(Service)客户端/服务器(Client/Server)模型,包含两个部分的通信数据类型:一个用于请求,另一个用于应答,类似于Web服务器。与话题不同的是,ROS中只允许有一个节点提供指定命名的服务。

2.2.5 节点管理器

ROS Master通过远程过程调用(RPC)提供登记列表和对其他计算图表的查找功能,帮助ROS节点之间相互查找、建立连接,同时还为系统提供参数服务器,管理全局参数。

2.3 文件系统

attachments-2022-06-88l3AKzi62a72359ca51f.png<build_depend></build_depend>标签定义了功能包中代码编译所依赖的其他功能包,<run_depend></run_depend>标签定义了功能包中可执行程序运行时所依赖的其他功能包。

attachments-2022-06-ssN0Yijq62a7246eec094.png

0 条评论

请先 登录 后评论
Ruonan
Ruonan

12 篇文章

作家榜 »

  1. Panda-admin 37 文章
  2. 解弘艺 17 文章
  3. 高曾谊 16 文章
  4. 旺仔牛奶opo 15 文章
  5. 胡中天 14 文章
  6. LH 14 文章
  7. 罗柏荣 13 文章
  8. 林晨 12 文章