《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. 解弘艺 17 文章
  2. 高曾谊 16 文章
  3. 胡中天 14 文章
  4. 旺仔牛奶opo 14 文章
  5. LH 14 文章
  6. 罗柏荣 13 文章
  7. Panda-admin 13 文章
  8. 林晨 12 文章