ROS Qt环境的搭建及基础知识介绍

2023-11-10

ROS Qt环境的搭建及基础知识介绍




1. 开发环境搭建

1.1 qtcreator安装

Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(成为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

官网:https://www.qt.io/cn

特点:丰富的图像化界面,跨平台

  1. 通过apt安装

    sudo apt-get install qtcreator
    
  2. 通过安装包安装:

    1. 安装包下载地址:http://download.qt.io/archive/qt/(我选择5.9.9)

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvA41qds-1637545549865)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\image-20211121163326452.png)]

    2. 安装包添加可执行权限:

      chmod a+x qt-opensource-linux-x64-5.9.9.run
      

      双击安装包图标进行安装:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hcuvqSSF-1637545549868)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\image-20211121163935660.png)]

  3. 添加qtcreator到环境变量:

    sudo nano /usr/bin/qtcreator
    

    添加如下内容:

    #!/bin/sh
    export QT_HOME=/home/xxxx/Qtxxx/Tools/QtCreator/bin
    $QT_HOME/qtcreator $*
    
  4. 更改权限:

    chmod a+x /usr/bin/qtcreator
    
  5. 终端运行Qt

    qtcreator
    

1.2 catkin_create_qt_pkg环境配置

  1. 安装依赖(ros是melodic版本):

    sudo apt-get install ros-melodic-qt-create
    
    sudo apt-get install ros-melodic-qt-build
    
    sudo apt-get install qtmultimedia5-dev
    
  2. 创建Qt功能包:

    catkin_create_qt_pkg 功能包名 依赖1 依赖2
    
    mkdir -p ~/catkin_qt/src
    cd ~/catkin_qt/src
    catkin_create_qt_pkg class1_ros_qt_demo roscpp rviz
    
    cd ~/catkin_qt
    catkin_make	#编译该空间,会发现报编译错误
    

    编译报错:Invoking "make" failed

1.3 配置功能包

  1. 配置功能包:更改功能包class1_ros_qt_demo下的CMakeLists.txt:

    1. 设置包含当前目录:

      set(CMAKE_INCLUDE_CURRENT_DIR ON)
      
    2. 添加qt库:

      find_package(Qt5 REQUIRED Core Widgets)
      set(QT_LIBRARIES Qt5::Widgets)
      
    3. 删除:

      rosbuild_prepare_qt4(QtCore QtGui)
      
    4. 更改

      QT4_ADD_RESOURCES(QT_RESOURCES_CPP) ${QT_RESOURCES})
      QT4_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
      QT4_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
      

      改为:

      QT5_ADD_RESOURCES(QT_RESOURCES_CPP) ${QT_RESOURCES})
      QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
      QT5_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
      

      再次编译还会报错:Invoking "make -j1 -l1" failed

    5. 再次更改

      打开~/catkin_qt/src/class1_ros_qt_demo/include/class1_ros_qt_demo/main_window.hpp文件,将:

      #include <QtGui/QMainWindow>
      

      改为:

      #include <QtWidgets/QMainWindow>
      

      再次编译,成功!

    6. 刷新终端,使工作空间中的环境变量生效:

      source ~/catkin_qt/devel/setup.bash
      
    7. 打开Qt提供的基础框架

      cd
      rosrun class1_ros_qt_demo class1_ros_qt_demo
      

      打开主节点:

      roscore
      

      输入如下图中的ip,然后点击connect便可成功创建/chatter节点,进行通讯:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8OndFj5K-1637545549870)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\image-20211121171747952.png)]

      rostopic list #查看节点,上图中的节点为/chatter
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UBkei8Fb-1637545549872)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\image-20211121172009999.png)]

      rostopic echo chatter
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-36PLVsfN-1637545549874)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\image-20211121172037121.png)]


