ROS学习笔记--Names

本文介绍了ROS中GraphResourceNames的使用方式及解析规则,包括有效名称的构成、四种类型的名称(base、relative、global和private),并通过实例说明了节点、主题等资源的命名与解析过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Graph Resource Names

Graph Resource Names用于ROS计算图中的所有资源,例如节点,参数,主题和服务

Valid Names

有效名称具有以下特征:

  1. 第一个字符是字母字符[az | AZ],代字号/
  2. 后续字符可以是字母数字[0-9 | az | AZ],下划线_或正斜杠/

例外:base names不能包含正斜杠/或波浪号

Resolving

ROS中有四种类型的Graph Resource Names:base,relative,global和private

  • base
  • relative/name
  • /global/name
  • ~private/name

节点名称默认解析为relative类型, 节点/wg/node1/wg 命名空间下,该空间下node2会被解析为/wg/node2
没有名称空间限定符的名称是base名称。基本名称实际上是relative名称的子类,base名称最常用于初始化节点名称。
以“〜”开头的名称是private,可将节点的名称转换为名称空间。

Examples

NodeRelative (default)GlobalPrivate
/node1bar -> /bar/bar -> /bar~bar -> /node1/bar
/wg/node2bar -> /wg/bar/bar -> /bar~bar -> /wg/node2/bar
/wg/node3foo/bar -> /wg/foo/bar/foo/bar -> /foo/bar~foo/bar -> /wg/node3/foo/bar
  ros::init(argc,argc,"node1");
  ros::NodeHandle nh;
 
  ros::Publisher node1_pub = nh.advertise<std_msgs:Int32>("bar",10);

节点名称为node1,上面的话题名称为/bar

ros::Publisher node1_pub = nh.advertise<std_msgs:Int32>("/bar",10);

使用斜杠/字符作为全局形式,话题名也是/bar。

ros::Publisher node1_pub = nh.advertise<std_msgs:Int32>("~bar",10);

使用将其声明为私有,那么话题名称即是/node1/bar

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值