针对C++代码,举例说明如下:
程序中这样写:
double parking_x;
double parking_y;
ros::param::get("~parking_x",parking_x);
ros::param::get("~parking_y",parking_y);
ROS_ERROR("parking_x:%.3f",parking_x);
ROS_ERROR("parking_y:%.3f",parking_y);
launch文件,这样写的:
<launch>
<node pkg="beginner_tutorials" name="talker" type="talker">
<param name="parking_x" type="double" value="100.0" />
<param name="parking_y" type="double" value="600.0" />
</node>
</launch>
想要在launch文件中更改parking_x与parking_y的值,在程序里只需定义变量parking_x, parking_y,然后再使用语句 ros::param::get(),即可。程序中的“~”的意思表示此参数是私有参数,也就是,在lauch文件中,你把<param.../>
写到<node.../>
里面那么你的参数就是私有参数。