ROS = 通信机制+开发工具+应用功能+生态系统
通信机制:
节点node --执行单元
完成具体任务、独立运行的可执行文件
相当于windows里面.exe文件,注意:命名唯一。
节点管理器 ROS master --控制中心
所有节点的管理者,所有节点都要来管理器这里注册告诉管理器我要干什么去了,
master后面会有一个笔记本,记下节点的注册信息等,帮助节点处理数据,建立连接,
节点之间是不知道彼此存在的,master就是像媒人一样介绍
通信之间方式给提供了两种:话题(Topic)和服务(Service)
话题Topic --异步通信机制
涉及到发布者和订阅者 单向传输
消息Message 传输话题里面话题数据类型
.msg 文件定义
服务(Service)--同步通信机制
涉及到客户端、服务器 双向传输:请求、应答
.srv文件定义
话题 | 服务 | |
同步性 | 异步 | 同步 |
通信模型 | 发布/订阅 | 服务器/客户端 |
底层协议 | ROSTCP/ROSUDP | ROSTCP/ROSUDP |
反馈机制 | 无 | 有 |
缓冲区 | 有 | 无 |
实时性 | 弱 | 强 |
节点关系 | 多对多 | 一对多(一个server) |
适用场景 | 数据传输 | 逻辑处理 |
参数(Parameter)--全局共享字典
可通过网络共享、多变量
节点使用此服务器来存储和检索运行时的参数
适合存储静态、非二进制的配置参数,不适合存储动态配置的数据
功能包(Package)
基本单元,包含节点源码、配置文件、数据定义
完成具体某一项功能
功能包清单(Package manifest)
记录功能包的基本信息,包含作者信息、许可信息、、依赖选项、编译标志等
元功能包(Meta Packages)
组织多个用于同一目的功能包
层级关系:
功能包(节点、消息、服务)-->元功能包 -->软件仓库 -->ROS社区