Qt加载ROS环境 进行界面设计

环境是 ubuntu14.04 + qt 5.8 + ros(indigo)

1.配置qt的启动文件

     我的配置文件在这个路径

sudo gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop
         打开后的配置文件
 
[Desktop Entry]
Type=Application
Exec=bash -i -c /home/asus/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 /home/asus/Qt5.8.0/Tools/QtCreator/bin/qtcreator 

    其中“bash -i -c”是自己加的,后面是相应可执行路径

2.使用现成的Qt-gui模板

     直接用catkin_create_qt_pkg命令创建带Qt界面的ROS package

       先安装,执行如下命令:

sudo apt-get install ros-indigo-qt-ros
        使用 catkin_create_qt_pkg命令创建一个名为test_for_qt的package

cd catkin_for_qt/src/
catkin_create_qt_pkg test_for_qt
如下图

Qt加载ROS环境 进行界面设计_第1张图片

得到的package包含

Qt加载ROS环境 进行界面设计_第2张图片

我们可以使用catkin_make进行编译,得到的可执行文件在

/home/asus/catkin_for_QtGui/devel/lib/路径下,运行roscore,将其托到命令行后即可运行,如图

Qt加载ROS环境 进行界面设计_第3张图片

因为我不是第一次运行,右边的部分已经被隐藏,

现在最大的问题是  我们QT并没有ROS相关的插件(现在有的插件装不了的,不知道为啥),所以刚刚创建的test_for_qt 包 ,我并不能导入QT进行编译,而且也没有./pro文件,

下面让Qt加载ROS相关的库,然后将这个package“移植”进去,其实步骤就一步

3.再配置QT

  先创建一个新的Mai nWindow

Qt加载ROS环境 进行界面设计_第4张图片

然后将上一步得到test_for_qt包里的四个文件拷贝到新建的Mainwindow工作目录下,接着以add existing di r ectory 的方式将四个文件夹导入,并且将原来的Mainwindow文件移除,如图

Qt加载ROS环境 进行界面设计_第5张图片

接下来打开.pro文件,将下面文件添加进去

    INCLUDEPATH += /opt/ros/jade/include   
    DEPENDPATH +=   /opt/ros/jade/include  
    INCLUDEPATH += /home/USERNAME/bzrobot_ws/devel/include  
    LIBS +=  -l:/usr/lib/x86_64-linux-gnu/libboost_thread.so  
    LIBS +=  -l:/usr/lib/x86_64-linux-gnu/libpthread.so 
       
    LIBS += -L/opt/ros/jade/lib -lroscpp -lrospack -lpthread -lrosconsole -lrosconsole_log4cxx -lrosconsole_backend_interface -lxmlrpcpp -lroscpp_serialization -lrostime  -lcpp_common  -lroslib -ltf  -lyaml-cpp -lkdl_conversions  
      
    LIBS += -l:/opt/ros/jade/lib/libroslib.so  

如图

Qt加载ROS环境 进行界面设计_第6张图片

就可以正常编译了

下面是我修改示例的截图

Qt加载ROS环境 进行界面设计_第7张图片


以上参照了如下文章,部分如下:

http://blog.csdn.net/qianniu_/article/details/79014262

http://blog.csdn.net/u014610460/article/details/79355533

http://blog.csdn.net/w383117613/article/details/50392893

你可能感兴趣的:(Qt)