Page 246 - 《软件学报》2021年第6期
P. 246
1820 Journal of Software 软件学报 Vol.32, No.6, June 2021
[9]
需要严格的服务质量策略约束.Inglés-Romero 等人 提出一种可以在基于 DDS 的中间件中安全、自动和透明
地调整 QoS 属性的方法,从而在提供的可用资源内,以最佳的性能运行.在此基础上, Casini 等人 [10] 提出一种在
动态环境下的实时系统中自动调整 QoS 策略,以实现 QoS 自适应控制的新方法,通过降低其计算能力来改善实
时系统的性能并使其更稳定.上述工作虽然都对 QoS 服务质量进行了描述分析,但大多数是采用测试、模拟和
仿真的方法,鲜有文献从形式化验证的角度对 ROS2 通信系统的 QoS 参数量化分析其性能.
在本文中,我们对 ROS2 面向数据流的数据分发机制进行形式化建模,将数据流形式表达成由多个数据块
组成的数据序列,并对 ROS2 中相关 QoS 策略 DEADLINE,RELIABLITY,DURABILITY,HISTORY 进行形式描
述,建立概率时间自动机模型,并在模型中考虑到数据流通信特点、数据重传机制、确认机制以及环境因素不
确定性,最后通过调整服务质量参数量化分析其系统性能,验证 ROS2 通信系统的可靠性和实时性,从而给系统
设计和 ROS 程序开发人员提供有价值的参考,使 ROS2 系统更加安全可靠.
本文第 1 节描述 ROS2 的数据分发机制,并构建基于 DDS 的 ROS2 通信系统的抽象模型.第 2 节将通信系
统抽象模型分为各个子模块,并对每个子模块建立概率时间自动机模型.第 3 节用 PRISM 概率模型检测器验证
验证 ROS2 通信系统的实时性、可靠性,对机器人通信过程进行关键属性的验证和分析.结合 ROS2 系统间的通
信特点,通过加入 QoS 策略进行量化分析,通过设置和调整服务质量参数,实现不同的数据需求和传输方式,并
在特定的通信环境下能够保证通信的质量.第 4 节总结与展望,总结了本文的主要工作与创新点,并对下一步的
研究提出建议.
1 系统描述
在机器人操作系统中,ROS1 的通信系统是基于 TCPROS 和 UDPROS 的,而此通信方式依赖于主节点,一旦
主节点出现问题,将会影响整个通信系统.ROS2 [11] 的通信系统则是基于 DDS 的,在系统内部提供了 DDS 抽象层
的实现,用户不需要知道 DDS 的 API,并允许 ROS2 使用高级配置选项来优化 DDS 的使用.此外,ROS2 通信系统
不需要主节点,真正成为了去中心化的分布式系统,使得 ROS2 比 ROS1 具备更强大的容错能力.ROS2 支持构建
在 Linux、Windows、Mac、实时操作系统上.ROS2 系统框架如图 1 所示.
Fig.1 ROS2 system framework
图 1 ROS2 系统框架
DDS 是由以数据为中心的发布订阅层(data centered publish subscribe,简称 DCPS)和数据本地重构层(data
local reconstrution layer,简称 DLRL)组成的 [12,13] .DLRL 是 DDS 规范的上层,它使分布式数据可以为本地和远程
对象所共享.DCPS 是 DDS 规范的核心和底层,负责数据传输和 QOS 控制保证,可以将来自发布者的数据高效地
交付给给订阅者,保证了数据传输的可靠性.DDS 则是面向数据流的通信范式,以数据为中心通信可以在每个数
据的基础上添加各种参数,其中包括发布速率、订阅速率、数据有效的时间以及许多其他参数.这些服务质量
参数允许系统设计者根据每个特定数据的要求和可用性构建分布式应用程序.DDS 关键的抽象概念是全局数
据空间(global data space,简称 GDS).DDS 规范要求通信模型中的 GDS 以完全分布式的形式实现,这使得对需要