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

param_demo.cpp

#include<ros/ros.h>

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, ); 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 = ;
ros::param::set("param4", parameter4); //② ros::NodeHandle::setParam()设置参数
parameter5 = ;
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 = ; 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

<launch>
<!--param参数配置-->
<param name="param1" value="1" />
<param name="param2" value="2" />
<!--param name="table_description" command="$(find xacro)/xacro.py $(find gazebo_worlds)/objects/table.urdf.xacro" /--> <!--rosparam参数配置-->
<rosparam>
param3: 3
param4: 4
param5: 5
</rosparam>
<!--以上写法将参数转成YAML文件加载,注意param前面必须为空格,不能用Tab,否则YAML解析错误-->
<!--rosparam file="$(find robot_sim_demo)/config/xbot-u_control.yaml" command="load" /-->
<node pkg="param_demo" type="param_demo" name="param_demo" output="screen" /> </launch>
 

最新文章

  1. mysql乐观锁总结和实践
  2. wap
  3. 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句
  4. phalcon 前端代码结构
  5. tab选项卡(选择上面的菜单,下面出现对应的不同的内容)
  6. hdu------(4302)Holedox Eating(树状数组+二分)
  7. hdu 1087
  8. Devexpress 使用经验 —— ASPxGridView前后台交互写法推荐
  9. 常用DOM整理
  10. maltab-图像拼接(左右两幅图)
  11. 关于TCP窗口大小
  12. restTemplate 发送http post请求带有文件流、参数
  13. [转] 隐马尔可夫(HMM)、前/后向算法、Viterbi算法 再次总结
  14. 微信小程序--相关资料
  15. Ubuntu16下配置支持Windows访问的samba共享
  16. openstack--2--控制节点安装mysql和rabbitmq
  17. ASP 基础一
  18. 获取Android设备的唯一识别码|设备号|序号|UUID
  19. Eclipse安装fat jar的两种方式
  20. oracel 服务详细介绍

热门文章

  1. C++ 去掉字符串的首尾空格和全部空格
  2. SQL 注入攻击案例
  3. C# SpinLock用法。
  4. Element ui tree 搜索
  5. 基于【 SpringBoot】一 || QQ授权流程
  6. ArcGIS Runtime SDK for Android 定位权限(GPS定位\网络定位)
  7. Thymeleaf 模板
  8. jenkins中的流水线( pipeline)的理解(未完)
  9. SecureCRT和SecureFX的安装和破解
  10. Sql Server 2017 安装问题记录