2015-06-26 1 views
1

У меня есть файл запуска, расширение которого является xml, и я хотел бы получить значение параметра. Этот файл запуска называется ardrone.launchКак получить параметр ROS xml из файла запуска с помощью Python

<!-- 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, а остальные с помощью питона. Я должен добавить, что этот файл находится внутри каталога с именем «запуск», а файл, в котором я его вызываю, находится в директории с именем scripts, а сценарии и запуск - в том же каталоге.

+1

После прочтения вашего вопроса еще раз, Я не уверен на 100%, что вы делаете. Вы вызываете файл запуска для запуска скрипта (это то, что я предполагаю в своем ответе), или вы просто хотите прочитать параметры из файла запуска, не запуская его вообще? – luator

+0

Я вызываю файл запуска – lmiguelvargasf

ответ

2

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

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

altitude_max = rospy.get_param('~altitude_max') 
+0

Для меня 'rospy.get_param ("/ardrone_driver/altitude_max ")' работал, но ваша помощь была действительно полезна, поэтому спасибо. – lmiguelvargasf