ROS2介绍(二)

  • ROS2新技术
  1. Zeroconf:零配置网络服务规范,用于自动生成可用IP地址的网络技术,不需要额外的手动配置和专属的配置服务器。
  2. Protocol Buffers:Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。
  3. ZeroMQ(and the other MQs):一个简单好用的传输层,相框架一样的一个socket library,它使的socket编程更加简单、简洁和性能更高。
  4. Redis:一个高性能的key-value数据库。
  5. WebSockets:HTML5开始提供的浏览器与服务器间进行全双工通讯的网络技术。
  6. DDS(Data Distribution Service):新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的Qos服务质量策略,能保障数据进行实时、高效、灵活的分发,可满足各种分布式实时通信应用要求,
  7. 多机器人控制,可以同时驾奴多个机器人。
  8. 多平台应用支持、可以在x86和ARM上跑。
  • ROS2架构
    下面内容参考别人。
    ROS2介绍(二)_第1张图片
  • DDS是什么
    DDS(Data Distribution Service)即数据分发服务。它是一个专门为实时系统设计的数据分发/订阅标准,目前已成为分布式实时系统中数据发布/订阅的标准解决方案。
    DDS 的技术核心是以数据为核心的发布订阅模型(Data-Centric Publish-Subscribe ,DCPS),DCPS模型创建了一个“全局数据空间“的概念,所有独立的应用都可以去访问。在DDS中,每一个发布者或者订阅者都成为参与者,类似于ROS中节点的概念。每一个参与者都可以使用某种定义好的数据类型来读写全局数据空间。好像和ROS1的发布订阅差不多,那我们来对比一下两个模型

ROS2介绍(二)_第2张图片

  1. DDS中的模型就人性化多了:

  2. 参与者(Domain Participant):一个参与者就是一个容器,对应于一个使用DDS的用户,任何DDS的用户都必须通过Participant来访问全局数据空间。

  3. 发布者(Publisher):数据发布的执行者,支持多种数据类型的发布,可以与多个数据写入器(DataWriter)相联,发布一种或多种主题(Topic)的消息。

  4. 订阅者(Subscriber):数据订阅的执行者,支持多种数据类型的订阅,可以与多个数据读取器(DataReader)相联,订阅一种或多种主题(Topic)的消息。

  5. 数据写入器(DataWriter):应用向发布者更新数据的对象,每个数据写入器对应一个特定的Topic,类似于ROS1中的一个消息发布者。

  6. 数据读取器(DataReader):应用从订阅者读取数据的对象,每个数据读取器对应一个特定的Topic,类似于ROS1中的一个消息订阅者。

  7. 主题(Topic):这个和ROS1中的Topic概念一致

  8. QoS Policy:Quality of Service,质量服务原则,负责数据质量的。QoS是DDS中非常重要的一环,控制了各方面与底层的通讯机制,主要从时间限制、可靠性、持续性、历史记录几个方面,满足用户针对不同场景的数据应用需求。

  • ROS2相比于ROS1有所提升:
  1. 实时性增强:数据必须在deadline之前完成更新。
  2. 持续性增强:ROS1尽管存在数据队列的概念,但是还有很大的局限,订阅者无法接收到加入网络之前的数据;​ DDS可以为ROS提供数据历史的服务,就算新加入的节点,也可以获取发布的所有历史数据。
  3. 可靠性增强:通过DDS配置可靠性原则,用户可以根据需求选择性能模式(BEST_EFFORT)或者稳定模式(RELIABLE)。

你可能感兴趣的:(ROS)