ROS 2 index翻译(二)——ROS 2和不同的DDS/RTPS供应商

2024-04-28 01:32

本文主要是介绍ROS 2 index翻译(二)——ROS 2和不同的DDS/RTPS供应商,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ROS 2是建立在DDS/RTPS之上的。作为ROS2的中间件,DDS/RTPS提供发现、序列化和信息传输。这篇文章详细解释了使用DDS实现和DDS的RTPS有线协议背后的动机,但总体上来说,DDS是一个端到端的中间件,它提供与ROS系统相关的功能,例如分布式发现(没有集成在ROS1中)和控制不同的用于信号传输的“Quality of Service”选项。

DDS是一个工业标准,并且由一系列供应商实施,例如RTI、Connext或者ADLink的实现。OpenSplice RTPS(又名DDSI-RTPS)是DDS用于与其他网络通信的有线协议,它虽不能满足完整DDS API的使用要求,但能为ROS2提供足够的功能,例如eProsima实现快速RTPS。

ROS 2支持多种DDS/RTPS实现,因为在选择供应商/实现方式时,这没必要“一刀切”。在选择中间件实现时,有很多因素需要考虑:诸如许可等后勤方面的考虑,平台可用性或计算占用空间等技术方面的考虑。供应商可能会提供多个针对满足不同需求的DDS或RTPS实施。例如,RTI的Connext实现在目标上有些变种,像一个专门用于微处理器,另外一个专门针对需要特殊安全认证的应用(目前我们只支持他们的标准桌面版)。

为了在ROS2上使用DDS/RTPS,需要创建一个ROS中间件接口包(ROS Middleware interface,简称rmw接口或rmw)。rmw包使用DDS或RTPS API和工具,来实现抽象ROS中间件接口。实现和维护rmw包以支持DDS实现需要做很多工作,但是支持至少几种运用是很重要的,这样能保证ROS 2代码库不依赖任何一种特定的应用,因为用户可能希望根据项目需要来切换应用。

支持的RMW应用:

产品名称许可证RMW应用状态
eProsima Fast RTPSApache 2rmw_fastrtps_cpp全支持。默认RMW。二进制封装。
RTI Connext商用,科研rmw_connext_cpp全支持。支持二进制,但分开安装。
RTI Connext(动态应用)商用,科研rmw_connext_dynamic_cpp暂停支持。直到alpha 8才全支持。
PrismTech OpenspliceLGPL(仅 v6.4),商用rmw_opensplice_cpp部分支持。支持二进制,但OpenSplice要分开安装。
OSRF FreeRTPSApache 2-部分支持。已暂停发展。

 

 

 

 

 

 

 

 

 

部分支持是指rmw接口需要的一个或多个特性不能满足。

英语原文:https://index.ros.org/doc/ros2/Concepts/DDS-and-ROS-middleware-implementations/

这篇关于ROS 2 index翻译(二)——ROS 2和不同的DDS/RTPS供应商的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍: 一、气象站的种类 根据用途和安装环境分类: 农业气象站:专为农业生产服务,监测土壤温度、湿度等参数,为农业生产提供科学依据。交通气象站:用于公路、铁路、机场等交通场所的气象监测,提供实时气象数据以支持交通运营和调度。林业气象站:监测林区风速、湿度、温度等气象要素,为林区保护和

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

[vivado][IP核]DDS

刘东华的IP核详解: 1、 这里的是指IP核配置中的相位数据的宽度。 2、 实际使用此IP核时并没有“频率分辨率”可以配,是靠改变来变的。 3、 4、 5、 数据输出的ready在数据正式输出时才会有。 自己仿真: 使用SIN/COS LUT only的模式,使用一个累加器作为相位输入,不知怎么,输出为X。

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`示例影响范围常

SpringBoot中如何监听两个不同源的RabbitMQ消息队列

spring-boot如何配置监听两个不同的RabbitMQ 由于前段时间在公司开发过程中碰到了一个问题,需要同时监听两个不同的rabbitMq,但是之前没有同时监听两个RabbitMq的情况,因此在同事的帮助下,成功实现了监听多个MQ。下面我给大家一步一步讲解下,也为自己做个笔记; 详细步骤: 1. application.properties 文件配置: u.rabbitmq.ad

代码随想录算法训练营第三十九天|62.不同路径 63. 不同路径 II 343.整数拆分 96.不同的二叉搜索树

LeetCode 62.不同路径 题目链接:62.不同路径 踩坑:二维的vector数组需要初始化,否则会报错访问空指针 思路: 确定动态数组的含义:dp[i][j]:到达(i,j)有多少条路经递推公式:dp[i][j] = dp[i-1][j] + dp[i][j-1]初始化动态数组:dp[0][0] = 1遍历顺序:从左到右,从上到下 代码: class Solution {pu

Kimichat使用案例026:AI翻译英语PDF文档的3种方法

文章目录 一、介绍二、腾讯交互翻译TranSmart https://transmart.qq.com/三、沉浸式翻译三、谷歌网页翻译 一、介绍 短的文章,直接丢进kimichat、ChatGPT里面很快就可以翻译完成,而且效果很佳。但是,很长的PDF文档整篇需要翻译,怎么办呢? 二、腾讯交互翻译TranSmart https://transmart.qq.com/ 软件

ROS话题通信机制实操C++

ROS话题通信机制实操C++ 创建ROS工程发布方(二狗子)订阅方(翠花)编辑配置文件编译并执行注意订阅的第一条数据丢失 ROS话题通信的理论查阅ROS话题通信流程理论 在ROS话题通信机制实现中,ROS master 不需要实现,且连接的建立也已经被封装了,需要关注的关键点有三个: 发布方(二狗子)订阅方(翠花)数据(此处为普通文本) 创建ROS工程 创建一个ROS工程

Git 中 pull 操作和 rebase 操作的不同

由于在开发过程中,pull 操作和 rebase 操作都是用来合并分支的,所以我就常常分不清这两个操作具体有什么区别,所以才有了这篇博客来做个简单区分,具体细致差别还请移步到官方文档:Git - Reference (git-scm.com) 1)pull 操作明确来说,实际是分为了两步操作:fetch + merge fetch:进行 pull 操作的时候,git 首先会将远程仓库中的所有远