2. Qt基础

  1. 常用控件:

    Button, label, CheckBox, SliderBar, progressbar
    
  2. 信号与槽:

    QObject::connect(const QObject *sender, const char *signal, const Qobject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
    
  3. 资源文件:

    将图片,数据存储在二进制文件中,在程序中方便调用
    
  4. 布局管理:

    所谓布局,就是界面上组件的排列方式,使用布局可以使组件有规则地分布,并且随着窗体大小变化自动地调整大小和相对位置。
    

3. Qt编译ROS工程



本教程中各种软件卸载方法

1. 卸载Qt有2种办法

  1. 进入qt的安装目录下卸载
    一般ubuntu软件是安装在opt目录下,如果不在就需要找找了

    进入安装目录下

sudo ./MaintenanceTool

img

img

选择remove all 就可以完全删除qt了

2.命令行安装的卸载

sudo apt-get remove qt5-default qtcreator

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS Qt环境的搭建及基础知识介绍 的相关文章

随机推荐

  • AcWing--756. 蛇形矩阵

    输入两个整数 n 和 m 输出一个 n 行 m 列的矩阵 将数字 1 到 n m 按照回字蛇形填充至矩阵中 具体矩阵形式可参考样例 输入格式 输入共一行 包含两个整数 n 和 m 输出格式 输出满足要求的矩阵 矩阵占 n 行 每行包含 m
  • Linux——使用第三方库链接的方式——动态式

    回顾上文 122条消息 Linux使用第三方库链接的使用方式 静态式 橙予清的zzz 的博客 CSDN博客https blog csdn net weixin 69283129 article details 131414804 spm 1
  • 【qiankun】微前端在项目中的具体使用

    1 安装qiankun npm install qiankun save 2 主应用中注册和配置qiankun 在主应用的入口文件main ts中 引入qiankun的注册方法 import registerMicroApps start
  • java/php/net/python健身房管理系统设计

    本系统带文档lw万字以上 答辩PPT 查重 如果这个题目不合适 可以去我上传的资源里面找题目 找不到的话 评论留下题目 或者站内私信我 有时间看到机会给您发 系统设计 4 1 系统体系结构 健身房管理系统的结构图4 1所示
  • mysql localhost值_jdbc:mysql://localhost:3306/mysql这句话中localhost具体指什么的localhost?能修改么?在哪里配置的?...

    展开全部 jdbc mysql 是指JDBC连接方式 localhost 是指你的本机地址 3306 SQL数据库的端口 jdbc 就是你要连接的32313133353236313431303231363533e59b9ee7ad94313
  • Mysql 8.0修改密码

    1 mysql u root p 原来的密码 进入数据库中 2 show databases 3 use mysql 4 使用下面的语句修改密码 ALTER USER root localhost IDENTIFIED WITH mysql
  • 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

    驱动程序无法通过使用安全套接字层 SSL 加密与 SQL Server 建立安全连接 错误 The server selected protocol version TLS10 is not accepted by client prefe
  • STM32初始化结构体变量时成员排序的问题

    平台 STM32F103RCT6 MDK 笔者在调试时发现 结构体不同类型成员的定义顺序对于程序运行过程中的取值可能会产生很大的BUG 开始时定义 输入参数结构体 typedef struct u8 TempRange 温度最大值 floa
  • 日期格式‘YYYY-MM-DD’中的BUG

    1 日期格式 先来看一下日期格式主要有下面三种 US style Euro style RFC 3389 Layout Format string Example US style Dec 29 2019 MM DD YYYY 12 29
  • yolo格式数据转换为coco格式

    只需要有图片和yolo格式的标签就可以转换为coco格式的标签 第一步 将yolo格式的标签 classId xCenter yCenter w h转换为coco格式 classId xMin yMim xMax yMax格式 coco的i
  • 【产品设计】电商后台系统设计--订单管理

    电商后台产品 涉及众多模块 而以商品 订单 库存 为核心模块 模块之间存在大量交互 订单较为重要 它记录了所有的交易数据 对电商公司来讲 最核心最难做的有三部分 商品 订单 库存 商品与店铺 营销 评价等相关 订单与会员 营销 支付 库存
  • C# WPF MVVM设计模式下ComboBox的数据源更新的一个问题

    C WPF MVVM设计模式下ComboBox的数据源问题 问题的出现 解决 问题的出现 我在设计一个基于C MVVM 的WPF应用 当我对MainWindow的一个ComboBox进行数据绑定时候 发现当数据源更新后 前台的ComboBo
  • BSN武汉链对接说明

    项目说明 我们项目需要把ETH合约功能迁移到国内链上来 然后基于开发成本等多方面考虑 最终选择了BSN 武汉链接入 相关的BSN文档 BSN 文档地址 对接说明 1 创建BSN帐号 注册并登录bsn官网 网址 BSN官网 点击开放联盟链 g
  • 【Qt】控件探幽——QLineEdit

    注1 本系列文章使用的Qt版本为Qt 6 3 1 注2 本系列文章常规情况下不会直接贴出源码供复制 都以图片形式展示 所有代码 自己动手写一写 记忆更深刻 本文目录 QLineEdit探幽 1 设置数据 获取数据 2 只读 readOnly
  • 2023年华为od机试Java【人气最高的店铺】

    题目 某城市有m个商店和n位市民 现在要举行一场活动 通过投票来选出最受欢迎的商店 每位市民只能投一票 他们将根据自己的喜好为指定的商店投票 然而 1号商店有一个特殊的优势 它可以给每位市民发放补贴 使他们改变投票意向 投票给1号商店 请你
  • 超级计算机是几近制,进制

    进制也就是进位计数制 是人为定义的带进位的计数方法 有不带进位的计数方法 比如原始的结绳计数法 唱票时常用的 正 字计数法 以及类似的tally mark计数 对于任何一种进制 X进制 就表示每一位置上的数运算时都是逢X进一位 十进制是逢十
  • 第 5 章 HBase 优化

    5 1 RowKey 设计 一条数据的唯一标识就是 rowkey 那么这条数据存储于哪个分区 取决于 rowkey 处于 哪个一个预分区的区间内 设计 rowkey的主要目的 就是让数据均匀的分布于所有的 region 中 在一定程度上防止
  • git原理探索实验1——git的三种对象

    背景知识 git的三个区域 working directory 也就是你当前所能操作的那些目录和文件 history 你所提交的所有记录 文件历史内容等等 git是个分布式版本管理系统 在你本地有项目的所有历史提交记录 文件历史记录 提交日
  • MR 从 mysql中 读取 和 写入 数据

    1 编写DBWritable类 import org apache hadoop io Writable import org apache hadoop mapred lib db DBWritable import java io Da
  • ROS Qt环境的搭建及基础知识介绍

    ROS Qt环境的搭建及基础知识介绍 文章目录 ROS Qt环境的搭建及基础知识介绍 1 开发环境搭建 1 1 qtcreator安装 1 2 catkin create qt pkg环境配置 1 3 配置功能包 2 Qt基础 3 Qt编译