ROS启动多launch文件

在ROS工程中经常需要启动好几个launch文件,比较不方便,有下面两种方法可以更高效些:

  1. 重写一个大型的launch文件,将所有的节点的启动配置信息都包含进去。
  2. 通过bash写一个xxx.sh文件,将命令行一起写入一个脚本。
launch文件中则如下进行设置:

pkg对应文件的包名。

type是CMakeList.txt中对应该文件add_executable(pcan_test src/pcan_test)中可执行文件的名称,在python中则是文件名,因为Python的可执行文件就是文件本身(解释性语言,同Matlab),所以若用C++编程不要误写为文件名全称。

name表示节点启动后的名称,该名称会覆盖ros::init中初始化的名称。

output后参数表示从屏幕输出打印信息,否则打印信息会存储到某个临时文件里。








注:只需要在src下建立launch文件夹,然后在其中创建launch文件即可,不需要做其他工作。

参数里nameros::param::get()中第一个字符串去掉“~”后的名称,launch会在运行时进行查找匹配,type是变量类型,value是具体值。以下launch文件(包含私有变量和公有变量)。






































在ubuntu下进行节点启动顺序控制的简单策略就是通过shell实现

新建文件后命名为xxx.sh

#!/bin/bash
roslaunch bhand_controller bhand_controller.launch &
sleep 5
echo "bhand controller starting success!"

roslaunch beginner_tutorials bhand_force_control.launch &
sleep 0.1
wait
exit 0

代码解释:第一行表示用bash执行,sleep表示演示,echo用来输出一定内容,注意不要忘记句子后的”&“符号。注:若ROS的关键词不能在终端识别,需先source下ROS环境。

节点启动顺序控制策略就是如果某个节点必须先执行,可以单独为其写一个launch文件,然后通过shell控制先行启动。

参考链接:https://wangcong.info/article/ROSLaunchTips.html

转载于:https://www.cnblogs.com/klcf0220/p/10395844.html

你可能感兴趣的:(ROS启动多launch文件)