Page 247 - 《软件学报》2021年第6期
P. 247
芦倩 等:面向数据流的 ROS2 数据分发服务形式建模与分析 1821
获取 GDS 内的数据的应用程序都可以在任何时刻动态地加入或者离开该系统,当单个节点上的应用程序出现
故障时,并不会导致整个系统崩溃 [14] .因此在时间和空间上保证了系统的松耦合性,系统的灵活性和扩展性也大
大提高了.
在 DDS 通信模型中,每个 DDS 实体都有一套 QoS 策略,通过控制 QoS 策略,数据传输的性能可以被动态调
整,从而满足系统对数据传输的多样性要求.如图 2 所示为 ROS2 通信系统的服务质量策略,在 ROS2 中有以下 4
[8]
种服务质量策略 :
1. DEADLINE:该服务质量策略要求数据写入者和数据读取者必须在每个截止时间内更新一次数据;
2. HISTORY:该服务质量策略控制着数据传输是只传递最新值,还是传递所有中间值,还是传递介于两
者之间的值,可以通过设置队列深度设置存储样本的深度;
3. RELIABLITY:DDS 可靠性通信模式中,分为 Best_Effort(高效传输模式)和 Reliable(可靠传输模式)两
种通信模式:Best_Effort 高效通信模式要求尽可能快地发送数据,但有可能存在数据丢失;在 Reliable
可靠通信模式时,丢失的数据会重新传输,因此数据传输是有保证的;
4. DURABILITY:该服务质量策略规定发布者是否为未加入的节点保存未接收的数据.DURABILITY 策
略分为 Transient_local,Volatile 两个属性:Transient_local 属性规定,发送者会为未加入的节点保存未
接收的数据;Volatile 属性规定,发布者不会特意保存样本数据.
在基于 DDS 的 ROS2 通信系统中,可以加入不同的 QoS 策略量化分析,通过设置和调整服务质量参数,可以
实现不同的数据需求和传输方式,并在特定的通信环境下,能够保证通信的质量.
Fig.2 Quality of service policy for ROS2 communication system
图 2 ROS2 通信系统的服务质量策略
ROS2 中,DDS 发布订阅模型主要由发布者、订阅者、数据写入者、数据读取者和全局数据空间构成,实现
主题的发布订阅和数据分发功能 [15] .我们可将其分为发布模块、订阅模块、全局数据空间模块、通信信道模块:
• 发布模块:发布者首先要创建数据写入者 DW i ,DW i 将所需要发布的数据的主题 T i 以及可提供的 QoS
发布到全局数据空间中.若发布成功,DW i 将进入阻塞等待状态.同时,将 DW i 的发布记录同步计入同
一 DDS 域中每一个节点的发布主题表.当有匹配成功的订阅信息时,DW i 等待状态被激活,查看发布
主题表内与 T i 相对应的 QoS 中 Durability 属性的值:若其取值为 1 时,需在发布缓冲区添加数据,以便