【ROS界面开发】【1-1:创建及编译功能包】

系列文章目录



前言


一、资源地址

项目仓库地址
在这里插入图片描述
在这里插入图片描述

二、QtCreator安装

1.通过apt安装

通过apt安装(示例):

sudo apt-get install qtcreator

2.通过安装包安装

qt下载地址
选择5.9.9
linux选择这个下载

添加可执行权限

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

然后再安装包目录下“./”运行即可

一路next
然后注册qt账号即可下一步
在这里插入图片描述
勾选gcc编译环境
在这里插入图片描述

三.QtCreator的使用

1.运行

方法一:在菜单栏运行
在这里插入图片描述
方法二:
找到如下路径运行qtcreator文件或cd到目标路径”./“运行。
在这里插入图片描述

2.创建工程

新建工程
在这里插入图片描述
选择QT控件应用
在这里插入图片描述
命名并选择路径
在这里插入图片描述
选择cmake
在这里插入图片描述
剩下的步骤一路next即可

四、合并ROS与QT项目

1、创建工作空间与功能包

mkdir ros2_ws
cd ros2_ws
mkdir src
cd src
ros2 pkg create --build-type ament_cmake ros2_qt_demo

在这里插入图片描述

2、合并文件夹

将qt工程目录下创建的main.c和mainwindow,移动到rosws目录下qtdemo中的src下

在这里插入图片描述
同理再将.h文件挪动到rosws目录下的inlucde文件夹中

在这里插入图片描述
新建ui跟resource文件并将qtws的ui文件挪动到rosws的ui文件中。
在这里插入图片描述

3、编写cmakelist

cmake_minimum_required(VERSION 3.5)
project(ros2_qt_demo)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Default to C99
if(NOT CMAKE_C_STANDARD)
  set(CMAKE_C_STANDARD 99)
endif()

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
  set(CMAKE_CXX_STANDARD 14)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(Boost 1.71.0 REQUIRED COMPONENTS thread)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
# uncomment the following section in order to fill in
# further dependencies manually.
# find_package(<dependency> REQUIRED)
file(GLOB PRO_SOURCE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS  src/*.cpp)
file(GLOB PRO_UI_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS  ui/*.ui)
file(GLOB PRO_INCLUDE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS  include/*.h *.hpp)
file(GLOB PRO_RESOURCE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS  resource/*.qrc)
qt5_wrap_ui(QT_UI_HPP ${PRO_UI_DIR})
qt5_wrap_cpp(QT_MOC_HPP ${PRO_INCLUDE_DIR})
qt5_add_resources(QT_RESOUCE_HPP ${PRO_RESOURCE_DIR})
include_directories(
	include/
	${CMAKE_CURRENT_BINARY_DIR}
)
add_executable(${PROJECT_NAME}
    ${PRO_SOURCE_DIR}
    ${PRO_INCLUDE_DIR}
    ${PRO_UI_DIR}
    ${QT_MOC_HPP}
    ${QT_RESOUCE_HPP}
  )
ament_target_dependencies(${PROJECT_NAME} rclcpp  Boost)
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME})
if(BUILD_TESTING)
  find_package(ament_lint_auto REQUIRED)
  # the following line skips the linter which checks for copyrights
  # uncomment the line when a copyright and license is not present in all source files
  #set(ament_cmake_copyright_FOUND TRUE)
  # the following line skips cpplint (only works in a git repo)
  # uncomment the line when this package is not in a git repo
  #set(ament_cmake_cpplint_FOUND TRUE)
  ament_lint_auto_find_test_dependencies()
endif()

ament_package()

此处可以看看
https://www.jianshu.com/p/7b16815fe59d

4、编译

在工作空间目录下打开终端
mkdir build
cd build
cmake ..

编译完成
在这里插入图片描述
根据makefile生成可执行文件

make

在这里插入图片描述
运行demo

./ros2_qt_demo

运行后出现窗口
在这里插入图片描述

总结

原视频
通过本节课的学习,知道了如何配置qt开发环境,如何将qt与ros的工作空间合并起来,如何改写ros的cmakelist文件。

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值