Mr_matcher的细节1
1.NodeHandle类(或者NodeHandle句柄)的私有名称
1)句柄可以让你通过构造函数指定命名空间
ros::NodeHandle nh("my_namespace");
这使得使用该句柄的任何相对名字都是相对<node_namespace>/my_namespace,而不是只相对<node_namespace>.
你也可以指定一个父句柄和追加的命名空间
ros::NodeHandle nh1("ns1");
ros::NodeHandle nh2(nh1,"ns2");
这将把nh2放入到<node_namespace>/ns1/ns2命名空间
2)也可以指定全局名字
ros::NodeHandle nh("/my_global_namespace");
这种做法并不推荐,因为这样会使得节点无法被放入别的命名空间。只是有时在代码中使用全局名字有用。
3)私有名字
使用私有名字比直接调用有私有名的句柄方法更有技巧,你可以在一个私有命名空间中直接创建一个新的句柄。
ros::NodeHandle nh("~my_private_namespace");
ros::Subscriber sub = nh.subscribe("my_private_topic",....);
以上例子会订阅<node_name>/my_private_namespace/my_private_topic
注意:理解的重点上文中红色标注的部分,node_namespace和node_name是两回事!
自己实验之后:测出命名空间的范围级别区别:rosparam list >rosnode list >rostopic list = rosservice list.topic和service可以被NodeHandle所改变,但是不会因为节点名的改变而改变。
4)命名空间的修改以及节点名的重映射
rosrun turtlesim turtlesim_node __ns:=/home/user1
rosrun turtlesim turtlesim_node __name:=A
rosrun turtlesim turtlesim_node __name:=B
相对名称:
一个主要替代方案是让ROS为计算图源提供一个默认的命名空间,具有此特征的名称叫做相对计算图源名称(ralative graph resource name),或简称为相对名称(relative name)。
设置默认命名空间:为节点选择一个不同的默认命名空间的最好也是最常用的方法是在启动文件中使用命名空间(ns)属性
私有名称:
私有名称,以一个波浪字符(~)开始, 是第三类也是最后一类计算图源名称。和相对名称一样,私有名称并不能完全确定它们自身所在的命名空间,
而是需要ROS 客户端库将这个名称解析为一个全局 名称。与相对名称的主要差别在于,私有名称不是用当前默认命名空间,而是用的它们节点名称作为命名空间。
例如,有一个节点,它的全局名称是 /sim1 /pubvel,ROS 将其私有名称∼max_vel 转换至如下全局名称:/sim1/pubvel + ~max_vel⇒ /sim1/pubvel/max_vel 这种命名方式适用的地方
是每个节点内部都有这样一些资源,这些资源只与本节点有关,而不 会与其他节点打交道,这些资源就可以使用私有名称,与松耦合性相对的。私有名称的关键字“private”仅仅表示其他节点
不会使用它们所在的命名空间, 也就是仅在命名空间层面上有意义。对于其他节点来讲,只要知道私有名称解析后的全局名称,都可以通过其全局名称访问这些计算图源。
二者的组合:
rosrun turtlesim turtlesim_node __name:=A __ns:=/home/user1
命名空间:http://wiki.ros.org/Names
Mr_matcher的细节1的更多相关文章
- Mr_matcher的细节3
主要是订阅了playbag发布的scan话题和odom话题 其类型分别为 //cache the static tf from base to laser getBaseToLaserTf(scan_ ...
- Mr_matcher的细节2
1.参数服务器 ROS参数服务器能保存数据类型包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, a ...
- Vue.js 和 MVVM 小细节
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- vue2.0实践的一些细节
最近用vue2.0做了个活动.做完了回头发现,好像并没有太多的技术难点,而自己好像又做了比较久...只能说效率有待提升啊...简单总结了一些比较细节的点. 1.对于一些已知肯定会有数据的模块,先用一个 ...
- 深入理解JS 执行细节
javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等 ...
- javaScript中的小细节-script标签中的预解析
首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是bug经常会有的地方,利用好预解析的特性可以解决很多问题,并且提高代码的质量及数量,浏览器在解析代码前会把变量的声明和函数( ...
- 分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节
1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...
- Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)
Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...
- [更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!
注:ServerSuperIO 2.0 还没有提交到开源社区,在内部测试!!! 1. ServerSuperIO(SSIO)说明 SSIO是基于早期工业现场300波特率通讯传输应用场景发展.演化而来. ...
随机推荐
- Win32 API中使用定时器的三种方法
转自:http://blog.csdn.net/fancycow/article/details/6676064 1.SetTimer(HWND,UINT,UINT,TIMERPROC);第一个参数设 ...
- niosii dma实验中的一点感想
1,使用nios给出的驱动函数的顺序一般为1,清中断2,写控制寄存器,3,写参数寄存器4,中断注册,5,开始工作.因为开始工作控制位在控制寄存器中,所以会想到到最后一块写,省事,但是在dma试验中发现 ...
- 11.7noip模拟赛
题解:广义斐波那契数列 矩阵乘法 #include<iostream> #include<cstdio> #include<cstring> #define LL ...
- 【openCV学习笔记】【1】如何载入一张图片
直接看代码好了 #include <iostream> #include <opencv/highgui.h>//这里主要用到窗口显示 int main(int argc, c ...
- android UI之去掉状态栏
Android去掉标题栏和全屏都是件很容易的事情,最常见的有两种方法: 第一:在程序代码中实现 Java代码 this.requestWindowFeature(Window.FEATURE_NO_T ...
- Jmeter 录制浏览器https请求
Jmeter录制脚本时,跟http脚本录制主要区别是,https录制需要添加安全证书. 一Jmeter代理服务器及证书配置. 1.打开Jmeter,右键测试计划添加线程组,右键工作台→非测试元件→ht ...
- 笔记:Tid设计思维
Tid设计思维 2017年7月19日TiD大会创新设计论坛 一. 设计思维实践: 为什么他能觉察你看不到的机会 1. 原因一:[觉察]与[看] 他(们)能“觉察”你“看”不到的机会,他们 ...
- 0004-程序流程2之ui-router大意
按照传统的操作方式,一般是点击某个按钮或者某个菜单项,我们将页面通过指定URL的方式跳转, 在HTML中,使用的是传统的a标签的href属性作跳转,在使用ui-router的情况下,我们对一个按钮 添 ...
- java 删除文件夹 / 删除某文件夹下的所有文件
import java.io.File; /*************************删除文件夹delFolder / 删除文件夹中的所有文件delAllFile *start******** ...
- java的IO流初探
DEMO代码: /* * 文件IO流的简单演示 */ package com.IO; import java.io.*; public class Demo_IO_1 { /** * @param a ...