Ros android 代码中节点的命名规则(ros第二篇)

Ros android 代码中节点的命名规则

列入:GraphName.of("move_base/TebLocalPlannerROS/global_plan")

节点名称为:move_base/TebLocalPlannerROS/global_plan

 外语原文连接地址:http://wiki.ros.org/Names

目录

1. 命名

1.1图像资源命名

1.1.1有效命名

1.1.2解析

1.1.3重新映射

1.2包资源名称

1.2.1有效命名

1.3代码API

 

1.命名

1.1图像资源命名
图形资源名称提供了分层命名结构,用于ROS计算图中的所有资源,例如节点,参数,主题和服务。 这些名称在ROS中是非常强大的,也是ROS如何构建更大更复杂的系统的核心,因此理解这些名称是如何工作的以及如何操作它们是至关重要的。
在我们进一步描述名称之前,下面是一些示例名称:

/ (the global namespace)

/foo

/stanford/robot/name

/wg/node1

图形资源名称是ROS提供封装的重要机制。每个资源都是在一个命名空间中定义的,它可以与许多其他资源共享。通常,资源可以在其名称空间内创建资源,并且可以访问自己的名称空间内或上方的资源。可以在不同名称空间中的资源之间建立连接,但通常通过名称空间上方的集成代码完成。这种封装将系统的不同部分隔离起来,以免意外攫取错误的命名资源或全局劫持名称。
名称相对地被解析,所以资源不需要知道它们在哪个名字空间。这简化了编程,因为一起工作的节点可以被写入,就好像它们都在顶层名字空间中一样。当这些节点被集成到一个更大的系统中时,它们可以被下推到一个定义它们代码集合的命名空间中。例如,可以采用斯坦福演示和Willow Garage演示,并将它们合并成一个带有斯坦福和wg子图的新演示。如果两个演示都有一个名为“摄像头”的节点,它们不会发生冲突。可以由顶级节点创建工具(例如图表可视化)以及需要对整个图形可见的参数(例如demo_name)。

1.1.1有效命名

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

第一个字符是一个字符([a-z | A-Z]),代字符(〜)或正斜杠(/)

后续字符可以是字母数字([0-9 | a-z | A-Z]),下划线(_)或正斜杠(/)

例外:基名(下面描述)不能有正斜杠(/)或折线(〜)

1.1.2解析

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

base

relative/name

/global/name

~private/name

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

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(翻译:消息(msg)类型

Service (srv) types(翻译:服务(srv)类型

Node types(翻译:节点类型

包资源名称与文件路径非常相似,只是它们要短得多。 这是由于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]),下划线(_)或正斜杠(/)
最多只有一个正斜杠('/')

1.3代码API
roscpp ::名称API参考(ROS Indigo)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值