首页 > 其他分享 >DDS-数据分发服务

DDS-数据分发服务

时间:2024-09-09 12:20:52浏览次数:11  
标签:分发 qos DDS ros2 服务 工具 ROS ROS2

目录

1.ROS2架构

2.DDS概念

参考资料

1.ROS2架构

        在ROS 2(Robot Operating System 2)中,系统通常由以下几个核心部分组成,它们共同构成了ROS 2的架构和功能:

  1. Plumbing(管道):

    • 这个术语在ROS 2中用来形象地描述其通信基础设施。它包括了底层的通信机制,如话题(Topics)、服务(Services)、动作(Actions)等,这些机制允许节点(Nodes)之间进行数据交换和通信。
    • 通过DDS(Data Distribution Service)实现的RMW(ROS Middleware Interface)是ROS 2通信的核心,它提供了一种去中心化、可扩展的方式来分发数据。
  2. Tools(工具):

    • ROS 2提供了一系列的工具,用于开发、测试、调试和部署机器人应用程序。这些工具包括命令行工具(如ros2命令行界面)、图形界面工具(如RViz、Gazebo)、以及用于构建和打包软件的工具(如colcon、ament)。
    • 这些工具旨在简化开发流程,提高开发效率,并帮助开发者更好地管理和维护机器人软件。
  3. Capabilities(功能):

    • ROS 2的“功能”指的是它提供的各种软件功能和服务,如参数服务器、节点管理、包管理、依赖关系解析等。
    • 这些功能支持机器人应用程序的构建和运行,包括运行时服务、资源管理和应用程序生命周期管理。
  4. Ecosystem(生态系统):

    • ROS 2的生态系统包括了广泛的软件包、库、工具和最佳实践,这些都是由一个活跃的社区开发和维护的。
    • 生态系统还包括了文档、教程、研讨会、会议和在线资源,这些资源为ROS 2的学习、开发和贡献提供了支持。

2.DDS概念

        ROS2的话题、服务、参数、动作实现底层依靠DDS完成。

        ROS通信基于Broker模式,ROS2通信基于数据为中心模式,采用DDS(数据分发服务)的数据通信机制。

        为了实现对多个DDS的兼容,ROS2设计了ROS Middleware中间件,DDS厂商按照ROS2中间件的接口标准开发对应的驱动RMW impl,在ROS2架构中的四大组成部分中,由于DDS的引入,在 ROS1 中,用户需要编写自定义的通信管道来处理数据的发布和订阅。ROS2 引入 DDS 之后,这些管道由 DDS 实现提供,用户不再需要为基本的数据传输功能编写额外的代码。

        在命令行中配置DDS的qos

ros2 topic pub /chatter std_msgs/msg/Int32 "data:42" --qos-reliability best_effort
ros2 topic echo /chatter --qos-reliaiblity reliable
ros2 topic echo /chatter --qos-reliability best_effort
ros2 topic info /chatter --verbose

        配置qos时,确保发布方和订阅方的服务质量管理参数一致。

参考资料

古月居

标签:分发,qos,DDS,ros2,服务,工具,ROS,ROS2
From: https://blog.csdn.net/weixin_56773716/article/details/142052869

相关文章

  • 什么是ESB(企业服务总线)?
    企业服务总线EnterpriseServiceBus(简称ESB),是传统中间件技术与XML、JSON、API、WEB服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。一、ESB出现和发展国外的信息化起步较......
  • 从STM32的定时器到Linux上的时间相关服务
    难题:在baremetal上实现按钮点击、长按事件起因是因为我想用stm32加几个按钮只做一个我自己的控制器,我可以通过按钮执行一些功能。硬件是如何和CPU通信的呢?CPU上支出几个GPIO引脚,这些引脚可以配置为输入模式和输出模式,并且都有两种状态——高电平和低电平。硬件连接这些引脚,你编......
  • 在本地服务器上使用Python脚本处理HTML表单
    要在本地服务器上使用Python处理HTML表单,可以使用 Flask 框架,这是一个轻量级的web框架,特别适合快速构建和处理HTTP请求。以下是如何使用 Flask 创建一个本地服务器,展示HTML表单并处理提交的数据。1、问题背景有一个托管在本地服务器(apache2)上的HTML页面,想要将一些......
  • 就服务器而言,ARM架构与X86架构有什么区别?各自的优势在哪里?
    一、服务器架构概述在数字化时代,服务器架构至关重要。服务器是网络核心节点,存储、处理和提供数据与服务,是企业和组织信息化、数字化的关键基础设施。ARM和x86架构为服务器领域两大主要架构,x86架构服务器在市场占主导,有强大处理能力和广泛软件兼容性,广泛用于企业数据中心......
  • GPU设备化到服务化:高质量AI算力基础设施的关键
    1引言随着人工智能技术的飞速发展,AI算力基础设施已成为支撑AI创新的关键。然而,当前的AI算力基础设施建设及管理面临着诸多挑战。目前常见的异构GPU集群部署和形态为图1-1的孤岛式集群部署+烟囱式算力使用。图1-1传统异构GPU集群形态孤岛式异构集群,即每个厂商的异构智算资源单独组......
  • Rest 构建分布式微服务架构
    开发环境要求jdk1.8(SpringBoot推荐jdk1.8及以上):javaversion"1.8.0_151"Maven3.x(maven3.2以上版本):ApacheMaven3.3.9IntelliJIDEA:IntelliJIDEA2018.2.1x64SpringBoot:SpringBoot2.0.7SpringCloud使用当前最新稳......
  • 多Git服务器的不同SSH密钥对配置
    多个Git服务器时,就没法用默认id_rsa密钥文件名了,容易产生冲突。在连接多个Git服务器且使用不同的账号时,你可以为每个服务器生成不同的SSH密钥对,并使用SSH配置文件来管理这些密钥的使用。具体步骤如下:为每个账号生成不同的SSH密钥你可以为每个Git服务器或账号生成一......
  • 【GeoEvent】实现点要素服务几何信息联合StreamServer流服务数据信息绑定
    数据情况通过sid字段挂接,35个一组数据流结构CSV​​IOT点位数据​​点位数据提前发布为FeatureServer要素服务注意关联字段类型与GeoEvent定义一致​​​​创建GeoEvent定义(数据结构)根据数据流结构决定,注意关联字段与GeoEvent定义一致​​创建TCP接收器​​......
  • 《花100块做个摸鱼小网站! 》第六篇—将小网站部署到云服务器上
    ⭐️基础链接导航⭐️服务器→☁️阿里云活动地址看样例→......
  • 基于SpringBoot的离退休干部综合服务平台的设计与实现
    系统的实现应具备如下功能点:用户:注册与登录:允许离退休干部注册账户并登录,提供用户友好的界面和服务。信息发布:用户可以查看发布与离退休干部相关的各类信息,如政策通知、养生知识、活动通告等。互动交流:提供社交平台,使离退休干部能够分享经验、交流思想、进行讨论。健康资......