ROS架构

目录

1.架构设计

2.计算图

(1)节点

(2)消息

(3)话题

(4)服务

(5)节点管理器(master)

(6)参数服务器(parameter server)

3.文件系统

(1)功能包(Package)

(2)功能包清单(Package Manifest)

(3)元功能包(Meta Package)

(4)元功能包清单

(5)消息(Message)类型

(6)服务(Service)类型

(7)代码(Code)

4.开源社区

(1)发行版(Distribution)

(2)软件源(Repository)

(3)ROS wiki 

(4)邮件列表(Mailing List)

(5)ROS Answers

(6)博客(Blog)


1.架构设计

  • os层:操作系统。ros是元操作系统,需要依托真正意义的操作系统。目前兼容较好的是Linux的Ubuntu,Mac。
  • 中间层:ros封装的关于机器人开发的中间件
                  a.基于tcp/udp封装的tcpros/udpros通信系统
                  b.用于进程间通讯Nodelet,为数据的实时行传输提供支持
                  c.机器人开发实现库,如数据类型,坐标变化,运动控制...
  • 应用层:功能包,以及功能包内的节点

从系统的实现角度来看,ROS可分为三个层次:计算图、文件系统、开源社区。

2.计算图

从计算图的角度来看,ROS系统软件的功能模块以节点为单位独立运行,可以分布于多个相同或不同的主机中,在系统运行时通过端对端的拓扑结构进行连接。

在这里插入图片描述

(1)节点

 节点(Node)就是一些执行运算任务的进程,一个系统一般由多个节点组成,也可以称为“软件模块”。节点概念的引入使得基于ROS的系统在运行时更加形象:当许多节点同时运行时,可以很方便地将端对端的通信绘制成节点关系图,在这个图中进程就是图中的节点,而端对端的连接关系就是节点之间的连线。

ROS中关于节点的工具是rosnode:

指令 功能
rosnode info node 输出当前节点的信息
rosnode kill node 结束当前运行的节点进程
rosnode list 列出当前活动的节点
rosnode machine hostname 列出某一特定计算机上运行的节点或列出主机名
rosnode ping node 测试节点之间的连通性
rosnode cleanup 将无法访问的节点的注册信息清除

(2)消息

节点之间是通过传送消息进行通讯的。每一个消息都是一个严格的数据结构。
原来标准的数据类型(整型,浮点型,布尔型等等)都是支持的,同时也支持原始数组类型。消息可以包含任意的嵌套结构和数组(很类似于C语言的结构structs)。

ROS中关于消息的工具是rosmsg:

指令 功能
rosmsg show 显示一条消息的字段
rosmsg list 列出所有消息
rosmsg package 列出功能包中的所有消息
rosmsg packages 列出所有具有该消息的功能包
rosmsg users 收索使用该消类型的代码文件
rosmsg md5 显示一条消息得MD5检验值

(3)话题

消息以一种发布/订阅(Publish/Subscribe)的方式传递。

一个节点可以针对一个给定的话题(Topic)发布消息(称为发布者/Talker&#

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值