ROS学习笔记--Names
- Graph Resource Names
- Valid Names
- Resolving
- Examples
Graph Resource Names
Graph Resource Names用于ROS计算图中的所有资源,例如节点,参数,主题和服务
Valid Names
有效名称具有以下特征:
- 第一个字符是字母字符[az | AZ],代字号/或〜
- 后续字符可以是字母数字[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
Node | Relative (default) | Global | Private |
---|---|---|---|
/node1 | bar -> /bar | /bar -> /bar | ~bar -> /node1/bar |
/wg/node2 | bar -> /wg/bar | /bar -> /bar | ~bar -> /wg/node2/bar |
/wg/node3 | foo/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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复