ubuntu16.04 使用Qt开发ROS,移植到其他电脑

一 QT简介

Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
QT Creator 跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。
QT SDK 包括了Qt库、Qt Creator IDE和Qt工具,这些都集成在一个易于安装的文件包里.。
Qt < QT Creator < QT SDK
QT框架约等于MFC QT Creator约等于VC++ QT SDK约等于VS

二 QT安装

安装qtcreator及开发ros的插件ros_qtc_plugin(参考:https://blog.csdn.net/zhangrelay/article/details/52068865)没有及时做笔记,我忘了我怎么安装的,自己探索吧,难免有坑,哈哈哈

三 QT开发ROS

(1)使用QtCreator创建ROS工作空间,软件包,节点,编译运行 (参考:https://blog.csdn.net/qq_17032807/article/details/80540290)
注:单纯的开发ROS没有必要用qtcreator,catkin_make就挺好用的
创建一个ROS Workspace 的方法总结:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
cd ~/catkin_ws
catkin_make

(2)使用QtCreator开发GUI界面
(i)导入现有ROS工程(参考:https://blog.csdn.net/LOVE1055259415/article/details/80066519)
New Project ——> Other Project ——> ROS Workspace ——> Name:设置工程名与现有工程名相同,Workspace Path:现有工程工作空间
(ii)参考:https://blog.csdn.net/lingchen2348/article/details/82344924#commentBox
—创建(catkin_create_pkg命令)一个新的ROS软件包例如GUI
—新建一个包含main函数的cpp文件,设为qt_node.cpp,放在GUI/src目录下,功能为创建一个空窗口

	#include <qt_app_node.h>
	#include "mainwindow.h"
	#include <QApplication>

	int main(int argc, char *argv[])
	{

	    QApplication a(argc, argv);
	    MainWindow w;
	    w.show();

	    return a.exec();
	}

—然后在软件包GUI/src下add new -> QT -> QT设计师界面类
—修改cmakelist.txt文件,使mainwindow.cpp和mainwindow.ui参与编译,并添加qt相关头文件和链接库
—编译运行可以参考(1)或者catkin_make编译rosrun运行

注:现在可以在ui界面上设计自己的界面啦,各种按钮控件信号槽怎么用,自己百度啦,哈哈哈,
(参考:https://blog.csdn.net/louis_815/article/details/54286544)
基础的控件使用比较简单,但是要显示点云比较复杂,需要在qtcreator里装QVTKWidget插件
(参考:
https://blog.csdn.net/jepco1/article/details/80628026
https://blog.csdn.net/qq_25244255/article/details/87182855
https://blog.csdn.net/Curryfun/article/details/87991540
https://blog.csdn.net/lzp_k2/article/details/84338783)

四 打包发布程序

way1:用QtCreator编译程序(默认动态编译):编译好的程序在运行时需要另外加上相应的Qt库文件。

(1)relaese编译
(2)从可运行程序的文件中拿出可执行文件,例:test
(3)终端下使用ldd命令查看需要的连接库,例:ldd test
(4)把ldd查询到的所有需要的库导出

	#!/bin/sh

	exe="GUI" #发布的程序名称
	des="./LIB/" #指定的复制的库文件路径

	deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')
	cp $deplist $des

(5)设置动态库的查找路径
命令:sudo gedit /etc/ld.so.conf
添加导出的动态链接库,即(4)中LIB文件夹的路径
保存后执行ldconfig 生效
命令:sudo ldconfig

way2:下载Qt源码,自己动手生成静态库 (参考:https://www.cnblogs.com/findumars/p/6410751.html https://blog.csdn.net/zzwdkxx/article/details/65633534)
再在QtCreator中将编译方式设置为静态编译 (参考:https://blog.csdn.net/chinahaerbin/article/details/52458528)
生成的可执行文件可以完美的不加任何库文件独立运行

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值