需要在ROS中的.cpp文件中设置参数。这些参数将从启动文件中获取。如何使用ros在.cpp文件中从启动文件设置这些参数
答案 0 :(得分:2)
首先,我建议您关注this simple tutorial并阅读rosparam和roscpp Parameter Server文档。一切都应该变得非常容易。
一个简单的启动文件示例如下:
<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]