ros 命名空间

2023-05-16

文章目录

  • 全局命名空间
  • 相对名称
  • 私有名称
  • 节点命名空间

全局命名空间

/rosout前面的反斜杠“/”表明该节点名称属于全局命名空间。之所以叫做全局名称因为它们在任何地方(包括代码、命令行工具、图形界面工具等的任何地方)都可以使用。无论这些名称用作众多命令行工具的参数还是用在节点内部,它们都有明确的含义。这些名称从来不会产生二义性,也无需额外的上下文信息来决定名称指的哪个资源。如/turtle1/cmd_vel 由斜杠分开的一系列命名空间(namespace),每个斜杠代表一级命名空间。命名空间用于将相关的计算图源(节点、话题、服务和参数统称为计算图源,而每个计算图源由一个叫计算图源名称(graph resource name)的短字符串识)归类在一起。
为了指明一个计算图源,需要完整列出其所属的命名空间,尤其是有时候命名空间层次比较多,这可能会让你抓狂。这时,一个主要替代方案是让ROS为计算图源提供一个默认的命名空间,具有此特征的名称叫做相对计算图源名称(ralative graph resource name),或简称为相对名称(relative name)。

相对名称

相对名称的典型特征是它缺少全局名称带有的前斜杠“/”。例如:cmd_vel 及 count_and_log/set_logger_level理解相对名称的关键是,如果不知道ROS 解析某个计算图源时所使用的默认命名空间,相对名称并不能和特定计算图源匹配。
解析相对名称:将相对名称转化为全局名称的过程相当简单。ROS将当前默认的命名空间的名称加在相对名称的前面,从而将相对名解析为全局名称。比如,如果我们在默认命名空间为/turtle1 的地方使用相对名称cmd_vel,那么ROS 通过组合方法得 /turtle1 + cmd_vel ⇒ /turtle1/cmd_vel

相对名称也可以以一系列的命名空间开始,这些命名空间被看作是默认命名空间中的嵌套空间。举个例子,如果我们在默认命名空间为/a/b/c/d/e/f 的地方使用相对空间g/h/i/j/k,ROS 将会将其进行组合为全局命名空间/a/b/c/d/e/f /g/h/i/j/k/l 得到的全局名称就可以用于确定一个特定的计算图源,就像前面介绍全局名称的使用时一样。
当一个节点内的计算图源全部使用相对名称时,这本质上给用户提供了一种非常简单的移植手段,即用户能方便地将此节点和话题移植到其他的(比如用户自己程序的) 命名空间,而节点的原设计者并不一定参与这个过程。这种灵活性可以使得一个系统的组织结构更清晰,更重要的是能够防止在整合来自不同来源的节点发生名称冲突。作为对比,如果所有节点都使用全局名称命名自己的计算图源, 就很难实现这种高效资源整合。所以,除非一些特殊情况有特殊要求,否则编写节点时并不推荐使用全局名称。

私有名称

私有名称,以一个波浪字符(~)开始,是第三类也是最后一类计算图源名称。和相对名称一样,私有名称并不能完全确定它们自身所在的命名空间,而是需要ROS 客户端库将这个名称解析为一个全局名称。与相对名称的主要差别在于,私有名称不是用当前默认命名空间,而是用的它们节点名称作为命名空间。例如,有一个节点,它的全局名称是 /sim1/pubvel,ROS 将其私有名称∼max_vel 转换至如下全局名称:/sim1/pubvel + ~max_vel⇒ /sim1/pubvel/max_vel 这种命名方式适用的地方是每个节点内部都有这样一些资源,这些资源只与本节点有关,而不会与其他节点打交道,这些资源就可以使用私有名称,与松耦合性相对的。私有名称的关键字“private”仅仅表示其他节点不会使用它们所在的命名空间,也就是仅在命名空间层面上有意义。对于其他节点来讲,只要知道私有名称解析后的全局名称,都可以通过其全局名称访问这些计算图源。这和C++等其他类似编程语言中的关键字“private”是不同的,在这些编程语言中,系统中的其他部分是不能访问某个类的私有成员变量的。

节点命名空间

