ROS之QtCreator开发环境搭建

2023-11-13

系统环境

操作系统:Ubuntu20.04
ROS版本:Noetic

官方教程

按照官方教程或者下面笔记中的内容均能进行环境搭建,笔记中另外做了部分补充

安装

说明:目前最新版本是Ubuntu18.04版本,不过在Ubuntu20.04上仍然可以正常安装使用

  1. 下载安装包
    打开官方链接,下载推荐的安装包
    在这里插入图片描述

  2. 软件安装
    进入到下载好的安装文件目录下,先设置权限,然后运行可执行文件
    在这里插入图片描述
    运行后启动安装程序,界面如下图所示,随后一路“下一步”直到安装完成
    在这里插入图片描述

  3. 确认安装无误
    搜索QtCreator启动图标并启动软件,可以添加到收藏夹方便后续使用
    在这里插入图片描述
    依次打开“文件”–>“新建文件或项目”–>“其他项目”,出现如图所示的内容即安装无误
    在这里插入图片描述

卸载

进入到QtCreator的安装目录,执行./MaintenanceTool命令即可打开卸载程序,勾选“删除所有组件”,点击“下一步”,在新的弹出窗口中点击“卸载”即可完成卸载
在这里插入图片描述

使用

导入工作空间

如果已有工作空间,可以直接按照下面的部步骤导入,没有工作空间的话先进行创建

mkdir -p ros_test_ws/src
cd ros_test_ws
catkin_make

依次选择“文件”–>“新建文件或项目”–>“其他项目”–>“ROS Workspace”
在这里插入图片描述
点击“Choose”后,在窗口中输入需要的内容,注意这里的构建系统选择CatkinMake,工作空间路径即为上面创建的工作空间目录
在这里插入图片描述
导入完成后即会显示项目结构目录,如果没有出现src文件夹,点击图片所示的过滤器按钮,取消有关隐藏选项的勾选
在这里插入图片描述

构建与运行

在导入完成工作空间后,点击左下方的“构建项目”按钮即可对项目进行编译,在编译输出窗口也可以看到相关的编译信息
在这里插入图片描述
此时点击“运行”按钮还没有作用,因为还没有指定可执行程序,需要进行一些配置
在这里插入图片描述
先来使用ROS自带的小乌龟程序来进行测试,依次选择“项目”–>“Run”,点击“添加”下拉按钮,选择ROS Run Configuration,点击“Add Run Step”下拉按钮,选择ROS Run Step,在新窗口中选择小乌龟程序的包名和节点名
在这里插入图片描述
先在终端执行roscore命令启动ROS主程序,然后点击“运行”按钮,此时可以看到小乌龟程序已经启动了,上面的添加执行步骤中除了添加节点,也可以添加launch文件或者其他选项,并且可以同时启动多个
在这里插入图片描述
此时可以在ROS终端窗口查看当前节点的运行情况,默认下方的工具栏中是没有ROS Terminals这个选项的,可以通过如图片中的双三角按钮来根据需要添加或删除下方工具栏中的选项。其实这里执行的程序和当前的工作空间并没有什么关系,与在系统终端中运行该节点没什么区别,后面我们来自己添加测试程序
在这里插入图片描述

编写测试程序

右键“src”目录,选择“Add New…”,然后选择“ROS”–>“Package”–>“Choose”,创建ROS包
在这里插入图片描述
在弹窗中根据需要输入相关信息,这里输入了名称和依赖项(注意这里添加多个依赖项时使用逗号隔开而并非像终端里一样使用空格隔开,否则后面编译时会报错,生成的包目录也不对),点击“下一步”,然后点击“完成”即可完成ROS包的创建。如果创建完成后,工程目录下没有显示刚创建的包,右键项目名称,关闭项目,然后重新打开项目即可显示刚才创建的ROS包,ROS插件在这一块好像是有这个小bug
在这里插入图片描述
现在来添加一个测试节点,右键上面创建的ROS包“helloworld“下面的“src”,选择“Add New…”,然后选择“ROS”–>“Basic Node”–>“Choose”
在这里插入图片描述
在弹窗中输入节点名称,点击“下一步”,然后在新窗口点击“完成”即可完成节点的创建
在这里插入图片描述
节点创建完成后已经自动生成了基础代码,通过上面的方式也可以创建发布节点、订阅节点、launch文件等等,也都会自动生成基础代码,非常方便
在这里插入图片描述
修改CMakeLists.txt,共修改两处,(1)取消136行的注释,第二个参数修改为上面创建的节点文件名称,第一个参数为节点名称的映射,可以自行定义,(2)取消149-151行的注释,第一个参数修改为节点映射的名称。PS:add_executable是对于构建之后要创建的可执行文件的选项,图片中内容是引用src/hello.cpp文件生成hello_node可执行文件
在这里插入图片描述
先来点击左下角的构建按钮来构建一下,确认可以编译通过,如果代码有错误,编译输出窗口会有编译错误的提示
在这里插入图片描述
下面来配置运行选项,设置方法和上面运行小乌龟程序的方法一样,可以像上面一样选择包名和节点名,也可以像下面图片中一样在参数行输入
在这里插入图片描述
在运行之前记得先启动下roscore,此时点击“运行”按钮即可在ROS终端中看到上面编写节点的运行信息了,按照上面的步骤也可以编写运行发布节点、订阅节点、launch文件等等
在这里插入图片描述
☝ ★★★ — 返回 《ROS机器人开发笔记汇总》总目录 — ★★★ ☝

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

ROS之QtCreator开发环境搭建 的相关文章

