ROS-机器人操作系统(ROS)浅析----第五章

博客摘录于:机器人操作系统(ROS)浅析–[美] Jason M. O’Kane 著–肖军浩 译

计算图源命名

一个全局名称的几个组成部分
1、 前斜杠“/”表明这个名称为全局名称。
2、 由斜杠分开的一系列命名空间(namespace),每个斜杠代表一级命名空间。
如果没有显式提及所属的命名空间,则对应的计算图源名称是归在全局命名空间中的。
3、 描述资源本身的基本名称(base name)。
我们必须意识到,如果在任何地方都使用全局名称,除了可能使人更容易追踪变量外,并不能从使用复杂的命名空间中受益多少。这种命名系统的真正优势来自于相对名称和私有名称。

 相对名称

一个主要替代方案是让ROS为计算图源提供一个默认的命名空间,具有此特征的名称叫做相对计算图源名称(ralative graph resource name),或简称为相对名称(relative name)。

  设置默认命名空间:为节点选择一个不同的默认命名空间的最好也是最常用的方法是在启动文件中使用命名空间(ns)属性(参见6.3节)

ROS还提供了一些其他机制支持这种操作。
1、大部分ROS程序,包括调用ros::init的所有C++程序,接受叫做__ns的命令行参数,此参数将为程序指定一个默认命名空间。

_ _ns:=default-namespace

2、还可以利用环境变量为在shell内执行的ROS程序设置默认命名空间。

Export ROS_NAMESPACE=default-namespace

请注意,只有当没有其他由_ _ns参数指定的默认命名空间时,这个环境变量才有效。
5.4 匿名名称

除了以上三种基本的命名类型,ROS还提供了另一种被称为匿名名称的命名机制,一般用于为节点命名。

为了请求一个匿名名称,节点需要将ros::init_options::Anonymous-Name作为第四个参数传递给ros::init方法:

ros::init(argc, argv, base_name, ros::init_options::AnonymousName);

这个附加选项的作用是在节点的基本名称后面追加某个额外的文本,以确保节点的名字是唯一的。
5.5 展望
在这一章,我们了解了ROS如何命名和解析计算图源名称。特别值得指出的是,具有有着很多相互交互节点的复杂ROS系统受益于使用相对名称或私有名称机制带来的灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值