ros::init(argc, argv, "hec359");
ros::NodeHandle nh;
ros::Publisher IMU_pub = nh.advertise<sensor_msgs::Imu>("imu_data", 50);
ros::NodeHandle nh("myname");  
ros::NodeHandle nh("~myname");  
ros::NodeHandle nh("~");  

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ros 命名空间 的相关文章

  • 【PCL自学:Feature5】视点特征直方图VFH概念及使用 (持续更新)

    一 视点特征直方图 xff08 VFH xff09 原理 这篇博文描述了视点特征直方图 Viewpoint Feature Histogram VFH 描述符 xff0c 在一些其他文章也称为视角特征直方图 xff0c 这是一种用于聚类识别
  • ubuntu18+jetson nano +px4+ros <——>QGC+ubuntu20+ros(关于仿真和实物运行的持续记录心得)

    持续更新 写在前面 xff1a 1 如果存在rosdep问题参考Ubuntu20 04ROS rosdep update超时失败解决方法 npu2018302257的博客 CSDN博客 2 如果存在一些github com或者是raw gi
  • [学习记录]realsence d455 +vins-fusion+px4+ego_planner下无人机的悬停与控制

    写在前面 xff1a 持续更新修改 my env xff1a ubuntu20 my pixhawk xff1a 2 4 8 my px4 firmware xff1a 1 9 0 stablepx4fmu v2 1 6 0 px4v 经济
  • 通过ROS的 nmea_navsat_driver包发布GPS坐标

    通过nmea navsat driver包发布GPS坐标 0 硬件及基本环境1 接通硬件并测试1 1 打开一个终端 xff0c 修改端口的读写权限1 2 用cutecom读取串口数据 2 安装 nmea navsat driver 及 下载
  • samba服务

    一 简单介绍 NFS网络文件系统是不能跨操作系统使用的 xff0c 至少说现在跨windows和linux之间完成文件系统级的共享nfs是无法完成的 xff0c 据说在上个世纪90年度的时候 xff0c 在澳大利亚有一个大学生就面临这样的现
  • 近期尝试UR5和PhantomOmni的联动仿真出现的问题

    近期尝试UR5和PhantomOmni的联动仿真出现的问题 最近在Github找到了几个代码 xff0c 虽然代码是好几年前的 xff0c 但经过尝试编译后有部分可以用 xff0c 有部分有问题 xff0c 现在拿一个来解释一下几年前的RO
  • 解决Linux系统不能上网问题

    解决Linux系统不能上网问题 相信很多Linux的萌新们 xff0c 初次安装LInux 系统后会为不能上网而烦恼 这一问题表现为 xff1a 能连到wifi但就是上不了网 xff01 xff01 xff01 导致这一问题的原因是 xff
  • C语言——蔡勒(Zeller)公式的使用

    C语言 蔡勒公式的使用 蔡勒公式简介 xff1a 蔡勒 xff08 Zeller xff09 公式 xff0c 是一个计算星期的公式 xff0c 随便给一个日期 xff0c 就能用这个公式推算出是星期几 计算公式 xff1a 核心公式 xf
  • 基于单片机定时智能窗帘控制系统设计-毕业资料

    资料下载地址 1022 xff08 百度网盘 xff09 xff1a 点击下载 智能窗户 AT89S52 1602显示 步进电机转动模拟开窗关窗 xff08 1 xff09 手动控制 xff1a 该功能是根据用户的需求通过按键进行窗帘的开关
  • windows10下安装ubuntu子系统

    windows10下安装ubuntu子系统 在win10上使用Ubuntu除了使用虚拟机外 xff0c 还有一种官方支持的Linux子系统模式 子系统上的流畅度比虚拟机高出了不知多少 xff01 经过多次尝试才成功配置 废话不多说 xff0
  • Windows10系统下的WSL+Ubuntu图形桌面配置

    Windows10系统下的WSL 43 Ubuntu图形桌面配置 参考 xff1a windows10下安装Ubuntu子系统 Windows下安装VcXsrv WSL Ubuntu下安装xfce desktop span class to
  • C++:什么是STL?

    什么是STL xff1f 1 STL概论1 1 STL基本概念1 2 STL六大组件简介1 3 STL优点 2 STL三大组件2 1 容器2 2 算法2 3 迭代器2 3 案例 1 STL概论 长久以来 xff0c 软件界一直希望建立一种可
  • makefile中.PHONY的作用是什么?

    makefile中 PHONY的作用是什么 xff1f 初学makefile的时候 xff0c 有一个关键字 PHONY 搞不懂 xff0c 在请教过同学之后豁然开朗 xff0c 遂写下经验望帮助更多的同学能够理解 在某度可以搜到phony
  • TCP和UDP的区别

    TCP和UDP的区别 1 TCP 是什么2 UDP 是什么3 TCP 和 UDP 的不同 1 TCP 是什么 TCP 的全称是Transmission Control Protocol xff0c 传输控制协议 它能够帮助你确定计算机连接到
  • 操作系统死锁 四个必要条件

    操作系统死锁 四个必要条件 1 死锁 xff1a 如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件 xff0c 那么该组进程是死锁的 2 产生死锁的原因 xff1a xff08 1 xff09 竞争不可抢占性资源 x
  • C++智能指针总结(面试常问)

    C 43 43 智能指针总结 xff08 面试常问 xff09 1 智能指针的实现原理2 C 43 43 11四种智能指针总结2 1 auto ptr xff1a 2 2 unique ptr 2 3 share ptr 2 4 weak
  • C++可重入函数和不可重入函数

    C 43 43 可重入函数和不可重入函数 可重入函数是指能够被多个线程 同时 调用的函数 xff0c 并且能保证函数结果正确不必担心数据错误的函数 不可重入函数是指不能运行在多任务环境下 xff0c 除非能保证互斥的函数 由于使用了未受保护
  • STM32单片机中WIFI模块数据传输问题(float->u32->u8/u8->u32->float)

    STM32单片机中WIFI模块数据传输问题 xff08 float gt u32 gt u8 u8 gt u32 gt float xff09 最近在做毕业设计 xff0c 在做wifi数据传输与接收时 xff0c 涉及到了STM32单片机
  • Windows10忘记用户密码?怎么打开电脑?

    Windows10忘记用户密码 xff1f 怎么打开电脑 xff1f 首先在输入密码的登录界面连续敲5次shift按键进入cmd命令行 输入net user查看用户 现在是自己创建的用户忘记密码 xff08 我的是Sunrise用户 xff
  • java --向上转型和向下转型

    一 简述 Java 转型主要是用在继承和接口实现的场景 xff0c Java 转型可分为向上转型和向下转型 xff0c 区别如下 xff1a 向上转型 xff1a 通过子类对象实例化父类对象 xff0c 这属于自动转换 向下转型 xff1a

