ROS学习(二)——ROS 架构
ROS架构的三个层次
OS层(Operator System)操作系统层
- Linux系统,Ubuntu系统
中间层
-
通信机制(最主要的)
-
TCPROS和UDPROS
- 是TCP,DUP网络的包装
- 使用发布订阅和客户端服务器等模型1传递信息
-
Nodelet(进程内通信方法)
- 多进制通信
- 传输实时性更高
-
-
机器人开发相关的库
- 数据类型定义
- 坐标变换
- 运动控制
应用层
-
master
- 管理程序运行
-
社区的应用功能包
- 功能包的模块里以节点(相当于程序,一个函数,封装好的一个小功能)为基本单位
- 节点之间通过ROS标准输入输出为接口,接口就相当于函数的传入和传出,输入输出都是node节点需要或者产生的数据,参数内容
ROS通信机制
分布式通信机制
- ROS分布式框架,提供节点/进程之间的通信服务
- 所有软件和应用的基础
话题通信机制
服务通信机制
参数管理机制
- 管理ROS的全局变量
话题和服务的区别
-
话题
-
基于发布订阅
-
异步通信
-
传输双方解耦
-
应用
- 不断更新
- 含有较少逻辑处理
- 数据通信
-
-
服务
-
基于客户端/服务器
-
同步通信
-
应用
- 数据量较小
- 强逻辑处理
- 数据交换
-
系统实现角度的三个层次
计算图
-
程序运行结构
- 以节点为基本单位
- 运行时,端对端的拓补结构连接传递信息
-
节点
- 执行运算任务的一个进程
- 多个节点可以封装为一个功能模块
- 节点间的通信,就是端对端的通信
- 可以用节点描述程序,用节点间的线描述程序之间的连接(通信),需要传递的参数,数据,信息
-
消息
- 节点间通过基于发布和订阅的消息通信模型通信
- 每一个消息是一个严格的数据结构
- 相当于函数之间传递的参数等
-
话题
- 节点可对一个给定的话题topic发布Message 称为Talker
- 节点可以关注某一个特定话题Topic并且订阅Message特定类型的数据,称为listener
- 一个话题可以多个talker,listener,互不干扰
-
服务
- 适用于双向的同步传输模式,叫Service
- 基于client/server
- 包含两部分通信数据类型,一个请求,一个应答
- 一个指定的service只能一个node提供
-
ROS master节点管理器
- 控制所有节点有条不紊的执行
- 通过远程过程调用RPC提供登记列表查找等
- 节点间查找,连接,管理参数(尤其全局的),消息相互传递主要是
文件系统
-
对文件进行组织,文件按照功能组织在不同文件夹下
-
功能包(package)
-
实现一个功能的基本单元,包括ROS节点,库,配置文件
-
包含的文件
-
功能包清单package manifest
-
package.xml
-
记录功能包的基本信息,作者信息,许可信息,依赖选项,编译标志
-
都是有头有尾的,用 ,中间放内容
-
具体例子
-
build_depend
- 功能包中代码编译依赖的其他功能包
-
run_depend
- 功能包里可执行程序运行时依赖的其他功能包
-
-
-
config
- 配置文件,用户创建
-
include
- 功能包需要用到的头文件
-
launch
- 启动文件
-
action
- 自定义动作指令
-
CMakeLists.txt
- 编译器编译功能包的规则
-
消息类型message
- 用于node节点之间的通信信息
- ROS自带的消息类型
- .msg文件定义需要的消息类型/数据类型
-
服务类型service
- 定义请求与应答数据类型
- .srv文件定义服务数据类型
-
放置节点源代码,放程序的文件夹
-
scripts
- 可以直接运行的Python脚本
-
src
- 需要编译的C++代码
-
-
-
用命令创建,编译,运行,修改功能包
-
-
元功能包
-
包含元功能包清单文件
-
package.xml
- 与功能包相比,需要添加export引用标签,指明为metapackage
-
-
将多个功能包整合成逻辑上独立的功能包
- 例如,导航包含建模定位导航
-
不需要Biuld_depend,需要run_depend
-
开源社区
-
发行版
-
软件源
- 共享网络的开源代码
-
ROS wiki
-
邮件列表
-
ROS answer
-
blog
ROS架构包括操作系统层、中间层和应用层。中间层的核心是通信机制,如TCPROS和UDPROS,以及话题和服务。话题基于发布订阅模型,适合异步通信,而服务基于客户端/服务器模式,适合同步传输。节点是ROS的基本执行单元,通过话题和服务进行数据交换。ROSmaster管理节点和参数,文件系统则组织功能包,包含源代码、消息类型和服务类型等资源。
2010

被折叠的 条评论
为什么被折叠?



