.yaml参数文件的编写和使用

本文介绍在ROS中如何使用.yaml文件配置参数,包括直接设置和使用yaml文件两种方式,并展示了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在ROS底下使用.yaml文件配置参数

具体语句如下:

template<typename T>
T getParam(const string& name,const T& defaultValue)  //This name must be namespace+parameter_name
{
    T v;
    if(ros::param::get(name,v))  //get parameter by name depend on ROS.
    {
        ROS_INFO_STREAM("Found parameter: "<<name<<",\tvalue: "<<v);
        return v;
    }
    else 
        ROS_WARN_STREAM("Cannot find value for parameter: "<<name<<",\tassigning default: "<<defaultValue);
    return defaultValue;  //if the parameter haven't been set,it's value will return defaultValue.
}
//How use.
int main(int argc,char** argv)
{
    ros::init(argc,argv,"readyaml");
    ros::NodeHandle nh;
    getParam<int>("readyaml/int",0);
    getParam<float>("readyaml/float",0.5);
    getParam<string>("readyaml/string","NotFound");
    getParam<bool>("readyaml/bool",false);
    return 0;
}

那么怎么设置参数?看代码。

<launch>
  <node pkg="readyaml" type="readyaml" name="readyaml" clear_params="true" output="screen">
    <!-- First way: direct set-->
    <param name="int" value="32760"/> 
    <!-- Second way: use .yaml file-->
    <rosparam file="$(find readyaml)/rosYaml.yaml"/>
  </node>
</launch>

rosYaml.yaml文件里写的什么?

#parameter_name: value
string: HaveFound
float: 3.14159
bool: true

二、使用Ubuntu下的yaml-cpp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值