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

相关文章

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

ROS话题通信流程自定义数据格式

ROS话题通信流程自定义数据格式 需求流程实现步骤定义msg文件编辑配置文件编译 在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如:

如何设置windows计划任务

如何设置windows计划任务 前言:在工作过程中写了一个python脚本,用于调用jira接口查询bug单数量,想要在本地定时任务执行,每天发送到钉钉群提醒,写下操作步骤用于记录。 1. 准备 Python 脚本 确保你的 Python 脚本已经保存到一个文件,比如 jira_reminder.py。 2. 创建批处理文件 为了方便任务计划程序运行 Python 脚本,创建一个批处理文

FastAdmin/bootstrapTable 表格中生成的按钮设置成文字

公司有个系统后台框架用的是FastAdmin,后台表格的操作栏按钮只有图标,想要设置成文字。 查资料后发现其实很简单,主需要新增“text”属性即可,如下 buttons: [{name: 'acceptcompany',title: '复核企业',text:'复核企业',classname: 'btn btn-xs btn-primary btn-dialog',icon: 'fa fa-pe

众所周知,配置即代码≠基础设置即代码

​前段时间翻到几条留言,问: “配置即代码和基础设施即代码一样吗?” “配置即代码是什么?怎么都是基础设施即代码?” 我们都是知道,DevOp的快速发展,让服务器管理与配置的时间大大减少,配置即代码和基础设施即代码作为DevOps的重要实践,在其中起到了关键性作用。 不少人将二者看作是一件事,配置即大代码是关于管理特定的应用程序配置设置本身,而基础设施即代码更关注的是部署支持应用程序环境所需的

设置Nginx缓存策略

详细信息 Nginx服务器的缓存策略设置方法有两种:add_header或者expires。 1. add_header 1)语法:add_header name value。 2)默认值:none。 3)使用范围:http、server、location。 配置示例如下: add_header cache-control "max-age=86400";#设置缓存时间为1天。add

设置android返回键,保存和取得最高分

1.在.h中声明一些方法 virtual void keyBackClicked();           //Android返回键 bool isHaveSaveFile(); void getHighestHistoryScore(); 在.cpp中实现这个几个方法 void WelcomeLayer::keyBackClicked(

通知中心设置一个键盘的捕捉事件

//通知中心监听键盘的frame发生改变

如何给文档设置密码?电脑文件安全加密的详细操作步骤(10种方法)

在数字化时代,电脑文件的安全和隐私至关重要。通过给电脑的文件或者文件夹设置密码和加密,可以有效保护你的重要文件不被未经授权的人员访问,特别是公司的重要岗位,一些特殊的机密文件,投标文件,资金文件等等,更应该注重文件日常使用安全性。下面将为你介绍10种电脑文件,文件夹加密的详细操作步骤,帮助你更好地保护你的电脑文件安全。 加密方式一、Windows系统内置加密(电脑自带的文件加密) 选中需要

CMake笔记之CMAKE_INSTALL_PREFIX详解以及ROS中可执行文件为什么会在devel_lib中

CMake笔记之CMAKE_INSTALL_PREFIX详解以及ROS中可执行文件为什么会在devel_lib中 code review! 文章目录 CMake笔记之CMAKE_INSTALL_PREFIX详解以及ROS中可执行文件为什么会在devel_lib中1.`CMAKE_INSTALL_PREFIX`详解变量作用设置 `CMAKE_INSTALL_PREFIX`示例影响范围常