ROS参数管理器

    xiaoxiao2022-07-13  230

    ROS参数管理器

    rosparam常用指令在cpp中读取和设置rosparam获取参数设置参数 在launch文件中设置rosparamyaml文件加载直接在launch文件中添加 练习例子

    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)