2.2 ROS-2概述
ROS-2设计目标明确,旨在改进可用于实时系统和产品阶段解决方案的通信网络框架。ROS-2的目标是:
·为不同组件提供安全可靠的通信。
·实时通信能力。
·易于建立多机器人通信连接。
·提高不考虑通信媒介情况下的通信质量。
·直接在硬件层面(如传感器和嵌入式板)上提供ROS层。
·使用最新的软件版本(主要是指客户端库)。
读者是否还记得第1章中的“ROS等式”?ROS-2同样有一条“ROS-2等式”,但与前者略有不同,如图2.1所示。
ROS-2遵循行业标准,通过一个称为DDS实现的概念来实现实时通信。DDS(Data Distributed Service,数据分布式服务)是对象管理组织(Object Management Group,OMG)公认的行业标准,它有许多供应商实现的不同版本,如RTI的Connext(https://www.rti.com/products/)、ADLink的OpenSplice RTPS(https://github.com/ADLINk-IST/opensplice)以及eProsima的快速RTPS(http://www.eprosima.com/index.php/products-all/eprosima-fast-rtps)。
图2.1 集成DDS实现的ROS等式(图片来源:ros.org。基于知识共享授权协议CC-BY-3.0:https://creativecommons.org/licenses/by/3.0/us/legalcode)
这些标准被用于航空系统、医院、金融服务和空间探索系统等对实时性要求极高的应用之中。此实现旨在简化管道策略(发布–订阅基础结构),并使其在不同的硬件和软件组件之间更加可靠,以此确保用户可以更专注于功能和生态系统(而无须过多担心通信问题带来的不确定性)。