如何使用 Python 从启动文件中获取 ROS xml 参数
How to get ROS xml param from launch file using Python
我有一个扩展名为 xml 的启动文件,我想获取一个参数的值。此启动文件名为 ardrone.launch
<!-- This is a sample lanuch file, please change it based on your needs -->
<launch>
<node name="ardrone_driver" pkg="ardrone_autonomy" type="ardrone_driver" output="screen" clear_params="true">
<param name="outdoor" value="1" />
<param name="flight_without_shell" value="1" />
<param name="max_bitrate" value="4000" />
<param name="bitrate" value="4000" />
<param name="navdata_demo" value="0" />
<param name="altitude_max" value="10000" />
<param name="altitude_min" value="50" />
<param name="euler_angle_max" value="0.35" />
<param name="control_vz_max" value="2000" />
<param name="control_yaw" value="1.75" />
</node>
</launch>
例如,我想从 altitude_max、altitude_min 和其他人使用 python 获取值。我必须补充一点,这个文件在一个名为 launch 的目录中,而我调用它的文件在一个名为 scripts 的目录中,而 scripts 和 launch 都在同一个目录中。
启动文件中设置的参数存储在ROS parameter server。
从 python 节点访问这些参数非常简单,如 this wiki page 所示。在你的例子中,参数被定义为节点的 private parameters(因为它们是在 <node>
标签内定义的),所以你必须在它们前面加上前缀 ~
访问它们时:
altitude_max = rospy.get_param('~altitude_max')
对我来说,rospy.get_param("/ardrone_driver/altitude_max") 有效
我有一个扩展名为 xml 的启动文件,我想获取一个参数的值。此启动文件名为 ardrone.launch
<!-- This is a sample lanuch file, please change it based on your needs -->
<launch>
<node name="ardrone_driver" pkg="ardrone_autonomy" type="ardrone_driver" output="screen" clear_params="true">
<param name="outdoor" value="1" />
<param name="flight_without_shell" value="1" />
<param name="max_bitrate" value="4000" />
<param name="bitrate" value="4000" />
<param name="navdata_demo" value="0" />
<param name="altitude_max" value="10000" />
<param name="altitude_min" value="50" />
<param name="euler_angle_max" value="0.35" />
<param name="control_vz_max" value="2000" />
<param name="control_yaw" value="1.75" />
</node>
</launch>
例如,我想从 altitude_max、altitude_min 和其他人使用 python 获取值。我必须补充一点,这个文件在一个名为 launch 的目录中,而我调用它的文件在一个名为 scripts 的目录中,而 scripts 和 launch 都在同一个目录中。
启动文件中设置的参数存储在ROS parameter server。
从 python 节点访问这些参数非常简单,如 this wiki page 所示。在你的例子中,参数被定义为节点的 private parameters(因为它们是在 <node>
标签内定义的),所以你必须在它们前面加上前缀 ~
访问它们时:
altitude_max = rospy.get_param('~altitude_max')
对我来说,rospy.get_param("/ardrone_driver/altitude_max") 有效