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 文件系统
<build_depend></build_depend>标签定义了功能包中代码编译所依赖的其他功能包,<run_depend></run_depend>标签定义了功能包中可执行程序运行时所依赖的其他功能包。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!