文章目录

  • 获取参数
  • 设置参数
  • 删除参数
  • 检查参数
  • 搜索参数

获取参数

通过NodeHandle,有两种方式获取参数:
下面的例子,n是NodeHandle实例对象

  1. getParam()函数说明:
    getParam函数可以进行重载,不过基本格式如下:
bool getParam (const std::string& key, parameter_type& output_value) const

key是参数名,命名方法参考
output_value用来保持参数的值
parameter_type类型包含bool, int, double, string, 或 特定的 XmlRpcValue 类型
XmlRpcValue类型包含所有类型,甚至是lists/maps

  • eg1:
std::string s;
n.getParam("my_param", s);

getParam函数有一个布尔类型的返回值,可以通过它来表示是否获取参数成功

  • eg2:
std::string s;
if (n.getParam("my_param", s))
{ROS_INFO("Got param: %s", s.c_str());
}
else
{ROS_ERROR("Failed to get param 'my_param'");
}
  1. param()函数说明:
    param类似getParam,不同是:在没有获取到参数值的时候,可以设置默认值。
int i;
n.param("my_num", i, 42);

有时编译器需要字符串类型的提示。

std::string s;
n.param<std::string>("my_param", s, "default_value");

设置参数

  • 通过setParam() 函数设置参数:
n.setParam("my_param", "hello there");

类似getParam,能取不同的值,如: bool, int, double, string, 和特定XmlRpcValue type

删除参数

  • 通过 deleteParam() 函数删除参数:
n.deleteParam("my_param");

检查参数

  • 这不是必需的,但有hasParam()可以实现检查
if (!n.hasParam("my_param"))
{ROS_INFO("No param named 'my_param'");
}

搜索参数

  • 参数服务器允许你在你开始的工作空间或父工作空间进行搜索参数
  • 例如:如果参数服务器存在/a/b的参数,你的NodeHandle在/a/c工作空间,searchParam()搜索b会得到/a/b. 如果/a/c/b参数增加,搜索就会得到/a/c/b参数。
  • 测试代码:
  std::string param_name;if (n.searchParam("b", param_name)){// Found parameter, can now query it using param_nameint i = 0;n.getParam(param_name, i);}else{ROS_INFO("No param 'b' found in an upward search");}

ROS——一文读懂:param参数相关推荐

  1. ROS——一文读懂:rosbag

    rosbag的命令 rosbag简介 rosbag 既可以指命令行中数据包相关命令,也可以指 c++/python 的 rosbag 库.这里的 rosbag 是指前者. rosbag 主要用于记录. ...

  2. 一文读懂pg AGG聚集算子计划与执行(更新中)

    一文读懂openGauss/pg AGG聚集算子计划与执行 Agg聚集算子与聚集操作(函数)基本概念 执行策略 聚集操作基本执行步骤与元数据 计划生成与数据结构 确定操作策略 关键数据结构 思考 基本 ...

  3. JVM(一)一文读懂Java编译全过程

    一文读懂Java编译全过程 java代码首先要通过前端编译器编译成.class字节码文件,然后再按一定的规则加载到JVM(java 虚拟机)内运行,有三种运行方式,解释模式(javac).编译模式(C ...

  4. 一文读懂Faster RCNN

    来源:信息网络工程研究中心本文约7500字,建议阅读10+分钟 本文从四个切入点为你介绍Faster R-CNN网络. 经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在20 ...

  5. ​一文读懂EfficientDet

    一文读懂EfficientDet. 今年年初Google Brain团队在 CVPR 2020 上发布了 EfficientDet目标检测模型, EfficientDet是一系列可扩展的高效的目标检测 ...

  6. 一文读懂序列建模(deeplearning.ai)之序列模型与注意力机制

    https://www.toutiao.com/a6663809864260649485/ 作者:Pulkit Sharma,2019年1月21日 翻译:陈之炎 校对:丁楠雅 本文约11000字,建议 ...

  7. 语言相关系数显著性_相关性分析在SPSS中的具体操作,一文读懂相关系数的含义及使用——【杏花开生物医药统计】...

    相关性分析介绍 生物和医学统计中,相关分析属于流程前端的探索性分析,研究变量间关系及性质,其结果在为下一步采取何种方法做出指引,为数据挖掘之前的基础工作. 相关系数的选择 相关分析之前,需要先确认变量 ...

  8. 一文读懂大数据平台——写给大数据开发初学者的话!

     一文读懂大数据平台--写给大数据开发初学者的话! 文|miao君 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hado ...

  9. 技术向:一文读懂卷积神经网络

     技术向:一文读懂卷积神经网络 技术网络 36大数据(张雨石) · 2015-03-06 05:47 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Ne ...

最新文章

  1. Android 自定义光标样式
  2. 抢票软件原理_手机部应届生软件大赛 | SHOW MI YOUR CODE
  3. 比 Redis 快 5 倍的中间件,KeyDB
  4. 惠普图形计算机游戏,惠普发布Victus by HP 16 - 一款适合PC游戏新人的游戏笔记本...
  5. django-后台传图0912
  6. 小程序复制内容至剪贴板
  7. python3 文本处理_解决python3 写入中文文本查看为乱
  8. 关于STL allocator
  9. broker druid 查询_即时查询工具| Druid
  10. grpcio安装不了
  11. CAD软件查看.dwg、.dxf、.dwf、.jpeg、.jpg、.png、.gif等文件
  12. MacBook安装jdk1.8方便快捷稳定的方法
  13. 《NX-OS与Cisco Nexus交换技术:下一代数据中心架构(第2版)》一2.8 Cisco FabricPath...
  14. 如何写出一篇好的软文?软文撰写的一些注意事项!
  15. 【css的基础操作(css语言规范,字体,表格,类名)】
  16. 微信小程序——生命周期
  17. JS数组常用方法练习题
  18. shell脚本编程100例
  19. python爬取CSDN论坛
  20. 联想4t服务器硬盘,如何对大容量硬盘(例如4T硬盘)进行查看并分区

热门文章

  1. linux擦除nandflash分区,【Linux公开课】NAND Flash存储器分区、烧写流程图、格式化NAND Flash...
  2. POJO、PO、BO、DTO、VO的含义以及应用场景
  3. 2017互联网十大未解之谜,你能回答几个?
  4. 毕达哥拉斯的面包规矩
  5. VUE+element-ui微信充值支付
  6. mapreduce 模板代码
  7. 【山外智能车】【IAR】【编译问题】HardFault_Handler
  8. 洛谷 P1135奇怪的电梯
  9. 这所C9高校的8个CS院系,有你心仪的吗?
  10. Process ‘command ‘C:/Program Files/Java/jdk1.8.0_192/bin/java.exe‘‘ finished with non-zero exit valu