您的位置:首页 > 房产 > 建筑 > 使用QT界面运行roslaunch,roslaunch,roscore等

使用QT界面运行roslaunch,roslaunch,roscore等

2025/4/19 22:02:15 来源:https://blog.csdn.net/qq_56589253/article/details/141952914  浏览:    关键词:使用QT界面运行roslaunch,roslaunch,roscore等

QT通过界面运行rosrun,roslaunch,roscore等

  • QT 运行roslaunch
  • 加入ui界面
    • 修改cmakelist
    • 运行
  • 使用qt界面运行rosrun,roscore,roslaunch等
    • 方法一
    • 方法二
    • 方法三

QT 运行roslaunch

首先需要使用QT安装好ROS插件,并且配置好环境,这个在之前的文章已经说过了,不再进行赘述

加入ui界面

右键src选择添加新文件->Qt设计器界面类->main mainwindow
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择下一步,就会生成这些文件
然后添加一个main.cpp

#include "mainwindow.h"
#include "QMainWindow"
#include "QApplication"
int main(int argc, char **argv)
{// ros::init(argc, argv, "tutorial_pkg1_pubnode1");// ros::NodeHandle nh;QApplication a(argc,argv);MainWindow w;w.show();return a.exec();
}

打开mainwidow.ui 手动添加一个按钮并保存
在这里插入图片描述

修改cmakelist

接下来是比较重要的一部,修改cmakelist才能使我们做的工作被正确的编译运行
首先要把QT链接到工程中来

set(CMAKE_AUTOMOC ON) # Meta-Object Compiler
set(CMAKE_AUTORCC ON) # Resource Compiler
set(CMAKE_AUTOUIC ON) # User Interface Compiler
find_package(Qt5 COMPONENTSCoreGuiWidgetsREQUIRED)
catkin_package(INCLUDE_DIRS include
#  LIBRARIES testCATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
)
add_executable(main src/main.cppsrc/mainwindow.cppsrc/mainwindow.hsrc/mainwindow.ui)
target_link_libraries(main${catkin_LIBRARIES}Qt5::CoreQt5::GuiQt5::Widgets)

可以根据自己的情况进行修改

运行

左上角构建->重新构建,构建完成之后配置一下项目->运行
在这里插入图片描述执行档这里选择一下,其他的不用管
然后切回到编辑页面点击右下角三角进行运行,可以看到我们刚才做好的界面

在这里插入图片描述
现在我们关闭它,接下来使用这个界面来代替命令行的操作。

使用qt界面运行rosrun,roscore,roslaunch等

页面切到mainwindow.ui
在这里插入图片描述右键控件之后选择槽函数,转到槽函数

方法一

例:启动rviz

	#include "mainwindow.h"#include "ui_mainwindow.h"#include "QProcess"#include "QDebug"#include <iostream>QProcess *process = new QProcess(this);process->start("rosrun", QStringList() << "rviz" << "rviz");// 等待rosrun命令执行完成,监测执行状态if (!process->waitForStarted()) {qDebug() << "Failed to start rosrun command:" << process->errorString();}if (!process->waitForFinished()) {qDebug() << "Failed to finish rosrun command:" << process->errorString();} else {qDebug() << "rosrun command output:";qDebug() << process->readAllStandardOutput();}delete process;

使用的时候要将ros运行起来,可以手动在终端打开使用roscore打开rosmaster

方法二

也可以直接在界面中运行roscore,方法如如下

    QString command = "roscore";QProcess *tprocess = new QProcess(this);tprocess->start("/bin/bash", QStringList() << "-c" << command);

方法三

以上两种方法会直接运行,如果我们想在终端终端中打开,查看终端里面输出的日志信息等,可以用下面这种方法

system("gnome-terminal -x bash -c 'rosrun rviz rviz' ");//打开一个终端并执行内容

运行之后就会发现在打开rviz的同时也会打开一个终端显示日志消息

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com