利用QT Creator 同时启动多个ROS launch文件

本文介绍如何使用qtCreator创建GUI界面,实现一键启动多个ROS launch文件,简化ROS应用启动流程。

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

有时候跑一个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。

### 设置和使用 ROS 2 在 Qt Creator 中进行机器人应用开发 #### 创建新的 CMake 项目 为了在Qt Creator中集成ROS 2,首先需要创建一个新的CMake项目。这一步骤允许开发者利用Qt Creator的强大编辑功能以及其对CMake项目的良好支持。 ```cpp // main.cpp 示例代码片段 #include "ros/ros.h" int main(int argc, char **argv){ ros::init(argc, argv, "qt_ros_node"); ros::NodeHandle n; } ``` #### 配置 CMakeLists.txt 文件 接下来修改`CMakeLists.txt`文件以适应ROS 2的要求。确保指定了正确的路径到ROS 2安装目录,并引入必要的ROS 2包[^3]。 ```cmake # CMakeLists.txt 示例配置 find_package(ament_cmake REQUIRED) if(NOT WIN32) find_package(catkin_simple REQUIRED) endif() project(my_qt_ros_project) find_package(rclcpp REQUIRED) ... add_executable(${PROJECT_NAME} src/main.cpp) ament_target_dependencies(${PROJECT_NAME} rclcpp ...) install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME}) ``` #### 添加 ROS 2 支持至 Qt Creator 为了让Qt Creator识别并正确处理ROS 2特定的内容,需调整IDE内部的一些设置。具体来说是在Kit的选择上确认已选择了带有适当编译器和调试器的Kit,这些都应该是预先针对ROS 2环境进行了配置过的版本[^4]。 #### 实现 ROS 节点逻辑 一旦上述准备工作完成之后,则可以在Qt环境中像平常一样编写ROS节点逻辑了。值得注意的是,在多线程环境下操作时应当遵循良好的实践指南,比如将所有的ROS通信部分放置于独立的工作线程之中去执行,从而不影响UI响应速度。 #### 测试与部署 最后通过Qt Creator内置的功能来测试所写的程序是否能够正常运作。对于简单的例子可以直接点击“运行”按钮;而对于更复杂的场景则可能需要用到额外定义好的Launch文件或者其他形式的任务描述符来辅助启动过程。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值