ROSi sõlmi on võimalik käivitada ka osana käivitusfailist. Käivitusfailiga saab teha ka palju muud ja selle kohta õpime rohkem tulevatel nädalatel.
Käsu roslaunch kasutamise süntaks on järgmine:
roslaunch kimbu_nimi käivitusfaili_nimi
Vaatame käivitusfaili teleop_keyboard.launch kimbust robotont_demos. Selle sisu on järgmine:
<?xml version="1.0" ?>
<launch>
<node pkg="teleop_twist_keyboard" name="teleop_twist_keyboard" type="teleop_twist_keyboard.py" output="screen">
<param name='~speed' value="0.1" />
<param name='~turn' value="0.3" />
</node>
</launch>
See käivitusfail käivitab ainult ühe sõlme, mis on teleop_twist_keyboard.py kimbust teleop_twist_keyboard – seesama sõlm, mida käivitasime eelmises sammus. Lisaks määratakse selle käivitusfailiga kiiruseparameetrid, mis erinevad teleop_twist_keyboard.py vaikeväärtustest.
Pane aga tähele, et käsk roslaunch ei eelda, et kusagil on juba käima pandud ROSi tuum (roscore). Kui tuum kusagil ei käi, siis roslaunch käivitab selle ise. Sellegipoolest võib mõnikord olla kasulik tuum ise käivitada.
Katseta käivitusfaili käivitamist järgmise käsuga:
roslaunch robotont_demos teleop_keyboard.launch
Pane tähele, et ei saa kummalgi juhul veateadet, mis ütleks, et tuumaga ei saa ühendust, vaid mõlemal juhul öeldakse, et rubriigil cmd_vel ei ole tellijaid.
Mis vahe on rosrun ja roslaunch käskudel?
roslaunch käsk on mõeldud käivitusfailide ehk launch-faililaiendiga failide jaoks. Sellega saab käivitada korraga nii ühe kui ka mitu sõlme – see oleneb käivitusfaili sisust.
rosrun käsk aga on mõeldud ühe sõlme käivitamiseks. Kui see sõlm on kirjutatud Pythonis, siis antakse sellele käsule argumentideks kimbu nimi ja Pythoni faili nimi, kui aga C++-is, siis kimbu nimi ja C++ lähtekoodist kompileeritud binaari nimi.