【QT】ROS2 Humble联合使用QT教程

embedded/2024/9/25 5:47:41/

【QT】ROS2 Humble联合使用QT教程

文章目录

  • 【QT】ROS2 Humble联合使用QT教程
    • 1. 安装ROSProjectManager插件
    • 2. 创建ROS项目
    • 3.一个快速体验的demo
    • Reference

环境的具体信息如下:

  • ubunt 22.04
  • ros2 humble
  • Qt Creator 13.0.0
  • ROS ProjectManager 13.0.0

本文建立在已经安装好Qt Creator的基础上,如果还没有安装Qt Creator请参考这篇(【QT】Ubuntu22.04 配置 QT6.5 LTS)

1. 安装ROSProjectManager插件

安装ROSProjectManager的主要流程参考官方给出的流程,官方地址在这里(ros_qtc_plugin),我们采用二进制安装更为方便。首先先安装相关的依赖

sudo apt install libarchive-tools

然后安装插件,注意这里是默认Qt Creator的安装路径为~/Qt/Tools/QtCreator,如果你的路径不是这里,请将下面语句-C后改为你自己的安装路径。

curl -SL $(curl -s https://api.github.com/repos/ros-industrial/ros_qtc_plugin/releases/latest | grep -E 'browser_download_url.*ROSProjectManager-.*-Linux-.*.zip' | cut -d'"' -f 4) | bsdtar -xzf - -C ~/Qt/Tools/QtCreator

等待一会,像这样就代表安装完成了

Image

然后我们重启Qt Creator,按照下列方式查看我们的插件

Image

出现ROSProjectManager就代表安装成功了

Image

2. 创建ROS项目

首先File -> New Project,进入项目配置界面,然后选择ROS Workspace

Image

然后配置信息,使用ROS2,则build选项一定要选Colcon

Image

然后我们右键,选择Add New

Image

选择添加ROS功能包

Image

功能包的名字可以随便取

Image

然后点击Next,如果点击Next没有反应的话,我们先点击Browse,然后立马cancel,这个路径不要改,退出来之后,我们就可以点击Next了,这可能是一个小bug。然后就顺利创建了功能包

Image

3.一个快速体验的demo

直接进入src文件夹中然后git clone这个ROS功能包,地址:https://github.com/shenmuxin/ros2_humble_qt_demo

git clone https://github.com/shenmuxin/ros2_humble_qt_demo.git

然后编译运行即可

colcon build
source install/setup.bash
ros2 run ros2_humble_qt_demo ros2_humble_qt_demo

效果如下:

Image

Reference

[1]QT在线配置安装ROS2插件以及创建项目
[2]ROS2-QT合并编程(从环境搭建到UI界面编写,很详细)
[3]【基于 QT5 的 ROS2 GUI 开发教程(一)】话题消息的发布和订阅


http://www.ppmy.cn/embedded/22988.html

相关文章

【数据结构】三、栈和队列:5.顺序队列(循环队列)(初始化,判空判满,入队,出队,实例)

文章目录 队列Queue逻辑结构物理(存储)结构基本操作1.顺序队列(循环队列)1.1初始化1.2判空&判满1.2.1判空1.2.2判满方案一方案二方案三 1.3入队循环队列 1.4出队1.5获取队头元素1.6获取队列元素个数❗1.7循环队列c实例 队列Qu…

debian和ubuntu的核心系统和系统命令的区别

Debian和Ubuntu虽然有很深的渊源,都是基于Debian的发行版,但它们在核心系统和系统命令上还是有一些差别的。以下是一些主要的不同之处: 1. 发布周期: - Debian: Debian项目采用滚动发布模型,持续更新&a…

关于ListView的使用及其实现原理

ListView的使用 ListView的使用主要分为以下几个步骤&#xff1a; 布局定义&#xff1a; 在XML布局文件中定义ListView控件&#xff0c;为其指定ID&#xff0c;并设置相关属性&#xff0c;如宽度、高度等。 <ListView android:id"id/list_view" android:layout…

为什么分类问题不能使用mse损失函数,更容易理解版本

分类问题通常不适合使用均方误差&#xff08;Mean Squared Error&#xff0c;MSE&#xff09;损失函数&#xff0c;原因如下&#xff1a; 1.输出差异&#xff1a; 输出差异的度量不同&#xff1a;MSE损失函数是基于预测值和真实值之间的差异的平方和进行计算的&#xff0c;适…

【迅投qmt系列】4、获取数据的方式

获取数据是进行策略回测、实时执行的前提&#xff0c;不同的场景下&#xff0c;有相对合适的数据获取方式。 1、只取历史数据 这个场景的内容一般是将历史数据下载下来后&#xff0c;再将数据用于其他用途。因为对效率没有多少要求&#xff0c;代码最简单&#xff0c;它将qmt…

【Vue】通过Axios实现异步通信(简单案例)

一、Axios介绍 1、是什么 Axios 是一个基于 promise 的 HTTP 库&#xff0c;简单的讲就是可以发送get、post请求。当然这些请求ajax和jquery也能做&#xff0c;但是由于Vue、React等框架的出现&#xff0c;促使了Axios轻量级库的出现&#xff0c;因为Vue等&#xff0c;不需要操…

Games101-相机与透镜

成像&#xff1a;光栅化成像(上图)和光线追踪成像(下图) 都是用合成的方法来成像。还可以用捕捉的方法来成像 利用小孔成像原理制作的相机就是针孔相机 如果一个相机没有针孔/透镜&#xff0c;是无法拍照的。 因为任何一个点都有可能收集到来自不同方向上的光。这个点本身作为…

基于Flask的岗位就业可视化系统(一)

前言 本项目综合了基本数据分析的流程&#xff0c;包括数据采集&#xff08;爬虫&#xff09;、数据清洗、数据存储、数据前后端可视化等 推荐阅读顺序为&#xff1a;数据采集——>数据清洗——>数据库存储——>基于Flask的前后端交互&#xff0c;有问题的话可以留言…