ROS----名字空间namespace

2023-05-16

1名称

1.1图资源名称Graph ResourceNames

图形资源名称提供了一个分层命名结构,用于ROS计算图中的所有资源,例如节点参数主题服务。这些名称在ROS中非常强大,并且是ROS如何构建更大和更复杂的系统的核心,因此了解这些名称的工作方式以及如何操作它们至关重要。在我们进一步描述名称之前,以下是一些示例名称:
/(the global namespace)
/foo
/stanford/robot/name
/wg/node1
图形资源名称是ROS提供封装的重要机制。每个资源都是在一个名称空间内定义的,它可以与许多其他资源共享。一般而言,资源可以在其名称空间内创建资源,并且可以访问自己的名称空间内或上方的资源。可以在不同名称空间中的资源之间建立连接,但通常通过名称空间上方的集成代码完成。这种封装将系统的不同部分隔离起来,以免意外攫取错误的命名资源或全局劫持名称。
名称独立的被解析,所以资源不需要知道它们在哪个名称空间。这简化了编程,因为一起工作的节点可以被写入,就好像它们全部在顶层名称空间中一样。当这些节点被集成到一个更大的系统中时,它们可以被下推到一个定义它们代码集合的名称空间中。例如,人们可以采取斯坦福演示和Willow Garage的演示,并把它们合并成一个新的演示斯坦福和WG子图。如果两个演示都有一个名为“摄像头”的节点,它们不会发生冲突。工具(如图表可视化)以及需要对整个图形可见的参数(例如demo_name)可由顶级节点创建。

1.1.1有效名称

有效的名称具有以下特征:

  1. 第一个字符是字母字符([a-z | A-Z]),代字符(〜)或正斜杠(/)
  2. 后续字符可以是字母数字([0-9 | a-z | A-Z]),下划线(_)或正斜杠(/)

例外基本名称(如下所述)不能在其中包含正斜杠(/)或折线()。

1.1.2解决

ROS中有四种类型的图形资源名称:base,relative,global和private,它们的语法如下:

Base

relative/name

/global/name

~private/name

默认情况下,解析是相对于节点的名称空间完成的。例如,节点/ wg / node1具有名称空间/ wg,因此名称node2将解析为/ wg / node2。
没有命名空间限定符的名称是基本名称。基本名称实际上是相对名称的一个子类,并具有相同的解析规则。基本名称最常用于初始化节点名称。
以“/”开头的名称是global----它们被视为完全解析。尽可能避免使用全局名称,因为它们限制了代码的可移植性。
以“〜”开头的名称是私人的。它们将节点的名称转换为名称空间。例如,节点1在命名空间/ WG /拥有私有命名空间/ WG /节点1。专用名称有利于通过参数服务器将参数传递给特定节点。
以下是一些名称解析示例:

Node

Relative (default)

Global

Private

/node1

Bar -> /bar

/bar -> /bar

~bar -> /node1/bar

/wg/node2

bar -> /wg/bar

/bar -> /bar

~bar -> /wg/node2/bar

/wg/node3

foo/bar -> /wg/foo/bar

/foo/bar -> /foo/bar

~foo/bar -> /wg/node3/foo/bar

1.1.3重新映射

当节点在命令行启动时,可以重新映射ROS节点中的任何名称。有关此功能的更多信息,请参阅重新映射参数

1.2包资源名称

软件包资源名称用于ROS和Filesystem-Level概念,以简化引用磁盘上的文件和数据类型的过程。包资源名称非常简单:它们只是资源所在的的名称以及资源的名称。例如,名称“std_msgs / String”引用“std_msgs”包中的“String”消息类型。

一些可能使用包资源名称引用的ROS相关文件包括:

Message (msg) types

Service(srv) types

Nodetypes

包资源名称与文件路径非常相似,除非它们更短。这是由于ROS在磁盘上定位软件包的能力以及对其内容做出其他假设的原因。例如,消息描述总是存储在msg子目录中,并具有.msg扩展名,所以std_msgs / String是path / to / std_msgs / msg / String.msg的简写。同样,节点类型foo / bar等同于在包foo中以可执行权限搜索名为bar的文件。

 

