利用bash启动多个ROS节点

来源:互联网 发布:六一送什么礼物 知乎 编辑:程序博客网 时间:2024/05/16 17:13

由于在做ROS的实际工程中经常要启动好多的launch文件,比较麻烦,特想把他们写在一起,

用一个命令就能执行。现有两种方法:

 1.重写一个大型的launch文件,将所有的节点的启动配置信息都包含进去。

 2. 通过bash写.sh文件的形式,将命令行一起写入一个脚本。

直接按照一步步执行顺序写,会出现问题:因为有的一个命令在终端一直在执行,无法接下的命令。

这就需要将前一个命令放到后台&,同时由于节点发布的先后顺序,需要进行延时操作sleep n.

注:要让ROS的关键词能够在终端识别,还得先source下ROS环境。


下面是turtlebot_3Dvision的例子说明:

#!/bin/bash
#source /opt/ros/hydro/setup.bash  

source /opt/ros/hydro/setup.bash
source /home/agv/hydro_ws/devel/setup.bash

ROS_PACKAGE_PATH=~/hydro_ws/src:$ROS_PACKAGE_PATH
ROS_WORKSPACE=~/hydro_ws/src

echo roslaunch turtlebot_bringup
roslaunch turtlebot_bringup minimal.launch &
 
 
 sleep 15
 echo turtlebot_bringup 3dsensor.launch  
 roslaunch turtlebot_bringup 3dsensor.launch &
 
 
 sleep 15
 echo turtlebot_rviz_launchers  
 roslaunch turtlebot_rviz_launchers view_robot.launch &

-----------------------------------------------------------------------------------------


#!/bin/bash
echo "$(tput setaf 2)Start turtlebot_world...$(tput sgr 0)"
cd $(rospack find ar_localization)/data_sources/     &&    
rosrun ar_localization SLAM_main ./data/cuhk/config_small.in  ./data/cuhk/DataConfig.xml  




0 0
原创粉丝点击