Как получить ROS xml параметр из файла запуска с помощью 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, а сценарии и launch находятся в одном каталоге.

1 ответ

Решение

Параметры, установленные в файле запуска, хранятся на сервере параметров ROS.

Доступ к этим параметрам из узла Python довольно прост, как показано на этой вики-странице. В вашем случае параметры определяются как частные параметры узла (потому что они определены внутри <node> тег), так что вы должны поставить перед ними префикс ~ при доступе к ним:

altitude_max = rospy.get_param('~altitude_max')

Для меня rospy.get_param("/ardrone_driver/altitude_max") работал

Другие вопросы по тегам