有时候跑一个ros的应用,需要启动多个ros launch文件,搞得人心烦意乱。这里参考网上给出的做法,利用qt creator,制作一个简单ui,通过点击按钮,同时启动多个launch文件。过程如下:
一、Ubuntu 16.04安装qt Creator 5.7.0
http://download.qt.io/archive/qt/
首先要cd进入软件安装包的目录,然后取得安装权限,进行图形化安装,如下:
cd /home/keith/soft
chmod +x qt-opensource-linux-x64-5.7.0.run
./qt-opensource-linux-x64-5.7.0.run
二、解决无法支持中文
1.sudo apt-get install fcitx-frontend-qt5 安装语言包
2.dpkg -L fcitx-frontend-qt5 查看安装路径
3.将这个文件
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
复制到~/Qt5.7.0/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts 和 /home/nielsen/Qt5.7.0/5.7/gcc_64/plugins/platforminputcontexts下
4.重启Qt
三、 创建一个带按钮的简单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 ~/coffeeusb/devel/setup.bash; roslaunch micros_storage storage_node.launch'&");
system("gnome-terminal -x bash -c 'source ~/coffeeusb/devel/setup.bash; rosrun rviz rviz'&");
exit(0);
}
这里的~/coffeeusb是我的工作空间,大家可以替换成自己工作空间(workspace或者某_ws)的路径 ,micros_storage是我创建的package,大家换成自己的package以及对应的launch文件。
这里只是给出一个例子,告诉大家怎么通过GUI来一次性启动多个launch文件,来避免大量的手工输入或者粘贴。
3. 编译工程,运行文件
build all
run
然后点击按钮,会启动rviz和storage_node的app。