ROS-节点参数param

 

摘自:https://blog.csdn.net/qq_35358125/article/details/107023972

ROS-节点参数param

嵌入式小白woods 2020-06-29 17:03:32 275 收藏 5

分类专栏: ROS 文章标签: c++ 自动驾驶

版权

简介

ROS中提供了的参数服务器机制,用户可以将参数以yaml文件格式保存在本地,程序运行(运行launch文件)时动态载入,修改参数并不需要重新编译。而且,ROS中更为人性化的一点就是支持程序运行时动态修改参数,实时的观测参数对运行结果的影响,极大地方便了参数调试。

载入参数

Ros通过launch文件载入参数,载入完成后可以通过rosparam list在命令行中查看。
1.通过param标签载入参数:
该方法适用于少量参数的载入,格式为:


  • 1

2.通过rosparam标签导入.yam文件载入参数:

该方法适用于大量载入参数,格式为:


  • 1

重新运行launch文件,参数就会更新。私有参数放在节点中。

ROS中有如下3种获取参数的方式,2中设置参数的方式

ROS-节点参数param_第1张图片ROS-节点参数param_第2张图片

include "ros/ros.h" 
#include  

using namespace std; 

int main(int argc,char** argv) 
{ 
    //initial and name node 
    ros::init(argc,argv,"node_param"); 
    if(argc!=2) 
    { 
        cout<<"Error command paramter! Please run command eg:\n"\ 
            <<"rosrun book_param book_param 1\n"\ 
            <<"help information:\n"\ 
            <<" 1 ------ set param mode(ros::param::set())\n"\ 
            <<" 2 ------ set param mode(ros::NodeHandle::setParam())\n"\ 
            <<" 3 ------ get param mode(ros::param::get())\n"\ 
            <<" 4 ------ get param mode(ros::NodeHandle::getParam())\n"\ 
            <<" 5 ------ get param mode(ros::NodeHandle::param())\n"\ 
            <("StrParam",StrParam,"stringdemo_default"); 
            ROS_INFO("\nThe IntParam is:%d\nThe StrParam is:%s",IntParam,StrParam.c_str()); 
            break; 
        default: 
            ROS_INFO("flag value is not in range: [1,5]"); 
    } 
    return 0;
    }

ROS-节点参数param_第3张图片

你可能感兴趣的:(ROS,无人机-a-个人笔记)