5

我有一个扩展名为 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>

例如,我想使用 python 从高度最大值、高度最小值和其他值中获取值。我必须补充一点,这个文件位于一个名为 launch 的目录中,而我调用它的文件位于一个名为 scripts 的目录中,并且脚本和启动都在同一个目录中。

4

2 回答 2

7

在启动文件中设置的参数存储在ROS 参数服务器中。

从 python 节点访问这些参数非常容易,如本 wiki 页面所示。在您的情况下,参数被定义为节点的私有参数(因为它们是在<node>标签内定义的),因此您必须~在访问它们时为它们添加前缀:

altitude_max = rospy.get_param('~altitude_max')
于 2015-06-26T08:12:30.277 回答
1

对我来说, rospy.get_param("/ardrone_driver/altitude_max") 有效

于 2019-01-02T20:51:17.480 回答