How to print ros::params defined in bash and roslaunch in c++ script?
I have a bash script as follows:
bash
foldername=camera_calibration_$(date +"%m-%d-%Y")
im_name="/cam0"
roslaunch image_pub cam_calibration.launch foldername:=$foldername image_name:=$im_name
My roslaunch script is as follows:
<launch>
<arg name = "foldername" default="camera_calibration" />
<arg name = "image_name" default="/cam1" />
<param name="foldername" type="string" value="$(arg foldername)" />
<param name="image_name" type="string" value="$(arg image_name)" />
<param name="size_name" type="string" value="12x8" />
<param name="square" type="string" value="0.05" />
<node name="im_pub_sub_node" pkg="image_pub" type="im_pub_sub" output="screen"/>
<node name="cameracalibrator_node" pkg="camera_calibration" type="cameracalibrator.py" output="screen"/>
</launch>
My C++ script (im_pub_sub.cpp) as follows:
int main(int argc, char** argv) {
std::string foldername;
std::string imagename;
std::string si_name;
ros::param::get("/size_name", si_name);
ros::param::get("/foldername", foldername);
ros::param::get("/image_name", imagename);
std::cout<<imagename<<std::endl;
std::cout<<foldername<<std::endl;
std::cout<<si_name<<std::endl;
std::cout<<"hi"<<std::endl;
}
When I launch it I only get "hi" print on my console but not foldername, image_name defined from bash and si_name param defined in launch file. It prints empty like nothing for other params defined.
Can anyone please let me know what is wrong? And how to get the print?