随机推荐

  • VS调试:函数断点与数据断点

    断点 是Debug过程中最常用的功能 关于断点VS还有很多高级功能 本文使用的是VS2017 介绍函数断点与数据断点的使用场景以及使用方法 1 普通断点 普通断点是最常接触的断点 VS中 在代码行左边栏灰色区域点击 或者把光标放在某代码行按
  • 使用Python编写Maya脚本插件批量导入Obj文件

    最近开发中遇到需要使用Python语言编写Maya脚本 要求使用脚本选择某一磁盘路径 脚本根据路径自动导入路径与子目录下的所有OBJ文件 并重命名它们 在Maya中 有自带的脚本编辑器供我们使用 这使得我们编写代码非常轻松 打开脚本编辑器
  • Installation did not succeed. The application could not be installed: INSTALL_FAILED_USER_RESTRICTED

    当我们第一次在我们的手机上 也就是物理设备上 运行我们的写好的安卓应用程序时可能会报以下错误 Session app Installation did not succeed The application could not be ins
  • 互斥锁的实现细节

    首先 一个互斥锁要实现什么功能 一个互斥锁需要有阻塞和唤醒功能 实现阻塞和唤醒功能需要哪些要素 需要有一个标记锁状态的state变量 需要记录哪个线程持有了锁 需要有一个队列维护所有的线程 另外 state和队列中为了实现线程安全都用到了C
  • Java - 将base64编码解码成图片

    为了方便测试 我们可以使用一个图片编码网站 将图片进行base64编码 解密的代码如下 public static String generateImage String base64 String path 解密 try String s
  • 计算机视觉(十六):目标检测概述

    1 什么是目标检测 目标检测 Object Detection 的任务是找出图像中所有感兴趣的目标 物体 确定它们的类别和位置 例子 确定某张给定图像中是否存在给定类别 比如人 车 自行车 狗和猫 的目标实例 如果存在 就返回每个目标实例的
  • 配置哨兵监控Redis运行情况

    Redis的主从架构 如果master发现故障了 还得手动将slave切换成master继续服务 手动的方式容易造成失误 导致数据丢失 那Redis有没有一种机制可以在master和slave进行监控 并在master发送故障的时候 能自动
  • 动态链接库(二)--动态链接库的创建

    开发环境 系统 Win10企业版 64位 vs版本 Microsoft Visual Studio 2010 版本10 0 Dll项目创建 为从头了解dll项目中各文件的来源 这里暂不使用vs新建项目列表中的动态链接库 DLL 向导 选择创
  • OJDBC8 12.2.0.1下载

    一 进入oracle官网 注册oracle账户 登入oracle官网 二 在oracle官网找到ojdbc8的下载地址 地址如下 https www oracle com database technologies jdbc ucp 122
  • The Backus-Naur Form (BNF) & The Extended Backus-Naur Form (EBNF)

    The Backus Naur Form BNF The Backus Naur Form BNF is a notation used for formal description of the syntax of programming
  • Web前端学习(四)HTML5语义化标签

    语义化 语义化实际上就是将用一些标签使浏览器能够识别到标签含义 比如什么时候使用标题标签 什么时候使用段落标签 适当的使用这些标签使浏览器能够识别到标签的含义 并作出相应的响应 语义化标签 段落标签 p p p 段落文本 p 新开始一段文字
  • Mac电脑配置李沐深度学习环境[pytorch版本]使用vscode

    文章目录 第一步 M1芯片安装Pytorch环境 安装Miniforge 创建虚拟环境 安装Pytorch 第二步 下载李沐Jupyter文件 第三步 配置vscode 参考 第一步 M1芯片安装Pytorch环境 安装Miniforge
  • [视频学习] 寻根探源话佛教

    根源篇 印度 延續篇 緬甸 穿越興都庫什山脈 延續篇 泰國 05 END 延續篇 中國
  • Windows Server 2012 AD DS环境下域用户自动加入本地管理员组

    刚加入域控 需求 域用户加入域之后 此用户的域账号自动加入本地管理员组 我们的Server2012是一台域控制器 然后再找一台Win 7做客户机 把域用户加入本地管理员组 使用的就是 用户配置首选项中 本地用户和组 用于将登录帐号自动加入本
  • 选择正确的C/C++ Runtime Library

    解决下面的编译 链接问题过程中 有一些新的认识 warning LNK4049 locally defined symbol error LNK2001 unresolved external symbol 本文意在总结 讨论的中心自然也正
  • 查看和修改AWR配置

    有时遇到系统遇到复杂问题 处理周期长 需要保留系统的快照周期 便于分析问题 这时 需要延长延长快照时间周期 默认一般是一周时间 一 查看当前AWR配置 10g版本中默认是保留7天 11g版本中默认保留8天 采集间隔是1小时 这个信息可以从D
  • java.net.SocketException四大异常解决方案

    java net SocketException如何才能更好的使用呢 这个就需要我们先要了解有关这个语言的相关问题 希望大家有所帮助 那么我们就来看看有关java net SocketException的相关知识 第1个异常是 java n
  • 疯壳Android嵌入式Linux平板开发教程3-4亮度及音量调节

    购买链接 https fengke club GeekMart su fHnaDyD1o jsp 视频地址 https fengke club GeekMart su f5W0Cuz3p jsp 官方QQ群 457586268 音量调节 点
  • [人工智能-深度学习-40]:英伟达GPU CUDA 编程框架简介

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121220362 目录 第1章 什么C
  • ROS之QtCreator开发环境搭建

    文章目录 系统环境 官方教程 安装 卸载 使用 导入工作空间 构建与运行 编写测试程序 系统环境 操作系统 Ubuntu20 04 ROS版本 Noetic 官方教程 按照官方教程或者下面笔记中的内容均能进行环境搭建 笔记中另外做了部分补充