• ubuntu18.04 在QT中添加ros环境搭建 亲测可用


    环境 :

        Ubuntu 18.04 LTS

    开始前准备工作

           ubuntu18 安装ROS   参考  http://wiki.ros.org/melodic/Installation/Ubuntu

    1、在ROS环境下安装 QT Creator


    第一步 安装Qt Creator

             Ubuntu系统库自带的qtcreator并没有ROS插件,需要自己通过ppa方式安装,网上多是基于14.04版本的,且较为繁琐,并不推荐。这里要介绍的是带有ROS插件的Qt Creator安装,链接如下:
    ros-qtc-plugin How to Install (Users)

    下载文件名为  qtcreator-ros-bionic-latest-offnline-installer.run,进入文件所在目录,使用如下命令安装:

    chmod +x qtcreator-ros-bionic-latest-offnline-installer.run
    sudo
    ./qtcreator-ros-bionic-latest-offnline-installer.run


    弹出安装界面,按链接中的步骤一步步走即可。

    第二步 安装 ROS 的 QT 相关功能包

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

     

    第三步 测试 QT 功能包


    3.1 新建工作空间,并新建一个名为 hello 的  qt功能包

    mkdir -p qt_ws/src 
    cd qt_ws/src
    catkin_create_qt_pkg hello roscpp rospy std_msgs //注意这里是 catkin_create_qt_pkg,不是 catkin_create_pkg
    cd ..
    catkin_make


    3.2 运行节点

    source devel/setup.bash
    
    rosrun hello hello


    出现以下软件弹窗证明 Q T 功能包测试成功

    2.使用Qt Creator开发ROS

       为了开发ROS,首先需要创建工作空间,然后创建程序包,接下来根据需要编写消息文件、服务文件,动作文件等资源文件,然后利用catkin_make编译生成相应的编程语言目标文件,最后创建节点、launch文件、机器人模型等。
    Qt Creator为开发ROS程序提供了良好的代码编辑、编译、调试工具,在本小节中,我们将介绍如何利用Qt Creator开发一个名为“Hello ROS”的基本节点。
    1.创建工作空间

    首先,打开QtCreator的“New Project”,并选择“Other Project”,选择“ROS Workspace”模板,如图1所示:

                         图1

    选择ROS Workspace创建项目
    然后,设置项目名为catkin_ws,设置工作空间路径为~/ros/catkin_ws,其中~代表当前用户目录。ROS版本默认选择Melodic,编译系统选择CatkinMake,设置完成后点击“下一步”。设置工程名和位置如图2所示:

     
    最后,设置GIT、SVN、CVS等版本控制系统,默认无。点击“完成”按钮即可完成工作空间的创建,如图3所示:

     
    ROS会创建catkin_ws.workspace文件设定ROS版本和编译系统,并创建src目录和工作空间的CMakelists.txt文件,CMakelists.txt文件对catkin编译系统进行了配置,如图4:


    2.创建程序包

    工程创建完之后,就可以创建程序包了。右键点击图4的src目录,选择“New File”创建程序包,在弹出的界面选择ROS–>Package,然后点击“Choose”,如图5所示:

     
    在弹出的窗口中,设置包名及路径,默认为src目录,在所示的Catkin中添加依赖roscpp、rospy、std_msgs,依赖之间用逗号隔开,这意味着该程序包支持C++和Python两种开发语言,并支持ROS标准消息输出,最后点击“Next”,如图6所示:


    最后弹出工作空间和版本控制界面,程序包“example_01”就会被添加到工作空间catkin_ws中,界面如图7所示:


    点击“完成”按钮即可完成程序包的创建。创建完成后,ROS会自动地在相应的目录下初始化生成CMakeLists.txt、Package.xml等文件和include、src等目录。
    然而,在QtCreator左侧栏看不到新添加的包,但系统中已经存在相应的文件。猜测应该是QtCreator的bug。此时关闭工程,重新导入可解决。


    3.创建节点

    接下来创建节点,右键点击程序包example_01下的目录src,选择“Add New”,QtCreator支持基本节点、发布者节点、订阅者节点、服务端节点、客户端节点、launch文件、URDF文件等的创建,并提供了基本的模板。在此我们选择“Basic Node”,点击“Choose”(为节省篇幅,不再重复截图)。
    在弹出的新建基本节点界面中,设置文件名为hello.cpp,文件路径默认为/home/simon/ros/catkin_ws/src/example_01/src,如图8所示:

     
    点击“下一步”按钮作进一步配置,然后点击“完成”将hello.cpp文件添加到程序包example_01中。
    自动生成的hello.cpp文件仅对ROS进行初始化并创建了一个节点句柄,内容如下:

    #include <ros/ros.h>
    
    int main(int argc, char **argv)
    {
      ros::init(argc, argv, "hello");
      ros::NodeHandle nh;
    
      ROS_INFO("Hello world!");
    }


    接下来需要编辑文件example_01/CMakeLists.txt(注意不要搞错哦,不要和catkin_ws/src目录下的CMakeLists.txt混淆),配置可执行文件和目标链接库,可链接到ros/ros.h,可执行文件名为hello,内容如下:

    //添加可执行文件
    add_executable(hello src/hello.cpp)
    //将可执行文件和库文件链接
    target_link_libraries(hello
        ${catkin_LIBRARIES}
    )



    4.编译

    网上的资料都是点击左下角的三角型进行build,但是我在编译的时候出现以下的错误

    16:12:51: 无法启动进程"catkin" build --cmake-args -G 'CodeBlocks - Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug

    Error while building/deploying project catkin_ws (kit: 桌面)

    When executing step "CatkinTools Step"

    找了很多资料,按照步骤去做都没有解决,

    索性 我直接在终端里输入命令去编译,运行

    catkin_make
    source devel/setup.bash rosrun example_01 hello
    Talk is cheap, show me the code
  • 相关阅读:
    POJ2778 DNA Sequence AC自动机上dp
    codeforces732F Tourist Reform 边双联通分量
    codeforces786B Legacy 线段树优化建图
    洛谷P3588 PUS 线段树优化建图
    codeforces1301D Time to Run 模拟
    codeforces1303B National Project 二分或直接计算
    codeforces1303C Perfect Keyboard 模拟或判断欧拉路
    codeforces1303D Fill The Bag 二进制应用+贪心
    python之路——使用python操作mysql数据库
    python之路——mysql索引原理
  • 原文地址:https://www.cnblogs.com/birdBull/p/14914185.html
Copyright © 2020-2023  润新知