1.2.1有效名称

包资源名称具有严格的命名规则,因为它们通常用于自动生成的代码。出于这个原因,ROS不能包含除下划线以外的特殊字符,并且它们必须以字母字符开头。有效的名称具有以下特征:
第一个字符是一个字母字符([a-z | A-Z])
后续字符可以是字母数字([0-9 | a-z | A-Z]),下划线(_)或正斜杠(/)
最多只有一个斜线('/')。

代码API

roscpp ::名称API参考ROS Indigo

http://wiki.ros.org/Names#Graph

 

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

ROS----名字空间namespace 的相关文章

  • keil中的串口调试:

    keil中串口的虚拟调试信息在通过View serial windows usart1 2 3 4 debug printf 可以看到 当然也可以通过虚拟串口VSPD 43 串口调试助手在外部实现 xff0c 方法如下 xff1a 虚拟 串
  • Eclipse的Ctrl+s不能保存问题的解决!

    原因1 xff1a eclipse快捷键设置有问题 xff0c 解决方式 xff1a 检查windows gt perferences gt Keys中的Save项 xff0c 是否绑定了Ctrl 43 S xff0c 以及相关设置是否正确
  • linux 查看磁盘空间大小

    1 Ubuntu 查看磁盘空间大小命令 df h Df命令是linux系统以磁盘分区为单位查看文件系统 xff0c 可以加上参数查看磁盘剩余空间信息 xff0c 命令格式 xff1a df hl 显示格式为 xff1a 文件系统 容量 已用
  • 开源三轴云台EVVGC(simple BGC)分析

    一 xff0e 主程序分析 主程序结构清晰 xff0c 流程如图所示 xff0c 下面将对每个部分做详细分析 二 系统初始化 系统初始化部分的流程如上图所示 xff0c 下面对每部分做具体分析 1 时钟初始化 该部分主要是使能DWT xff
  • 使用docker中mysql镜像

    1 拉取mysql镜像 docker pull mysql 5 6 2 运行mysql的镜像生成一个正在运行的容器 xff0c 可以通过docker contain ls得到容器的id信息 docker run dit p 3306 330
  • WARNING: CPU: 0 PID: 1 at ./arch/x86/include/asm/fpu/internal.h:373

    cut here WARNING CPU 0 PID 1 at arch x86 include asm fpu internal h 373 0xffffffffb3022ed7 Modules linked in CPU 0 PID 1
  • PMP考试概念汇总(下)

    管理沟通 xff1a 是根据沟通管理计划 xff0c 生成 收集 分发 储存 检索及最终处置项目信息的过程 本过程的主要作用是 xff0c 促进项目干系人之间实现有效率且有效果的沟通 控制沟通 xff1a 是在整个项目生命周期中对沟通进行监
  • 发现cmake使用CMakeLists.txt生成工程时的一个问题

    使用CMakeLists txt生成DLL 定义的exort字段会将全部大写变成大小写混合 xff0c 例如 NECONFIG EXPORT 在生成的工程中会变为 NeConfig EXPORT 转载于 https www cnblogs
  • .NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯,flyfire.CustomSerialPort 的使用

    目录 1 xff0c 前言 2 xff0c 安装虚拟串口软件 3 xff0c 新建项目 xff0c 加入 flyfire CustomSerialPort 4 xff0c flyfire CustomSerialPort 说明 5 xff0
  • PX4 IO [15] mixer

    PX4 IO 15 mixer PX4 IO 15 mixer 转载请注明出处 更多笔记请访问我的博客 xff1a merafour blog 163 com 2015 1
  • [转帖]k8s.gcr.io/pause的作用

    k8s gcr io pause的作用 https blog 51cto com liuzhengwei521 2422120 weilovepan520 关注 0 人评论 196人阅读2019 07 21 11 35 05 重要概念 xf
  • Ubuntu安装时怎样分区

    1 swap交换分区 xff0c 一般为你机器内存的两倍 少于这个容量 系统无法进入休眠 实质是硬盘上的交换空间而非分区 所以没有格式 xff0c 默认休眠将数据储存于此 能够取消 xff08 如不用swap必须再设定方可休眠 xff09
  • [转帖]教你如何修改运行中的docker容器的端口映射

    教你如何修改运行中的docker容器的端口映射 在docker run创建并运行容器的时候 xff0c 可以通过 p指定端口映射规则 但是 xff0c 我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改 当docker start运行
  • java实现信号量

    本文介绍的Semaphore实现基于synchronized wait 和notify notifyAll 这是java并发包之前的典型实现方式 在eclipse的源码中可以找到不少这样的案例 下文中也会把eclipse中的几个实现类作为案
  • 我失败的程序员生涯

    我 xff0c 一个普普通通的人 普通本科毕业 xff0c 来到北京成为了一个普通的程序员 2013年 xff0c 我本科毕业 xff0c 然后就踏上了北漂的征程 来之前想的很清楚 北京技术发达先进 我可以在这里工作三四年 xff0c 学习
  • python 远程关机_python实现微信远程电脑关机完整源码

    这是python实现微信远程电脑关机完整源码下载 xff0c 通过手机微信发送QQ邮件给sina邮箱 xff0c 然后利用python的pop3定时检查sina邮箱的邮件主题以及邮件来源 xff0c 并在电脑执行相应的命令行实现关机 软件介
  • python序列:字符串

    1 字符串是一种直接量或者说是一种标量 xff0c 字符串是不可变类型 xff0c 简单来说改变一个字符串的元素就等需要新建一个新的字符串 当然 xff0c 通过拼凑各个部分得到一个新的字符串也还是可以的 注意 xff1a python的字
  • 解决jenkins master挂载slave SSH Key Exchange not finished的问题

    1 报错日志 span class token punctuation span span class token number 01 span span class token operator span span class token
  • 11 个 Linux 上最佳的图形化Git 客户端

    Linux用户主要可以通过命令行来管理Git xff0c 不过外面有几种图形化用户界面 xff08 GUI xff09 Git客户软件 xff0c 它们便于用户在Linux桌面上高效 可靠地使用Git xff0c 即便提供不了所有命令行操作
  • yb3防爆电机型号含义_煤矿用防爆电机常用防爆电机型号

    煤矿用防爆电机概述 煤矿用防爆电机一般指在矿井下作业的防爆电机 xff0c 运行环境比较恶劣 xff0c 而且运作安全性较高 是一种具有防爆性能的电动机 xff0c 煤矿用防爆电机的构造主要针对外壳进行特别的加固 xff0c 一般用防爆电机

