0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ros的基本概念是什么

麦辣鸡腿堡 来源:古月居 作者:越来越胖了mengle 2023-11-27 11:21 次阅读

基本概念:

ROS是一个用于在不同进程间匿名的发布、订阅、传递信息的中间件。

ROS2系统的核心部分是ROS网络(ROS Graph)。

ROS网络是指在ROS系统中不同的节点间相互通信的连接关系。

ROS Graph这里翻译成了ROS网络,因为我觉得Graph更加抽象,而网络的概念更容易帮助理解其内涵。

ROS网络(ROS Graph)概念简介:

节点(Nodes):一个节点是一个利用ROS系统和其他节点通信的实体

消息(Messages):ROS中在订阅和发布主题时所用到的数据结构

主题(Topics): 节点可以发布信息到一个主题,同样也可订阅主题来接收消息

发现(Discovery): 一个自动运行的进程,通过这个进程不同的节点相互发现,建立连接

节点(Nodes)

一个节点就是一个在ROS网络中的参与者。

ROS节点通过ROS客户端程序库(ROS client library)来和其他节点进行通信。

节点可以发布或者订阅主题 节点也可以提供ROS服务(Service)。

节点有很多可以配置的相关参数

节点间的连接时通过一个分布式发现进程来建立的(即上面所说的发现)。

不同的节点可以在同一个进程里面,也可以在不同的进程里面,甚至可以在不同的机器上。

客户端程序库

ROS客户端程序库可以让不同的语言编写的节点进行通信。

在不同的编程语言中都有对应的ROS客户端程序库(RCL),这个程序库实现了ROS的基本API。

这样就确保了不同的编程语言的客户端更加容易编写,也保证了其行为更加一致。

下面的客户端程序库是由ROS2团队维护的

rclcpp = C++ 客户端程序库

rclpy = Python 客户端程序库

另外其他客户端程序也已经有ROS社区开发出来。可以看[[ROS 客户端程序库]]来了解详细信息

发现

节点之间的互相发现是通过ROS2底层的中间件实现的。

过程总结如下:

当一个节点启动后, 它会向其他拥有相同ROS域名的节点进行广播,说明它已经上线。

ROS域名(ROS domain, 可以通过设置ROS_DOMAIN_ID环境变量来设置)

其他节点在收到广播后返回自己的相关信息,这样节点间的连接就可以建立了,之后就可以通信了。

节点会定时广播它的信息,这样即使它已经错过了最初的发现过程,它也可以和新上线的节点进行连接。

节点在下线前它也会广播其他节点自己要下线了。

节点只会和具有相兼容的[服务质量]设置的节点进行通信。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    7304

    浏览量

    87864
  • 客户端
    +关注

    关注

    1

    文章

    284

    浏览量

    16488
  • ROS
    ROS
    +关注

    关注

    1

    文章

    274

    浏览量

    16790
收藏 人收藏

    评论

    相关推荐

    ROS基本概念和系统架构 ROS的安装和简单测试

    前言:一直都觉得ROS很神秘,到底是个操作系统,仅凭称呼就让我望而却步了。但ROS和自动驾驶仿真有着千丝万缕的联系,作为仿真软件和智驾算法的数据桥梁,ROS是个绕不开的话题,所以还是得硬着头皮啃一啃。然后用大白话讲给你听,最好再
    的头像 发表于 11-15 12:42 4828次阅读
    <b class='flag-5'>ROS</b>的<b class='flag-5'>基本概念</b>和系统架构 <b class='flag-5'>ROS</b>的安装和简单测试

    #硬声创作季 #机器人 智能机器人系统-08 机器人操作系统-ROS基本概念

    机器人
    水管工
    发布于 :2022年10月21日 11:08:11

    #硬声创作季 智能机器人系统:机器人操作系统—ROS基本概念

    机器人智能机器
    Mr_haohao
    发布于 :2022年10月25日 23:48:57

    微带的基本概念

    微带的基本概念 如果说带线可以看成是由同轴线演变而成的,那么,微带则可以看成是双导线演化而成的。 [/hide]  
    发表于 11-02 16:11

    Proteus涉及的基本概念

    Proteus涉及的基本概念
    发表于 08-01 20:58

    电子元件基本概念和原理

    电子元件基本概念和原理
    发表于 08-05 21:25

    Fpga Cpld的基本概念

    Fpga Cpld的基本概念
    发表于 08-20 17:14

    C语言基本概念

    C语言基本概念
    发表于 08-01 02:00

    数据结构的基本概念是什么

    数据结构之基本概念
    发表于 05-27 08:29

    阻抗控制相关的基本概念

    阻抗控制部分包括两部分内容:基本概念及阻抗匹配。本篇主要介绍阻抗控制相关的一些基本概念
    发表于 02-25 08:11

    智能天线的基本概念

    1智能天线的基本概念 智能天线综合了自适应天线和阵列天线的优点,以自适应信号处理算法为基础,并引入了人工智能的处理方法。智能天线不再是一个简单的单元,它已成为一个具有智能的系统。其具体定义为:智能
    发表于 08-05 08:30

    CODESYS的基本概念有哪些

    CODESYS是什么?CODESYS的基本概念有哪些?CODESYS有哪些功能?
    发表于 09-18 06:52

    微波基本概念

    1. 微波传输的基本概念,反射、传输和热耗分别是受哪些条件影响;2. 电特性指标 驻波、插损、增益、隔离、耦合、噪声等分别是什么含义。基本单位dB,dBm,dBc有什么区别。
    发表于 06-23 21:51

    ROS学习笔记之ROS基本概念

    ROS概念分为三个层次:文件系统层、计算图层、社区层,这些层次以及概念将会在接下来的章节介绍。 除了这三个层次的概念ROS同样定义
    的头像 发表于 05-19 17:11 1390次阅读
    <b class='flag-5'>ROS</b>学习笔记之<b class='flag-5'>ROS</b><b class='flag-5'>基本概念</b>

    基本概念.zip

    基本概念
    发表于 12-30 09:21 2次下载