rosparam常用指令
这里列出部分指令,详细可参考link
rosparam list
rosparam get parameter_name
rosparam set parameter_name value
rosparam delete parameter_name
rosparam load dump.yaml
在cpp中读取和设置rosparam
详细信息见link
获取参数
- 方式一
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");
- 方式二
std::string global_name, relative_name, default_param;
if (ros::param::get("/global_name", global_name))
{
...
}
if (ros::param::get("relative_name", relative_name))
{
...
}
// Default value version
ros::param::param<std::string>("default_param", default_param, "default_value");
设置参数
- 方式一
ros::NodeHandle nh;
nh.setParam("/global_param", 5);
nh.setParam("relative_param", "my_string");
nh.setParam("bool_param", false);
- 方式二
ros::param::set("/global_param", 5);
ros::param::set("relative_param", "my_string");
ros::param::set("bool_param", false);
在launch文件中设置rosparam
具体参见link
yaml文件加载
<rosparam command="load" file="$(find rosparam)/example.yaml" />
<rosparam command="delete" param="my/param" />
直接在launch文件中添加
<rosparam>
a: 1
b: 2
</rosparam>
练习例子
cd workspace/src
catkin_create_pkg param_src roscpp
添加param_demo.cpp作为可执行文件
#include "ros/ros.h"
#include <iostream>
int main(int argc, char *argv[])
{
ros::init(argc,argv,"hello_param");
ros::NodeHandle nh;
std::string topic_name;
float width ,height;
bool is_view;
nh.getParam("camera/topic",topic_name);
nh.getParam("camera/width",width);
nh.getParam("camera/height",height);
nh.getParam("view",is_view);
std::cout<<"--"<<topic_name<<" "<<width<<" "<<height<<" "<<is_view<<std::endl;
return 0;
}
添加config/parameters.yaml文件
camera:
topic: image_raw
width: 640
height: 480
view: false
launch文件(param_demo.launch):
<launch>
<!--<rosparam file="$(find param_prac)/config/parameters.yaml" command="load" />-->
<rosparam>
camera:
topic: image_raw
width: 640
height: 480
view: false
</rosparam>
<node pkg="param_prac" type="param_demo" name="param_demo" output="screen" />
</launch>
执行:
roslaunch param_prac param_demo.launch
结果:
--image_raw 640 480 0