ROS 2 index翻译(三)——关于服务质量设置

2024-04-28 01:32

本文主要是介绍ROS 2 index翻译(三)——关于服务质量设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、综述
ROS 2提供种类丰富的服务质量(Quality of Service,QoS)策略,允许你调整节点间的通信。通过正确设置服务质量策略,在许多许多可能的状态下,ROS 2可以和TCP一样可靠,或者和UDP一样"尽力而为"。不像ROS 1那样主要仅支持TCP,ROS 2 得益于底层DDS传输的灵活性,在易损耗的无线网络环境下,“尽力而为”策略将更加适合,或者在实时计算系统中,需要正确的服务质量profile(先翻译成配置文件吧)来满足截止时间。

一组QoS“策略”组合成QoS“配置文件”。考虑到为给定方案选择正确的QoS策略的复杂性,ROS 2为常见用例(例如传感器数据)提供了一组预定义的QoS配置文件。同时,用户可以灵活地控制QoS策略的特定配置文件。

可以为发布者,订阅者,服务服务器和客户端指定QoS配置文件。QoS配置文件可以独立地应用于前述实体的每个实例,但是如果使用不同的配置文件,则它们可能将连接不上。

2.QoS策略
基本的QoS配置文件目前包含以下策略设置:

  • 历史
    • 保持最后:仅存储N个样本,可通过队列深度选项进行配置。
    • 全部保留:根据底层中间件的配置资源限制存储所有样本。
  • 深度
    • 队列大小:如果与“保持最后”一起使用,则仅被尊重(字面意思,不知何意)。
  • 可靠性
    • 尽力而为:尝试传递样本,但如果网络鲁棒性不高,可能会丢失样本。
    • 可靠:保证样品已交付,可能重试多次。
  • 持久性
    • 暂态本地:发布者负责为“迟到的”订阅者保留样本。
    • 易变性:没有试图保留样品。

对于每个策略,它还有“系统默认”选项,使用底层中间件的默认值,而中间件可能通过DDS供应商工具(例如XML配置文件)来定义。DDS本身具有可以配置的更广泛的策略。由于它们与ROS 1中的特征相似,因此这些策略已经曝光了; 有可能在未来更多的策略将在ROS 2中曝光(翻译成“出现”更贴切)。

3.与ROS 1比较
ROS 2中的历史和深度策略结合起来提供功能类似于ROS 1中的队列大小的功能。

ROS 2中的可靠性策略类似于使用UDPROS(仅roscpp)用于“尽力而为”策略,或者TCPROS(ROS 1默认值)用于"可靠"策略。但请注意,即使ROS 2中的"可靠"策略也是使用UDP实现的,如果合适,它允许进行组播。

持久性策略与深度1相结合提供了类似于“锁定”订阅者的功能。

4.QoS配置文件
配置文件允许开发人员专注于他们的应用程序,而无需担心每个QoS设置。QoS配置文件定义了一组策略,这些策略可以在特定用例中很好地协同工作。

当前定义的QoS配置文件是:

  • 发布者和订阅者的默认QoS设置

    为了实现从ROS 1到ROS 2的转换,执行类似的网络行为是可取的。默认情况下,发布者和订阅者在ROS 2中是可靠的,具有不稳定的持久性和“保持最后”的历史策略。

  • 服务

    与发布者和订阅者一样,服务也是可靠的。这对于使用易变的持久性的服务尤其重要,否则重新启动的服务服务器可能会收到过期的请求。虽然能保护客户端不接收多个响应,但是没有保护服务器免受接收过期请求的副作用。

  • 传感器数据

    对于传感器数据,在大多数情况下,及时接收读数更重要,而不是确保所有读数都送达。也就是说,开发人员一旦捕获到样本数据,他们就希望这是最新的,但这可能会损失一些样本。因此,传感器数据配置文件使用“尽力而为”的可靠性策略和较小的队列深度。

  • 参数

    ROS 2中的参数基于服务,因此具有类似的配置文件。不同之处在于参数使用更大的队列深度,以使请求不会丢失,例如在参数客户端无法访问参数服务服务器时。

  • 系统默认

    所有的策略使用系统默认值。

单击此处查看上述配置文件使用的特定策略。根据社区的反馈,这些配置文件中的设置可能会进一步调整。

虽然ROS 2为常见用例提供了一些QoS配置文件,但使用DDS中定义的策略允许ROS用户利用现有DDS文档的庞大知识库来为其特定用例配置QoS配置文件。

5.QoS兼容性
注意:此部分涉及发布者和订阅者,但其内容以相同方式可应用于服务服务器和客户端。

QoS配置文件可以分别为发布者和订阅者独立配置。仅当一对发布者和订阅者具有兼容的QoS配置文件时,他们之间的连接才会建立。QoS配置文件兼容性是基于“请求vs提供”模型确定的,其中仅在订阅者的请求策略不比发布者的策略更严格时才进行连接。两个策略中较不严格的将用于连接的策略。

ROS 2中暴露的影响兼容性的QoS策略是持久性和可靠性策略。下表显示了不同策略设置和结果的兼容性:

QoS持久性配置文件的兼容性:

发布者订阅者连接结果
易变的易变的YES易变的
易变的暂态本地NO-
暂态本地易变的YES易变的
暂态本地暂态本地YES暂态本地

QoS可靠性配置文件的兼容性:

发布者订阅者连接结果
尽力而为尽力而为YES尽力而为
尽力而为可靠NO-
可靠尽力而为YES尽力而为
可靠可靠YES可靠

为了建立连接,所有影响兼容性的策略必须兼容。也就是说,即使发布者 - 订阅者对具有兼容的可靠性QoS配置文件,如果它们具有不兼容的持久性QoS配置文件,则不会建立连接,反之亦然。

英文原文:https://index.ros.org/doc/ros2/Concepts/About-Quality-of-Service-Settings/

这篇关于ROS 2 index翻译(三)——关于服务质量设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942015

相关文章

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

Linux:alias如何设置永久生效

《Linux:alias如何设置永久生效》在Linux中设置别名永久生效的步骤包括:在/root/.bashrc文件中配置别名,保存并退出,然后使用source命令(或点命令)使配置立即生效,这样,别... 目录linux:alias设置永久生效步骤保存退出后功能总结Linux:alias设置永久生效步骤

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch