前言

最近在给ROS机器人做上位机界面,因为有点C++的基础,也就选择了绿油油的QT来做。作为刚入门的小白,单单是配环境就折磨了我好几天(半路出家,好多坑得爬),做点笔记,但愿以后别重新踩坑,也希望能对大家有所帮助。本文方法并没有使用 ros_qtc_plugin。

一、QT和ROS的安装

1.下载QT

QT的我装的是5.12.6版本 ,作为LTS的最新版本感觉靠谱一点,下载链接如下。

下载相应run格式的安装文件

2.安装QTchmod +x qt-opensource-linux-x64-5.12.6.run #给run文件执行权限

./qt-opensource-linux-x64-5.12.6.run #运行安装

然后一路next,skip。

到这步记得勾选 Qt 5.12.6 Desktop gcc 64-bit 组件

要设置相应的环境变量sudo gedit ~/.bashrc #在末尾添加下面几行

export Qt5_DIR=~/opt/5.12.6/gcc_64 #设置Qt5_DIR 变量

export PATH=~/opt/5.12.6/gcc_64/bin:$PATH #添加Linux 命令行搜索路径

export  LD_LIBRARY_PATH=~/opt/5.12.6/gcc_64/lib:$LD_LIBRARY_PATH #添加动态库的搜索路径

二、ROS的安装

我的使用的是安装脚本安装,比较方便。

期间可能会有一些ros的软件包没有安装成功sudo apt-get update #更新一下源

在运行一次脚本即可,接下来设置环境变量echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc

三、用QT编写ROS程序

1.配置qtcreator

为了加载环境变量,需要终端打开QT。sh /opt/Tools/QtCreator/bin/qtcreator.sh #这个路径跟你QT安装的位置有关,为了方便用alias给这行命令取个别名

sudo gedit ~/.bashrc #在末尾添加

alias qt=‘sh /opt/Tools/QtCreator/bin/qtcreator.sh’

创建一个功能包。在QT界面,File->Open File or Project 打开工作空间/src/CMakeLists.txt,将Project->Build&Run->CMake->Build directory:修改为工作空间的编译空间即可。

2.配置编写CMakeList.txtcmake_minimum_required(VERSION 2.8.3)

project(qt_app)

## Compile as C++11, supported in ROS Kinetic and newer

add_compile_options(-std=c++11)

set(CMAKE_AUTOMOC ON)

set(CMAKE_AUTOUIC ON)

set(CMAKE_AUTORCC ON)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(SOURCES

src/main.cpp

src/qt_app_node.cpp

src/mainwindow.cpp

src/qnavigationwidget.cpp

)

#find_package catkin

set(CMAKE_PREFIX_PATH /opt/5.12.6/gcc_64)

message(CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH})

message(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~find_package Qt5~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)

find_package(Qt5 5.12.6 REQUIRED COMPONENTS

Widgets

Gui

Core

WebEngineWidgets

)

#find_package catkin

set(CMAKE_PREFIX_PATH /opt/ros/kinetic)

message(CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH})

message(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~find_package catkin~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)

find_package(catkin REQUIRED COMPONENTS

sensor_msgs

cv_bridge

image_transport

roscpp

rospy

std_msgs

)

find_package(OpenCV REQUIRED

)

set(FORMS

src/mainwindow.ui

)

catkin_package(

#  INCLUDE_DIRS include

#  LIBRARIES qt_app

#  CATKIN_DEPENDS roscpp rospy std_msgs

#  DEPENDS system_lib

)

include_directories(

include

${catkin_INCLUDE_DIRS}

)

add_executable(${PROJECT_NAME}_node ${SOURCES} ${FORMS} include/mainwindow.h  include/qt_app_node.h include/qnavigationwidget.h)

target_link_libraries(${PROJECT_NAME}_node

${catkin_LIBRARIES}

${OpenCV_LIBS}

Qt5::Widgets

Qt5::Gui

Qt5::Core

Qt5::WebEngineWidgets

)

