ROS2阅读笔记

ROS Document: https://docs.ros.org/

一、ROS2 总体概览

从ROS到ROS2的能力提升:

  1. 多机器人控制。
  2. 多平台应用支持,Windows、Linux、MacOS、RTOS甚至是无操作系统的单片机裸机。
  3. 实时应用支持,完善时间管理能力,指定时间开启和结束。
  4. 增强网络通信能力。
  5. 产品应用。
  6. 灵活构建。

ROS2取消了对于master节点的强依赖,基于DDS构建通讯系统。

DDS全称Data Distribution Service,数据分发服务,是对象管理组织(Object Manage Group)于2004年正式发布的一个专门为实时系统设计的数据分发/订阅标准,其以数据为核心的发布订阅模型(Data-Centric Publish-Subscribe)创建了一个全局数据空间(global data space),可供所有独立应用进行访问。

在DDS通信模型中,包含了参与者、发布者、订阅者、数据写入器、数据读取器、主题和QoS Policy(质量服务原则)等概念,其中,必须通过参与者访问全局数据空间,QoS Policy控制各方面与底层的通讯机制(包括时间限制、可靠性、持续性、历史记录等),满足用户针对不同场景的数据应用需求。

总而言之,相比ROS1,ROS2在理论上可以实现实时性、持续性、可靠性三方面的增强,根据论文《Exploring the Performance of ROS2》中的实验对比,ROS2较ROS2不容易丢失初始数据,但整体性能(Alpha版)并不如ROS,可能是与处于开发阶段、对DDS特性支持有限有关,但是潜力值得关注。

在ROS的节点、消息、主题、服务等概念的基础上,ROS2新加入了“发现(Discovery)”概念,简单说,记一个节点启动后,将向网络中(周期性)发广播告知自己的到来,其他节点也纷纷反馈自己的信息,节点下线时也发广播告知自己的离开。

RO2的安装

ROS2的仓库地址为:https://github.com/ros2/ros2/releases,提供了二进制安装包源码编译两种安装方式。
具体安装过程参考文末链接。
ROS2相较ROS使用了更多C++特性(如auto、make_shared等),详细的API文档参考链接:https://docs.ros2.org/beta1/api/rclcpp/index.html

参考文章:

  1. 古月局.ROS2探索总结(一)——ROS成长记:https://www.guyuehome.com/772
  2. 古月局.ROS2探索总结(二)——走近ROS2.0时代:https://www.guyuehome.com/805
  3. 古月居.ROS2探索总结(三)——小试牛刀:https://www.guyuehome.com/823

猜你喜欢

转载自blog.csdn.net/lj164567487/article/details/123628156