随机推荐

  • docker

    docker 背景 环境配置的难题 软件开发最大的麻烦事之一 就是环境配置 用户计算机的环境都不相同如果某些老旧的模块与当前环境不兼容 那就麻烦了环境配置如此麻烦 换一台机器 就要重来一次 旷日费时能不能从根本上解决问题 软件可以带环境安装
  • 6.2 能控性

    能控性和能观性是线性系统学习中非常重要的部分 xff0c 它们是研究控制问题和滤波问题所必需的 今儿先来说能控性 一 能控性是啥 xff1f 定义6 1 若对任意初始状态 x 0 61
  • 计算机网络精选20道题

    1 现有一个公司需要创建内部的网络 xff0c 该公司包括工程技术部 市场部 财务部和办公室4个部门 xff0c 每个部门约有20 xff5e 30台计算机 试问 xff1a xff08 1 xff09 若要将几个部门从网络上进行分开 如果
  • “四旋翼”无人机“X模式”飞行原理

    文章目录 摘要飞行器分类四旋翼 X模式 飞行原理四旋翼 十模式 飞行原理参考资料 摘要 简单的介绍了四旋翼无人机的两种模式的飞行原理 飞行器分类
  • PID控制器原理及模块化的源码

    文章目录 摘要PID原理概述比例环节积分环节微分环节 串级双闭环PID控制外环内环 模块化的源码主函数硬件初始化PID复位定义私有变量计算串级PIDPID计算公式源码LIMIT范围控制宏定义思维导图 摘要 小飞机由于飞手的技术和外部环境因素
  • 用驱动精灵和手动更新方式安装 Arduino mega 2560 驱动失败的解决方案

    文章目录 摘要安装步骤 下载安装包 安装地面站 安装驱动 驱动安装失败 补充知识 注意事项总结思考 摘要 硬件环境 xff1a AMP飞控 固件采用的3 2 1软件环境 xff1a Win7 xff0c 地面站采用MissionPlanne
  • 使用条件类型实现TypeScript中的函数重载

    假设有这样的一个函数 xff0c 你会怎么来声明他的类型呢 xff1f function add a b return a 43 b add函数可能有两种情况 参数a b为number类型 xff0c 返回值为number类型参数a b为s
  • 【星海出品】openstack LVM后端

    LVM后端创建 LVM的Red Hat 管理介绍 xff1a https access redhat com documentation zh cn red hat enterprise linux 7 html logical volum
  • xshell连接ubuntu虚拟机失败的2个问题

    问题1 xff1a 虚拟机查看ip失败 xff0c 只显示lo xff0c 不显示ens33 解决方法 xff1a 一句代码 sudo dhclient ens33 成功 xff01 问题2 xff1a xshell连接虚拟机ip地址失败
  • Ubuntu20.10 成功安装搜狗输入法的教程(图文详解)

    1 首先安装fcitx 在终端 xff08 Ctrl 43 Alt 43 T打开 xff09 输入 sudo apt get install fcitx 2 在搜狗输入法网页选择linux版本 https pinyin sogou com
  • (七)springcloud Oauth2授权-Spring Cloud Oauth2

    spring security oauth2 客户端四种授权模式 xff1a 授权码模式 xff08 authorization code xff09 xff1a 第三方应用先申请一个授权码 xff0c 然后再用该码获取令牌 简化模式 xf
  • ROS_Dynamic Reconfig 动态参数调节

    创建功能包 package cd catkin ws src catkin create pkg dynamic refg roscpp dynamic reconfigure cd catkin make 向功能包添加动态重配置文件 cf
  • BGA“焊点”虚焊原因分析及控制方法

    电路板调试过程中 xff0c 会出现 BGA器件外力按压有信号 xff0c 否则没有信号 的现象 xff0c 我们称之为 虚焊 本文通过对这种典型缺陷进行原因分析认为 xff1a 焊接温度曲线 焊膏量 器件及PCB板焊盘表面情况以及印制板设
  • Python中的列表(清晰易懂)

    列表是用来存放数据的 Python中的列表关键字是list 我们来定义一个列表 lista 61 34 a 34 34 b 34 34 c 34 666 34 a 34 可以看到列表lista中 有字符型数据 34 a 34 34 b 34
  • VR技术类毕业论文文献有哪些?

    本文是为大家整理的VR技术主题相关的10篇毕业论文文献 xff0c 包括5篇期刊论文和5篇学位论文 xff0c 为VR技术选题相关人员撰写毕业论文提供参考 1 期刊论文 运动炫科技 智慧赢未来 VR技术在体育领域内的应用与展望 期刊 xff
  • Haar特征类有哪些最新发表的毕业论文呢?

    一 总体简介 Haar特征的相关文献在2006年到2020年内共计132篇 xff0c 主要集中在自动化技术 计算机技术 无线电电子学 电信技术 公路运输 等领域 xff0c 其中期刊论文100篇 会议论文4篇 专利文献28篇 xff1b
  • 查阅国外文献的网站有哪些?

    毕业季不知道小伙伴们有没有为了论文感到头秃 xff0c 参考文献在我们的论文中有着举足轻重的作用 xff0c 每年这个时候都有大批小伙伴为这个寻找参考文献发愁 有些专业的小伙伴由于专业的特殊性很多需要的文献还是外文文献 xff0c 对他们来
  • 使用Python和C++的写数据结构和算法

    使用Python和C 43 43 的写数据结构和算法 1 数据结构和算法简介2 数据结构2 1 堆栈2 2 队列2 3 散列表2 4 二叉树2 5 线性搜索2 6 二进制搜索2 7 递归2 8 递归二进制搜索2 9 QuickSort2 1
  • Hive与Hbase的区别与联系

    一 概念 1 xff0c Hive hive是基于Hadoop的一个数据仓库工具 xff0c 用来进行数据提取 转化 加载 xff0c 这是一种可以存储 查询和分析存储在Hadoop中的大规模数据的机制 hive数据仓库工具能将结构化的数据
  • ros 命名空间

    文章目录 全局命名空间相对名称私有名称节点命名空间 全局命名空间 rosout前面的反斜杠 表明该节点名称属于全局命名空间 之所以叫做全局名称因为它们在任何地方 xff08 包括代码 命令行工具 图形界面工具等的任何地方 xff09 都可以