《ROS机器人开发实践》学习五——ROS的命名空间

日期:2021/09/08

一、ROS的命名空间

1、计算图源
根据前面的学习,在ROS系统中其实存在节点、话题、服务和参数等概念,这些在ROS系统统称为计算图源。

2、计算图源名称的命名规则
在ROS系统中无论是节点还是话题都有自己的名称,如C++语言中的标识符一样,在ROS中命名也有自己的规则:
1)首字符必须是字母(A-Z|a-z)、波浪线(~)或者左斜杆(/);
2)后续字符可以是字母和数字、下划线或者左斜杠

3、计算图源名称的分类
1)全局名称:/global/name:即在任何地方(包括代码、命令行工具、图形界面工具等的任何地方)都可以使用
2)相对名称:relativ/name;
3)私有名称:~private/name;
4)基础名称:base
下面通过创建话题发布订阅(Publisher、Subscriber)的例子来说明,更好理解。按步骤运行该例程,新开一个终端输入使用使用rostopic list查阅话题,使用rosnode list查阅当前运行的话题和节点,如下图所示:
在这里插入图片描述
发布的话题名称为:/chatter;节点的名称为/listener、/talker,一般来说在ROS中创建ROS节点或者发布话题时,ros::NodeHandle nh;其后面没有添加参数,则默认在其名称前加上左斜杠(/),成为全局名称。

相对名称则是在创建的时候没有左斜杠(/)的计算图源名称,ROS在解析相对名称的时候需要将其转化为全局名称,而转换的方式就是将其默认的命名空间的名称加在相对名称之前。确定默认命名空间有三种方式:
1)通过命令参数设置:调用ros::init()的ROS的ROS程序会接收名为_ ns命令行参数,赋值的方式为: _ns:=name;
2)在launch文件中设置
3) 使用环境变量设置

私有名称是一个节点的内部私有的资源名称,只会在节点内部使用。

此处只做简单介绍,详细可查阅书本。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值