ROS

改launch file中的參數值

今天在拆整個pr2_manipulation相關的launch檔時,發現有很多地方都用到參數的true或false來判斷要不要執行某個launch檔或是node,感覺之後會常常用到,而且不弄懂要怎麼改值無法真正懂這些launch檔在寫什麼.

我先寫了一個簡單launch file(ricky_test_sim.launch),這個launch file會根據sim的值來決定要不要啟動gazebo並加入一些物體

<launch>
    <arg name=”sim” default=”false”/>
    <include if=”$(arg sim)” file=”$(find manipulation_worlds)/launch/pr2_table_object.launch”/>
</launch>

若直接啟動可想而知只會啟動roscore,因為launch檔中預設的sim是false.

———————————————–

要改變sim的值,方法就是寫另一個launch檔來呼叫, 寫法是
<launch>
    <arg name=”sim” default=”true”/>
    <include file=”/home/rosfuerte/project/ros/code_training/try_launch/ricky_test_sim.launch”>
        <arg name=”sim” value=”$(arg sim)”/>
    </include>
</launch>

直接在這個launch file裡面設定sim是true,然後把這個sim傳到它呼叫的launch file,也就是我寫的第一個launch file,這樣就可以修改了

這樣寫的好處是我如果開發了一個package,在寫launch檔時,可以先把一些別人可能會用到的功能寫在launch file裡,但用來判斷會不會用到這些功能的argument我都先預設為false,如果之後寫的application的launch檔會用到這些功能,在application的launch檔設為true即可.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s