利用bash启动多个ROS节点

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




在shell中运行ROS(Robot Operating System)节点循环,通常意味着你想要启动一个或多个ROS节点,并且这些节点会持续运行,直到你手动停止它们。ROS节点可以通过rosrun命令启动,也可以通过roslaunch命令来启动多个节点。以下是启动ROS节点的基本步骤: 1. 打开终端(shell)。 2. 确保你的ROS环境已经设置好,你可以通过运行`source /opt/ros/版本/devel/setup.bash`(其中`版本`替换为你的ROS版本,比如`kinetic`)来设置环境。 3. 使用`roscore`启动ROS节点(如果尚未启动)。`roscore`是ROS的中心节点,它为ROS的其他节点提供命名和参数管理服务。 4. 打开另一个终端,使用`rosrun`或`roslaunch`命令启动你的节点。例如,使用`rosrun 包名 节点名`命令来启动单个节点,或者使用`roslaunch 包名 launch文件名.launch`来启动多个节点和配置参数。 以下是一个例子,假设我们有一个名为`turtlesim`的ROS包,里面有一个名为`turtlesim_node`的节点,可以通过以下命令启动: ```bash roscore ``` 在另一个终端中: ```bash rosrun turtlesim turtlesim_node ``` 如果你想要循环执行这个过程,你可以在一个脚本中编写这些命令,并通过`while`循环来重复执行。但是,通常情况下,你只需要启动`roscore`一次,然后再不同的终端窗口中启动各个节点。如果你的节点在某个条件下需要重复启动,那么你应该在脚本中加入相应的逻辑来处理节点的异常退出和重启。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值