Mr_matcher的细节2

1.参数服务器

ROS参数服务器能保存数据类型包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, and base64-encoded data。Dictionaries则必需有字符串key值。

roscpp参数API能支持全部类型,多数情况容易使用的类型有:strings, integers, floats and booleans,使用其他类型参考XmlRpc::XmlRpcValue class

roscpp有两个版本的API接口:bare版和handle版。

bare版:在 ros::param 命令空间下。

handle版:通过ros::NodeHandle接口使用。

2.获取参数

从参数服务器获取值,每个版本都支持strings, integers, doubles, booleans 和XmlRpc::XmlRpcValue

返回 false代表参数不存在或不是正确的类型。

1)NodeHandle版本

ros::NodeHandle::getParam()

NodeHandle版本:参数相对于NodeHandle的命名空间进行解析。

ros::NodeHandle nh;
std::string global_name, relative_name, default_param;
if (nh.getParam("/global_name", global_name))
{
  ...
}

if (nh.getParam("relative_name", relative_name))
{
...
}

// Default value version
nh.param<std::string>("default_param", default_param, "default_value");

3.设置参数

NodeHandle版本ros::NodeHandle::setParam()
NodeHandle版本:参数相对于NodeHandle的命名空间进行解析
ros::NodeHandle nh;
nh.setParam("/global_param", 5);
nh.setParam("relative_param", "my_string");
nh.setParam("bool_param", false);

4.检查参数是否存在

handle版:ros::NodeHandle::hasParam()
ros::NodeHandle nh;
if (nh.hasParam("my_param"))
{
  ...
}

5.删除参数

handle版:ros::NodeHandle::deleteParam()
ros::NodeHandle nh;
nh.deleteParam("my_param");

6.访问私有参数

handle版:创建的ros::NodeHandle实例,并提供私有的命名空间作为其命名空间
ros::NodeHandle nh("~");
std::string param;
nh.getParam("private_name", param);

参考http://www.ncnynl.com/archives/201702/1295.html

时间: 2024-10-20 20:55:52

Mr_matcher的细节2的相关文章

Mr_matcher的细节3

主要是订阅了playbag发布的scan话题和odom话题 其类型分别为 //cache the static tf from base to laser getBaseToLaserTf(scan_msg->header.frame_id); bool LaserScanMatcher::getBaseToLaserTf (const std::string& frame_id) { ros::Time t = ros::Time::now(); tf::StampedTransform

关于SVM数学细节逻辑的个人理解(三) :SMO算法理解

第三部分:SMO算法的个人理解 接下来的这部分我觉得是最难理解的?而且计算也是最难得,就是SMO算法. SMO算法就是帮助我们求解: s.t.   这个优化问题的. 虽然这个优化问题只剩下了α这一个变量,但是别忘了α是一个向量,有m个αi等着我们去优化,所以还是很麻烦,所以大神提出了SMO算法来解决这个优化问题. 关于SMO最好的资料还是论文<Sequential Minimal Optimization A Fast Algorithm for Training Support Vector

使用TCP时序图解释BBR拥塞控制算法的几个细节

周六,由于要赶一个月底的Deadline,因此选择了在家VPN加班,大半夜就爬起来跑用例,抓数据...自然也就没有时间写文章和外出耍了...不过利用周日的午夜时间(不要问我为什么可以连续24小时不睡觉,因为我觉得吃饭睡觉是负担),我决定把工作上的事情先放下,还是要把每周至少一文补上,这已经成了习惯.由于上周实在太忙乱,所以自然根本没有更多的时间去思考一些"与工作无关且深入"的东西,我指的与工作无关并非意味着与IT,与互联网无关,只是意味着不是目前我在做的.比如在两年前,VPN,PKI这

细节彰显境界,境界成就未来

电视里直播着一场国际比赛.对手分别是中国乒乓球骁将刘国正和德国名将波尔.两强相遇,胜负难分,经过六局的艰苦打拼,仍然不分高低,这让观众的心都提到了嗓子眼儿.到了决定胜负的关键一局,刘国正以12∶13落后,如果再输一分就将被淘汰.观众心里都为他默默捏着一把汗. 在这关键时刻,刘国正的一个回球出界.波尔的教练见状后立即起身狂欢,并准备冲进场内拥抱自己的弟子. 戏剧性的一幕出现了,在这一瞬间,波尔立即举手示意,指向台边--这是一个擦边球,应该是刘国正得分! 教练很惊讶,观众也很惊讶,怎么可能呢?就这样

apache配置虚拟主机时需要注意到几个小细节

如今apache在web服务器这块市场占有率还是很高的,而配置虚拟主机现在也是用的非常多,不过在配置虚拟主机的时候一定要注意几个小细节. 首先要注意你的apache版本,注意是2.2还是2.4的. 配置2.2的时候,配置虚拟主机该这样写: NameVirtualHost ip:80   //注意此处与2.4不同 <VirtualHost ip:80> ServerName www1.myweb.com DocumentRoot "/myweb/vhost/www1" <

Mongodb入门系列(4)——Mongodb体系结构与客户端基本操作及注意细节

说到Mongodb的体系结构,免不了与关系型数据库做个对比.这里以MySQL为例,我们进行一些比较: 从逻辑结构上对比: MySQL层次概念 MongoDB层次概念 数据库(database) 数据库(database) 表(table) 集合(collection) 记录(row) 文档(document) 在MongoDB中没有行.列.关系的概念,集合中的文档相当于一条记录,这体现了模式自由的特点. 从数据存储结构上对比: MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如

mongoDB的读书笔记(05)_【Sharding】(02)_分片的一些概念和小细节

分片的一些概念与细节 Primary Shard 在Replica set中有Primary和Secondary的概念,那么在Sharding中其实也有一个Primary的概念. 任何一个mongoDB中都有一个未分区的整体DB的collection在某一个Shard中.如下图. Collection1在ShardA中有一部分Chunks在ShardB中也有一部分Shards,而在ShardA 中却有一个Collection2保存整体的ShardA+ShardB的Collection1的和. C

程序猿之---C语言细节24(段错误、类型提升、sizeof &#39;A&#39;)

主要内容:段错误.类型提升.sizeof  'A' #include <stdio.h> int main() { union test{ char a[10]; int b; }u; int *p = (int *)&(u.a[1]); // 没有引起总线错误 *p = 17; printf("%d\n",*p); #if 0 int *q = 0; // 引起段错误,在linux中运行可看到段错误,在windows下运行时直接出错 *q = 1; #endif

cocos2d-x 3.0 rapidJson 操作应该注意的细节

Size visibleSize = Director::getInstance()->getVisibleSize(); Point origin = Director::getInstance()->getVisibleOrigin(); std::string path = FileUtils::getInstance()->fullPathForFilename("story.json"); std::string document = FileUtils::