随机推荐

  • ARM架构授权和IP核授权有什么不一样啊?

    比如 xff0c 华为分别拿到这2个授权 xff0c 能做的有什么区别啊 xff1f 匿名 浏览 2976 次 推荐于2016 06 09 02 43 35 最佳答案 一个公司若想使用ARM的内核来做自己的处理器 xff0c 比如苹果三星T
  • 无人机目标定位C++程序

    针对动态背景下的目标检测定位 include lt opencv2 core core hpp gt include lt opencv2 highgui highgui hpp gt include lt opencv2 imgproc
  • gvim配置默认字体、配色等

    gvim配置默认字体 配色等 1 打开软件 xff0c 选择编辑 gt 启动设定 2 在其中添加自己的配置命令 xff0c 例如 xff1a filetype on 34 关闭自动备份 set noundofile set nobackup
  • Pixhawk原生PX4固件中的坑

    作为一名飞控开发的小学生 xff1a xff09 xff0c 最近入坑Pixhawk 43 PX4了 基于Pixhawk硬件平台进行二次开发 xff0c 有两套固件可以选择 xff1a Ardupilot系列也就是常说的APM固件 xff0
  • Linux(CentOS 6.3)设置VNC远程桌面连接

    刚研究Linux xff0c 选的是CentOS6 3的系统 xff0c 由于刚开始研究Linux xff0c 为了这个远程桌面连接走了不少弯路 xff0c 让大家见笑了 为了弄这个VNC远程连接 xff0c 网上找了很多资料 xff0c
  • python中的库和模块有什么区别_Python中模块(Module)和包(Package)的区别详解 python中的模块、库、包有什么区别?...

    python中的模块 xff0c 库 xff0c 包有什么区别 python中的模块 库 包有什么区别 python里面module package library三者有什么不同功能 安装 使用方法上有什么不同 python中的模块 库 包
  • 《大数据时代》读书笔记

    大数据时代 英国人Viktor Mayer Schonberger的著作 最重要的一点是介绍了一种思维模式的变化 主要观点 xff1a 大数据是指获取全部数据样本 xff0c 分析全部数据 xff0c 而不是只做抽样分析 大数据分析更关注相
  • power design初步使用01

    来自大佬 xff1a 别先生 点击即可查看原文 1 xff1a 入门级使用PowerDesigner软件创建数据库 xff08 直接上图怎么创建 xff0c 其他的概念知识可自行学习 xff09 我的PowerDesigner版本是16 5
  • http服务器demo,简单学习 vs下可以运行

    以下是使用C 43 43 在VS环境下编写的一个简单的HTTP服务器示例代码 xff1a include lt iostream gt include lt string gt include lt WS2tcpip h gt includ
  • power design初步使用02

    概念数据模型 逻辑数据模型 物理数据模型详解 出自 xff1a https www cnblogs com joechinochl articles 5252518 html 数据模型所描述的内容包括三个部分 xff1a 数据结构 数据操作
  • power design综合应用

    出自大佬宋辉 xff1a https www cnblogs com dfsxh articles 1295087 html Power Designer是Sybase公司的CASE 工具集 xff0c 使用它可以方便地对管理信息系统进行
  • LTE中layer的概念以及rank的概念

    原帖地址 xff1a https www mscbsc com bbs thread 293293 1 1 html https www mscbsc com askpro question83176 MIMO 表示多输入多输出 MIMO系
  • Endnote--在参考文献列表中添加DOI

    参考了此网站的内容 xff1a https www jianshu com p 11411c1c8495 1 在Endnote中给参考文献列表添加DOI的方法 xff1a Edit gt Output styles gt Eidt AJTR
  • t检验中的t值和p值是什么关系_t检验和p值的关系

    t检验中的t值和p值是什么关系 t检验和p值的关系 t检验 中通过样本均值 总体均值 样本标准差 样本量 可以计算出一个t值 xff0c 这个t值和p值有什么关系 xff1f 根据界值表又会查出一个数 xff0c 这个数和t值比较 xff0
  • ORACLE 之 标识符无效 问题总结及解决方案

    今天自己在家里做毕业设计 xff0c 遇到了ORACLE数据库的一些问题 xff0c 所以来总结一下 自己在上班的时候也遇到客户过提过这样的问题 xff0c 当时自己在百度上查了 xff0c 给客户解决完 自己也没有在意 xff0c 这次又
  • 数据结构总结

    本文目录 xff1a 数据结构分类1 数组2 栈3 队列4 链表5 树6 散列表7 堆8 图 数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 常用的数据结构有 xff1a 数组 xff
  • Netty源码分析 (八)----- write过程 源码分析

    上一篇文章主要讲了netty的read过程 xff0c 本文主要分析一下write和writeAndFlush 主要内容 本文分以下几个部分阐述一个java对象最后是如何转变成字节流 xff0c 写到socket缓冲区中去的 pipelin
  • 接口调用方法详解

    接口调用方法详解 基础知识 接口定义 xff1a 接口是一组已命名的方法签名 所以接口里可以定义方法 属性 事件 xff0c 因为这些本质上都是方法 但是 xff0c 接口不能定义任何的构造函数 接口的可访问性 xff1a 类本身的修饰符可
  • C++ Primer Plus (Fifth Edition)pdf

    下载地址 xff1a 网盘下载 本书是久负盛名的C 43 43 经典教程 xff0c 其内容是C 43 43 大师Stanley B Lippman丰富的实践经验和C 43 43 标准委员会原负责人Jos e Lajoie对C 43 43
  • ROS----名字空间namespace

    1名称 1 1图资源名称Graph ResourceNames 图形资源名称提供了一个分层命名结构 xff0c 用于ROS计算图中的所有资源 xff0c 例如节点 xff0c 参数 xff0c 主题 和服务 这些名称在ROS中非常强大 xf