ROS的核心概念

ROS的核心概念

ROS是一个松耦合分布式的一个软件框架…

B53B0U.png

1. 节点(node)

  • 节点是ROS中的具体可执行单元,其实就是一个个的可执行文件

  • 不同的节点相对独立(使用通信机制连接起来),可以使用不同的编程语言实现

  • 节点用系统中唯一的一个名称来标识

举个栗子,我们的小海龟就有两个重要的节点:海龟仿真节点以及小海龟控制节点

B53vB8.png

2. 节点管理器(ros master)

  • 为节点提供命名和注册服务;
  • 跟踪和记录话题/服务通信,辅助节点相互查找、建立连接;
  • 提供参数服务器,节点使用此服务器存储和检索运行时的参数。

B58JHO.png

关于参数服务器

  1. 可通过网络访问的共享、多变量字典;
  2. 节点使用此服务器来存储和检索运行时的参数;
  3. 适合存储静态、非二进制的配置参数,不适合存储动态配置的数据(当对参数进行修改时,接收者未必能及时的从服务器更新参数,因此往往用于存储一些静态参数)。

3. 通信机制

通信机制主要分为两种:话题(topic)和服务(service)

3.1 话题(topic) 异步通信

  • 话题是节点直接传输数据的重要总线
  • 使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者可以不唯一
  • 话题数据的载体就是消息(message),具有一定的类型和数据结构,使用.msg文件定义

下图就是话题通信的示例,图中一个节点发布了话题,另外两个节点订阅了话题,通过这种方式数据讲发布者(publisher)传输到了订阅者(subscriber)。

B5GMdS.png

话题通信的特点

  1. 话题通信使用发布/订阅模型,不存在反馈机制,是一种异步通信机制,实时性较弱
  2. 往往是应用于多个节点之间的数据传输,多个发布者,多个订阅者

3.2 服务(service) 同步通信机制

  • 使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器完成处理后返回应答数据;
  • 使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件。

下图是一个服务通信的示例,客户端与服务端通过C/S模型进行交互~

B5JGkD.png

服务模型的特点

  1. 服务通信使用C/S模型,存在反馈机制,是一种同步通信机制,实时性强
  2. 往往一个服务端,多个客户端,通常用于逻辑处理(由于反馈机制的存在)

4. 文件系统

文件系统主要需要明白以下几个概念:

  • 功能包(Package):ROS软件中的基本单元,包含节点源码、配置文件、数据定义等

  • 功能包清单(Package manifest):记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等

  • 元功能包(Meta Packages):组织多个用于同一目的功能包

参照下图(从左至右看),单个的功能包由节点、消息和服务构成,多个用于同一目的功能包就构成的元功能包,然后可以将我们元功能包上传到软件仓库,进而自底向上形成了我们的ROS社区。

B5dN9S.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值