ROS выполняет несколько команд из файла

Есть ли способ запускать эти команды последовательно автоматически?

roscd stereo_camera
rosparam load marvin_cameras.yaml
rosrun stereo_camera stereo_camera __name:=bumblebeeLeft
rosrun stereo_camera stereo_camera __name:=bumblebeeCenter

roslaunch openni_launch_marvin kinect_left.launch
roslaunch openni_launch_marvin kinect_center.launch 

ros
person Batuhan Tasdoven    schedule 05.07.2013    source источник
comment
Возможно, стоит попробовать http://answers.ros.org/questions/. Я бы сказал, что основная проблема в том, что rosrun и roslaunch блокируют терминал, верно? Поэтому некоторое разветвление может решить эту проблему.   -  person Humungus    schedule 05.07.2013
comment
@Humungus - Зачем предлагать кому-то выйти за пределы Stack Exchange, когда у нас есть собственный робототехника сайт здесь?   -  person Mark Booth    schedule 05.07.2013
comment
@MarkBooth Правда, я пропустил это.   -  person Humungus    schedule 05.07.2013


Ответы (1)


Вы можете либо написать один файл запуска, который запускает нужные вам узлы/файлы запуска с задержками, как указано здесь, или вы можете просто написать bash-скрипт, который должен выглядеть следующим образом:

#!/bin/bash
roscd stereo_camera
rosparam load marvin_cameras.yaml
rosrun stereo_camera stereo_camera __name:=bumblebeeLeft &
rosrun stereo_camera stereo_camera __name:=bumblebeeCenter &
roslaunch openni_launch_marvin kinect_left.launch &
roslaunch openni_launch_marvin kinect_center.launch &
wait

Предполагая, что ваш скрипт называется script.sh, вы должны сделать его исполняемым через chmod +x script.sh, а затем запустить через ./script.sh. Знаки & отправляют команды в фоновый режим, а команда wait ожидает завершения всех программ в фоновом режиме.

person Tik0    schedule 28.07.2018
comment
Я предлагаю один файл roslaunch, так как он дает вам больше контроля над узлами, а также ведение журнала. - person Mohammad Ali; 03.08.2018