我是靠谱客的博主 无聊向日葵,这篇文章主要介绍ROS学习笔记--NamesGraph Resource Names,现在分享给大家,希望可以做个参考。

ROS学习笔记--Names

  • Graph Resource Names
    • Valid Names
    • Resolving
      • Examples

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

最后

以上就是无聊向日葵最近收集整理的关于ROS学习笔记--NamesGraph Resource Names的全部内容,更多相关ROS学习笔记--NamesGraph内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部