linux qt开发上位机,QT开发 ROS上位机界面相关推荐

  1. ROS开发实践(十)——ROS多机通讯及网络配置讲解

    一.控制背景 我们设计了一台ROS机器人,其中ROS机器人上搭载 树莓派4b 控制器,我们将其设为ROS主机,主要负责激光雷达扫描.视觉信息读取.SLAM算法运行等工作:同时,我们将电脑端的虚拟机设为 ...

  2. qt connect函数_Qt 串口上位机开发Rice 上位机 学习开发

    前几天分享了一个使用C#开发的串口上位机,那么今天教你如何100行QT代码实现一个串口上位机.如果你学习过C++,那么使用QT开发软件,就不是什么大问题了,QT很多时候使用在linux上.所以使用QT ...

  3. [转]Ubuntu下ROS开发环境搭建(QT+ros_qtc_plugin)

    ROS与C++入门教程-搭建开发环境(QT+ros_qtc_plugin) PS : 在"安装ros_qtc_plugin插件"这一步中,原文提到" Ubuntu 14. ...

  4. 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容...

    [Qt开发][VS开发][Linux开发]OpenCV.Qt-MinGw.Qt-msvc.VS2010.VS2015.Ubuntu Linux.ARM Linux中几个特别容易混淆的内容 标签:[Qt ...

  5. linux eclipse下qt开发环境搭建,Qt Eclipse开发环境的部署 上篇

    关于Qt  Eclipse的开F发,将会从不同的环境中区安装部署,分为上.中.篇,三篇文章来讲.Windows,Linux平台下安装使用eclipse + QT4.4.3开发环境,Windows,Li ...

  6. qtcreator版本_【IDE】ROS开发环境之Qt Creator的安装与配置

    可以用于ROS开发的IDE很多(可以参考[工具合辑]ROS工程师都在用什么IDE开发呢?用哪种IDE开发更加高效呢? ),ROS的调试依赖环境变量,与外部程序有通讯,因此要求启动IDE的时候加载ROS ...

  7. linux下qt制作日历,基于QT的多功能日历设计与开发.doc

    基于QT的多功能日历设计与开发 上海电力学院 本科毕业设计(论文) 题 目: 基于QT的多功能日历 设计与开发 院 系: 计算机与信息工程学院 专业年级: 2007电子科学与技术 学生姓名: 张岚 学 ...

  8. x210开发板linux驱动开发,移植Qt与Tslib到X210开发板的体会

    1.将QT移植到X210上,让X210开发板可以运行QT东西,需要几个东西.tslib QT源码编译后的lib库等 (1)tslib移植: @1:下载tslib,官方上下就可以. @2:解压.比如解压 ...

  9. Qt on Android 蓝牙通信开发

    版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...

  10. 物联网小项目智能家居(QT、MQTT、嵌入式开发板、Ubuntu)

    项目框架: 概述:搭建一个物联网的实战小项目,为本阶段的学习做了一次总结及记录.把构建的整个过程分享出来给大家,项目难点在于各种环境的搭建,而代码逻辑并不难. 说明: (1)本项目总共涉及到了4个MQ ...

最新文章

  1. vue-cli创建第一个项目(用git bash解决上下键移动选择问题)
  2. ADO.NET 获取元数据
  3. php随机产生4乘4矩阵,PHP 用二维矩阵生成一个给定层数的杨辉(PASCAL)三角形
  4. 解决在Windows10没有修改hosts文件权限
  5. AndroidStudio_Build Out窗口显示乱码解决方案---Android原生开发工作笔记222
  6. vue 获取数组索引_vue 重塑数组之修改数组指定index的值操作
  7. 简单树匹配算法STM-理论篇
  8. CentOS源码安装消息队列ActiveMQ
  9. detours安装和使用
  10. 大名鼎鼎的SEO,有哪些发展方向?
  11. Git 初學筆記 - 指令操作教學
  12. 生物信息学必读100篇论文
  13. 戴尔笔记本inspiron5488增大内存
  14. 【C语言】【unix c】信号量集(system v ipc)
  15. 人脸识别准确概率计算——超详细
  16. 湖北武汉资料员培训资料员在建筑工程中的作用建筑七大员培训
  17. 奥迪 a4 编码 控制计算机,大众/奥迪车电脑编码大全).doc
  18. 正序、负序、零序(增刊)
  19. WebSocket四种事件详解 入门篇(二)
  20. starring V6平台开发接出点流程

热门文章

  1. 笔记,前端重点 js,es6,vue2,vue3,小程序...... (记得收藏)
  2. java 数组怎么求和_java数组求和怎么解决?有哪些方式?
  3. 肾囊肿的症状表现是什么?
  4. css 多层ul li,css中的ul li ul li ul li ul li 实现四级菜单
  5. 【Java excel数据 截取 匹配】
  6. 公众号获取token失败_微信公众号token验证失败
  7. wikioi3287 货车运输
  8. Windows7服务一览
  9. JavaScript票据出票日期中文大写填写规范
  10. 钢琴瀑布流 Piano-MIDI(接入电钢琴等设备MIDI接口 通过钢琴的弹奏实时显示瀑布流线条)程序发布