首页 > 技术文章 > ros使用QT插件开发

qixianyu 2017-03-21 09:55 原文

使用qt插件开发ros

一 安装

1.0 安装qt5.7

1.1 UBuntu14.04


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

 1.2 Ubuntu16.04

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

二 配置系统使用新的QT

安装完毕,替换

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

把下面的路径改为文件内容成为自己的路径

/opt/qt57/bin
/opt/qt57/lib
改为:
/home/你的用户名/Qt5.7.0/5.7/gcc_64/bin
/home/你的用户名/Qt5.7.0/5.7/gcc_64/lib

三 测试插件

qtcreator

确认文件-》新文件或工程》工程》导入工程》导入ROS工作空间,存在导入ROS工作空间,则成功

四 注意问题:

1 这里我测试了采用源码安装的ros,插件不能知道ros的发布版本,也不能显示ros的头文件,这里没有深入研究,采用的都是默认的值,所以还是采用非源码安装的方式。

2 我的程序在新创建一个工作空间的时候并没有初始化工作空间,所以

echo $ROS_PACKAGE_PATH

并没有新创建的工作空间的路径,如果需要在终端运行,还需要把新创建的工作空间路径加入到~/.bashrc中

3 使用ros_qt插件时,要注意

1 CMakeLists.txt编写正确

2 运行设置中,ROS step如果target中没有内容,很可能是因为你的可执行文件生成到工作空间的build目录中,只有生成在devel目录中才可以找到。

3 运行程序时,输出是在

ROS Terminals中,如果没有,点击

,这里可以选择显示ROS Terminals

4 .workspace中需要添加

<IncludePaths>
   <Directory>/opt/ros/indigo/include</Directory>
</IncludePaths>

添加后的形式可能是这样

<?xml version="1.0"?>
<Workspace>
    <Distribution name="indigo"/>
    <DefaultBuildSystem value="0"/>
    <WatchDirectories>
        <Directory>src</Directory>
    </WatchDirectories>
    <IncludePaths>
             <Directory>/opt/ros/indigo/include</Directory>
    </IncludePaths>
</Workspace>

我的电脑即使添加,或者重启qt都不能包含ros头文件,只有编译一次之后才可以找到ros头文件。

 

推荐阅读