利用bash启动多个ROS节点

本文介绍在ROS环境中如何高效地启动多个launch文件的方法。主要包括两种途径:一是整合为一个大型launch文件;二是通过bash脚本按顺序启动,并解决命令执行阻塞的问题。示例展示了如何使用bash脚本实现turtlebot的3D视觉系统的启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于在做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  




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值