2015-04-07 58 views

回答

2

首先我reccommend你跟着this simple tutorial和讀取rosparamroscpp Parameter Server文檔設置從啓動文件那些參數.cpp文件。一切都應該變得非常簡單。


一個簡單的啓動文件示例如下:

<launch> 
    <rosparam command="load" file="$(find pkg_name)/path/file_name.yaml" /> 
    <node pkg="pkg_name" type="node_type" name="node_name" /> 
</launch> 

在哪裏,你應該設定自己的包名和其他變量。您可以在以下鏈接中找到所有這些參數的含義:paramnode


比你必須從你的C++源代碼檢索這些參數(看看here):

/* this handle let you access all the parameters of the node (and other stuffs) */ 
ros::NodeHandle node_handle = new ros::NodeHandle("~"); 

/* for example if I need to retrieve a list of double written in the YAML file, 
    I could call the getParam() method to store it into my_double_list std::vector */ 
std::vector<double> my_double_list; 
node_handle.getParam("name_of_the_list_in_YAML_file", my_double_list); 

/* print data retrieved */ 
std::copy(my_double_list.begin(), my_double_list.end(), std::ostream_iterator<double>(std::cout, " ")); 

YAML文件應該是這樣的(在4個要素例如):

name_of_the_list_in_YAML_file: [123.11, 0.1, 2013.441, 1.23015e+3] 

欲瞭解更多詳情:YAML。您也可以找到ros::NodeHandle文檔here

相關問題