ROS源码学习 九、GraphName

本文详细介绍了ROS中的节点名称类型,包括全局名称、相对名称和私有名称,并重点解析了GraphName类,包括其数据成员、构造函数以及各种方法,如canonicalize、isGlobal、isPrivate等,阐述了ROS节点命名的规则和操作。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

目录

一、写在前面

二、ROS中节点的名称类型

三、GraphName

四、总结


​​​​​​​

一、写在前面

        上一节我们分析了ROS节点间进行通信的数据格式以及解析方式,但正如在源码分析开始时我们所说,ROS是一个分布式的系统,因此节点之间通讯不仅需要恰当的数据格式,而且需要一个命名系统使消息能够路由至正确的位置.在本节我们将分析namespace包下有关节点命名与解析的代码.

二、ROS中节点的名称类型

        ROS中有三种类型的类型的节点名称:全局名称、相对名称和私有名称.下面我们将类比Linux下的文件系统来解释ROS的命名策略与命名格式.

        全局名称类似Linux中的绝对路径,它指明了从根节点开始的路径从而提供了一个不依赖上下文的路径搜索方式.如使用cd /usr/local/opt切换目录,系统解析路径后会从根节点开始逐层搜索直到进入指定目录.在ROS中,全局名称同样是以/开头的.

        相对名称类似Linux中的相对路径,它指明了从某个路径点开始的路径,因此搜索结果与当前路径有关.如在Linux中使用cd bin进入目录,如果在/usr/local/tomcat下执行这个命令,则会进入/usr/local/opt/tomcat/bin目录,但如果在/users/admin/mysql目录下执行这个命令,则会进入/users/admin/mysql/bin目录.可见这种方式究竟进入哪个目录取决于当前的目录.在ROS中,相对名称以下级路径开头,没有前缀.

        私有名称可以类比相对名称,它指明了从某个路径点开始的路径,但系统自动进行一层转换而从当前路径下的私有路径中进行搜索.假设在/users/admin目录下访问一个私有路径files,则实际进入的路径是/users/admin/.private_$(whoami)/files,这样就实现了私有路径的访问.在ROS中私有名称是以~开头的.

        另外ROS中还有一类匿名节点名称,匿名路径与其它路径并无不同,只是通过这种方式表示一类孤儿节点或想要隐藏的节点,这种做法与Linux下以 . 开头的隐藏文件或隐藏路径是相似的.

三、GraphName

public class GraphName {

  @VisibleForTesting
  static final String ANONYMOUS_PREFIX = "anonymous_";

  private static final String ROOT = "/";
  private static final St
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值