ROS参数管理器

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值