博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ROS理解参数服务器param demo
阅读量:5325 次
发布时间:2019-06-14

本文共 3521 字,大约阅读时间需要 11 分钟。

param 是一个字典,存储一些变量

param_demo.cpp

#include
int main(int argc, char **argv){ ros::init(argc, argv, "param_demo"); ros::NodeHandle nh; int parameter1, parameter2, parameter3, parameter4, parameter5; //Get Param的三种方法 //① ros::param::get()获取参数“param1”的value,写入到parameter1上 bool ifget1 = ros::param::get("param1", parameter1); //② ros::NodeHandle::getParam()获取参数,与①作用相同 bool ifget2 = nh.getParam("param2",parameter2); //③ ros::NodeHandle::param()类似于①和② //但如果get不到指定的param,它可以给param指定一个默认值(如33333) nh.param("param3", parameter3, 33333); if(ifget1) ROS_INFO("Get param1 = %d", parameter1); else ROS_WARN("Didn't retrieve param1"); if(ifget2) ROS_INFO("Get param2 = %d", parameter2); else ROS_WARN("Didn't retrieve param2"); if(nh.hasParam("param3")) ROS_INFO("Get param3 = %d", parameter3); else ROS_WARN("Didn't retrieve param3"); //Set Param的两种方法 //① ros::param::set()设置参数 parameter4 = 4; ros::param::set("param4", parameter4); //② ros::NodeHandle::setParam()设置参数 parameter5 = 5; nh.setParam("param5",parameter5); ROS_INFO("Param4 is set to be %d", parameter4); ROS_INFO("Param5 is set to be %d", parameter5); //Check Param的两种方法 //① ros::NodeHandle::hasParam() bool ifparam5 = nh.hasParam("param5"); //② ros::param::has() bool ifparam6 = ros::param::has("param6"); if(ifparam5) ROS_INFO("Param5 exists"); else ROS_INFO("Param5 doesn't exist"); if(ifparam6) ROS_INFO("Param6 exists"); else ROS_INFO("Param6 doesn't exist"); //Delete Param的两种方法 //① ros::NodeHandle::deleteParam() bool ifdeleted5 = nh.deleteParam("param5"); //② ros::param::del() bool ifdeleted6 = ros::param::del("param6"); if(ifdeleted5) ROS_INFO("Param5 deleted"); else ROS_INFO("Param5 not deleted"); if(ifdeleted6) ROS_INFO("Param6 deleted"); else ROS_INFO("Param6 not deleted"); ros::Rate rate(0.3); while(ros::ok()){ int parameter = 0; ROS_INFO("=============Loop=============="); //roscpp中尚未有ros::param::getallparams()之类的方法 if(ros::param::get("param1", parameter)) ROS_INFO("parameter param1 = %d", parameter); if(ros::param::get("param2", parameter)) ROS_INFO("parameter param2 = %d", parameter); if(ros::param::get("param3", parameter)) ROS_INFO("parameter param3 = %d", parameter); if(ros::param::get("param4", parameter)) ROS_INFO("parameter param4 = %d", parameter); if(ros::param::get("param5", parameter)) ROS_INFO("parameter param5 = %d", parameter); if(ros::param::get("param6", parameter)) ROS_INFO("parameter param6 = %d", parameter); rate.sleep(); }}

 

param_demo_cpp.launch

param3: 3 param4: 4 param5: 5

 

 

 

转载于:https://www.cnblogs.com/NikkiNikita/p/9450734.html

你可能感兴趣的文章
省市县,循环组装,整合大数组
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>
深入理解基于selenium的二次开发
查看>>
较快的maven的settings.xml文件
查看>>
Git之初体验 持续更新
查看>>
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
启动redis一闪就关
查看>>
Maven之setting.xml配置文件详解
查看>>
ASP.NET 4.5 Web Forms and Visual Studio vs2013年入门1
查看>>
SDK目录结构
查看>>