有时候跑一个ros的应用,需要启动多个ros launch文件,搞得人心烦意乱。这里参考网上给出的做法,利用qt creator,制作一个简单ui,通过点击按钮,同时启动多个launch文件。过程如下:
1. Ubuntu 16.04安装qt Creator 5.9
sudo add-apt-repository ppa:levi-armstrong/qt-libraries-xenial
sudo add-apt-repository ppa:levi-armstrong/ppa
sudo apt update && sudo apt install qt57creator
sudo apt install qt57creator-plugin-ros
2. 创建一个带按钮的简单UI
创建一个新的工程(Qt Widgets Application)
然后一路next,
初始情况下,工程结构如下:
编辑UI,选中.ui文件
为按钮添加动作(slot),点击按钮,右键--goto slot
此时,会在.h文件中添加
private slots:
void on_pushButton_clicked();
然后,我们在.cpp中实现该方法:
void MainWindow::on_pushButton_clicked()
{
system("gnome-terminal -x bash -c 'source ~/cj/devel/setup.bash; roslaunch micros_storage storage_node.launch'&");
system("gnome-terminal -x bash -c 'source ~/cj/devel/setup.bash; rosrun rviz rviz'&");
exit(0);
}
这里的~/cj是我的工作空间,大家可以替换成自己工作空间(workspace或者某_ws)的路径 ,micros_storage是我创建的package,大家换成自己的package以及对应的launch文件。
这里只是给出一个例子,告诉大家怎么通过GUI来一次性启动多个launch文件,来避免大量的手工输入或者粘贴。
3. 编译工程,运行文件
build all
run
然后点击按钮,会启动rviz和storage_node的app。