0
ROS中需要在.cpp文件中設置參數。這些參數被從發射file.How獲得通過ROS如何在xml文檔中使用啓動文件以獲取要在cpp文件中使用的參數
ROS中需要在.cpp文件中設置參數。這些參數被從發射file.How獲得通過ROS如何在xml文檔中使用啓動文件以獲取要在cpp文件中使用的參數
首先我reccommend你跟着this simple tutorial和讀取rosparam和roscpp 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>
在哪裏,你應該設定自己的包名和其他變量。您可以在以下鏈接中找到所有這些參數的含義:param和node。
比你必須從你的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]