zoukankan      html  css  js  c++  java
  • ros使用QT插件开发

    使用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头文件。

  • 相关阅读:
    markdown基础使用技巧
    用ps实现提高照片的清晰度
    正则表达式匹配:中、日、韩文
    解决"$ is not defined" 亲自体验
    [NLP] 相对位置编码(一) Relative Position Representatitons (RPR)
    [NLP] cs224n-2019 Assignment 1 Exploring Word Vectors
    [Deep Learning] GELU (Gaussian Error Linerar Units)
    [Python] 等号赋值, copy, deepcopy的区别
    [微积分] 利用极坐标计算二重积分
    [c++] C++多态(虚函数和虚继承)
  • 原文地址:https://www.cnblogs.com/qixianyu/p/6592922.html
Copyright © 2011-2022 走看看