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

相关文章

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel

ROS - C++实现RosBag包回放/提取

文章目录 1. 回放原理2. 回放/提取 多个话题3. 回放/提取数据包,并实时发布 1. 回放原理 #include <ros/ros.h>#include <rosbag/bag.h>#include <std_msgs/String.h>int main(int argc, char** argv){// 初始化ROS节点ros::init(argc, argv,