【QT】Ubuntu 16如何使用qt creator加载或者创建ros工程

背景:

通过qt creator来编写,编译,运行ros程序包。ros程序包也可以带有界面。其工程是一个ros工程(不是.pro,而是cmakelist.txt),使用cmake编译方式。

步骤:

(1)安装QT(最新版本):

https://blog.csdn.net/ipfpm/article/details/80698659

(2)设置快捷方式:这一步将要修改Qt Creator快捷方式,使从快捷方式启动Qt Creator的同时加载ROS环境变量。

这条命令将打开DigiaQtOpenSource-qtcreator.desktop快捷方式文件,可以看到文件内容如下:

[Desktop Entry]
Type=Application
Exec=/home/ubu/Qt5.8.0/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Community)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
  • 修改 Exec 变量一行,中间添加 bash -i -c 即改为 Exec=bash -i -c /home/ubu/Qt5.8.0/Tools/QtCreator/bin/qtcreator ,保存并退出。

  • 添加 bash -i -c 是为了在通过快捷方式启动Qt Creator的同时加载ROS环境变量

  • 如果打开的文件是空,则表示没有找到DigiaQtOpenSource-qtcreator.desktop文件

  • 可能是安装路径不在本地用户目录下,或者版本不同导致的文件名不一致。

  • 可以在 ~/.local/share/applications/ 和 /usr/share/applications/ 两个路径下用 ls qt 命令找找看。

  • 如果没有上述快捷方式文件,自己新建一个,只要文件内容类似上面的类容,路径正确即可。

  • 快捷方式可以放在 ~/.local/share/applications/ 和 /usr/share/applications/ 两个位置。

  • 当然也可以放在任意其他位置,功能跟放在上面两个位置一样,但左边的任务栏不会正确显示图标

  • 注意:如果不加入上面的话,加载编译带有ros的程序会报错
    :-1: warning: librosconsole_backend_interface.so, needed by /opt/ros/kinetic/lib/librosconsole.so, not found:-1: error: collect2: error: :-1: warning: libcpp_common.so, needed by /opt/ros/kinetic/lib/libroscpp.so, not found (try using -rpath or -rpath-link)
    
    ld returned 1 exit status

     

(3)安装ros_qtc_plugin插件(用时很长)

sudo add-apt-repository ppa:levi-armstrong/qt-libraries-xenial 
sudo add-apt-repository ppa:levi-armstrong/ppa 
sudo apt-get update && sudo apt install qt59creator 
sudo apt-get install qt57creator-plugin-ros

安装该插件会自带有一个qtcreator,版本是qt5.9

因此,需要修改系统配置文件让Qt启动器选择最新版的Qt.

sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
将
/usr/lib/x86_64-linux-gnu/qt4/bin
/usr/lib/x86_64-linux-gnu
换成自己安装的最新的qt的gcc文件

/home/XXX/Qt5.10/5.10/gcc_64/bin
/home/XXX/Qt5.10/5.10/gcc_64/lib

如果自己安装了多个QT,可修改

/usr/lib/x86_64-linux-gnu/qtchooser/default.conf
和
/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

注:如果不执行第一个步骤安装Qt,直接使用安装该插件带的qt也可以.

(4)安装ros,配置ROS环境:

见:      https://mp.csdn.net/postedit/83504391

截止到这基本上大功告成.

可以有两种方式创建ROS项目:一种是直接使用qt还有一种是先通过命令行然后在使用qt进行编译分别见4跟5

(4)ros_qtc_plugin插件新建ROS项目(使用qt creator创建ros工程)

(4.1)新建项目:

“文件”——“新建文件或项目”,选择”Import ROS Workspace”——“choose”

(4.2)填写名称地址:其中在选择地址的时候,新建一个文件夹,文件夹的名称跟刚刚填写的工作区间的名称一样:

(4.3)点击完成:

(4.4)在右上角有个filter tree,打开后,将勾选去掉,会显示隐藏的文件,下一步会用到.

(4.5)创建package:在catkin_test下面的src上右键单击,选择“添加新文件”

(4.6)填写如下:

(4.7)添加节点:如果没有出现src以及include文件夹说明:第4步骤的filter tree没有去掉勾选.在对应packageexample下的src右键-->add new

(4.8)节点名字为node1,生成如下nodecpp文件,是一个hello word的程序.然后编译节点:

  • 编译节点,为example的CMakeLists.txt加上下面几行,意思是把node1.cpp编译成名为node1的节点

  • 再后面include_directories,添加

  • add_executable(node1 src/node1.cpp)
    target_link_libraries(node1
      ${catkin_LIBRARIES}
    )

    如下:

修改完CMakeLists.txt之后点击Qt左下角的锤子图标,即对其进行编译,点击底边栏的“4 编译输出”可以看到编译结果,如下图:

(4.9)运行节点:

  • ctrl + alt + T,新终端:rescore
  • 在qt的Build&Run”页,设置: add run step ----> ros run step
  • 点击底栏的带有上下三角的按钮,点击ros terminate
  • 点击绿色运行箭头运行节点:出来hello word

(5)ros_qtc_plugin插件进行ros工程的gui界面开发(用命令行创建带有界面的ros后,使用qt creator打开编辑ros工程)

(5.1)命令行安装ros的某个包

sudo apt-get install ros-kinetic-qt-ros

sudo apt-get install ros-kinetic-qt-create

sudo apt-get install ros-kinetic-qt-build

(5.2)手动命令行创建对应的文件以及工作空间:

mkdir catkin_test

cd catkin_test

mkdir src

cs src

catkin_create_qt_pkg gui1 roscpp

(5.3)打开qt,新建文档--工作区间的名称跟catkin_test一样,路径选择成对应新建的文件夹catkin_test

打开后如下:

对其进行编译,编译后设置运行目录:项目-->运行-->add run step:

新开终端:roscore

在qt上运行就会出现界面.

 

说明:

通过上面的方法进行开发界面的时候得到的cmakelist中包含的qt库是qt4的库,因为安装得到的qtcreator是qt4,如何创建一个qt 5库呢?可以自行百度,也可以查看链接:

https://blog.csdn.net/ipfpm/article/details/88573199

参考:

https://www.ncnynl.com/archives/201701/1277.html

https://blog.csdn.net/u013453604/article/details/52186375

http://www.cnblogs.com/fuhang/p/9783050.html

https://blog.csdn.net/u013453604/article/details/52167213

https://blog.csdn.net/softimite_zifeng/article/details/78632211

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值