I was having problems reading an array of doubles in a ROS launch file into a vector variable in a C++ ROS1 program node. After some digging around, I found I was doing it the wrong way; instead of using the <param> tag in the ROS launch file, I should be using the <rosparam> tag.
The example ROS launch file listing shows the correct way to enter an array, e.g. [0.01, 0.1, 0.2] with the <rosparam> tag:
?xml version="1.0" encoding="UTF-8"?>
<launch>
<node pkg="learning_tutorial" type="my_node" name="my_node">
<param name="my_string_param" value="hello" />
<rosparam param="my_array_param">[0.01, 0.1, 0.2]</rosparam>
</node>
</launch>
Then in the ROS C++ code, I could do the following to read the array:
// ...etc...
using namespace ros;
using namespace std;
vector<double> myArrayParam;
NodeHandle nh;
// Read the my_array_param from the launch file into the myArrayParam variable
nh.param<vector<double>> ( "my_array_param", myArrayParam, { 1, 2, 3});
// Just print out the array parameter
ROS_INFO ( "My array: %f, %f, %f", myArrayParam[0], myArrayParam[1], myArrayParam[2]);
// ...etc...
Hope this helps somebody.