ROS 总结(一):ROS系统框架
·
一、总体结构
ROS的系统主要被分成了三部分:
- 文件系统级(Filesystem)
- 计算图级(Computation Graph)
- 开源社区级(Community)
文件系统级:程序是如何组织和构建的,需要的核心文件
计算图级:描述程序是如何运行的,进程和系统之间如何通讯
开源社区级:程序的分布式管理方式,开发人员之间如何共享知识、算法和代码。
二、文件系统级
ROS系统的不同组件被放在不同的功能文件夹下。这些文件夹根据功能的不同来对文件进行组织:
功能包集(Stack):
是包的集合,将一些具有某种功能的包集合在一起。
功能包(Package):
ROS中的基本单元,用于创建ROS程序。包含节点、ROS依赖库、数据套、配置文件、第三方软件、或者任何其他逻辑构成。包的目标是提供一种易于使用的结构以便于软件的重复使用。总得来说,ROS的包短小精干。
功能包中一般包括:
- 功能包清单
- 消息(msg)
- 服务(srv)
- 描述文件
- bring_up文件
- URDF文件
- 驱动文件
- gazebo文件
……
三、计算图级
计算图是ROS处理数据的一种点对点的网络形式。ROS运行时会创建一个网络,就像工业总线一样,每一个节点都可以通过网络发布消息,也可以接受其他节点发布的消息。
主要包括节点(node)、消息(message)、主题(topic)、服务(service)等,还包括节点管理器(Master)、参数服务器(Parameter Server)、消息记录包(Bag)等。
节点
节点就是一些直接运算任务的进程。一般是一些cpp文件。
消息
节点之间是通过传送消息进行通讯的。
主题
相当于消息传递的总线。多对多的模式。
服务
节点之间直接一对一的通讯。
四、社区级
ROS的社区级概念是ROS网络上进行代码发布的一种表现形式。主要是用来分享软件和知识。
参考文献:
(1)、刘平杰等,ROS机器人程序设计,机械工业出版社,2019.09
(2)、http://wiki.ros.org/
更多推荐
已为社区贡献5条内容
所有评论(0)