一.ROS架构
ROS架构上分为三个层级:
- 计算图级(Computation Graph level):体现进程与系统的关系,描述系统怎么运行。
- 文件系统级(Filesystem level):组织构建程序文件。
- 社区级(Community level):开源社区,共享知识、算法和代码等。
1.1 计算图级
计算图级包含:节点、节点管理器、参数服务器、消息、服务、主题和消息记录包。
- 节点(node):主要的计算执行进程,可自行创建节点,加入网络。
- 节点管理器(master):是节点通信的基础,用于节点的注册、查找。
- 参数服务器(parameter server):属于节点管理器的一部分,将数据存放在系统关键位置,节点可以获取这些数据来配置、改变自己的状态。
- 消息(message):具有各种类型,节点间沟通传输的信息数据。
- 主题(topic):一类消息的集合,节点可以发布、订阅主题。发布者和订阅者之间相互解耦,不知对方的存在。
- 服务(service):区别于主题,服务用于节点直接向节点交互,获得请求或应答。
- 消息记录包(bag):保存回放消息数据的文件格式。
ROS创建一个网络(Computation Network)来进行计算,该网络连接了系统中的所有进程(节点),如下图所示:
1.2 文件系统级
功能包(package):一种特定结构的文件、文件夹的组合。ROS中各种软件的组织方式,包含节点、配置文件、ROS依赖库、第三方软件及其它任何逻辑构成。
元功能包(Metapackage):只有一个文件(package.xml)的特殊包,将多个具有某些功能的包组织在一起形成逻辑包。
1.3 社区级
开源社区级,通过独立的网络社区分享软件、知识,包含如下几部分:
- 发行版:可独立安装、类似于Linux。
- 软件库:联网的代码存储库,不同机构可以发布。
- ROS Wiki:论坛,可贡献自己的文件。
- Bug提交系统
- 邮件列表:交流软件更新等各种问题。
- 博客:发布一些定期更新、新闻。
- ROS问答