zoukankan      html  css  js  c++  java
  • ROS知识(6)----基于Eclipse开发

    可以利用Eclipse集成开发环境进行ROS开发,从而提高研发效率。以色列巴尔伊兰大学的Mr. Roi Yehoshua开设了一门ROS课程,课程2( Lesson 2)讲解了如何利用Eclipse在ROS上进行开发。这里走下总结整理。安装步骤如下: 

    1. 安装Java8

    我们采用Eclipse Neon版本的IDE,所以需要Java8的运行环境,下面为安装Java8的命令,如下所示:

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java8-installer
    sudo apt-get install oracle-java8-set-default

    2. 安装Eclipse Neon

    • 确保Java虚拟机JVM已经安装,如果没有安装,在终端执行以下的命令:
    $sudo apt-get install default-jre
    • 下载Eclipse IDE for C/C++开发平台:

        ----下载地址:http://www.eclipse.org/downloads/

        ----最新的Eclipse Neon版本为:eclipse-cpp-neon-1a-linux-gtk-x86_64.tar.gz

    • 解压Eclipse到你指定的文件夹中。
    • 在终端中,将Eclipse移到系统的目录 /opt,执行如下命令:
    $sudo mv eclipse /opt
    • 创建一个链接,以给所有的用户可以使用,执行如下命令:
    $sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse 
    • 为了方便,弄个Eclipse的快捷方式到桌面
    $sudo gedit /usr/share/applications/eclipse.desktop

    添加如下内容:

    [Desktop Entry]
    Name=Eclipse 
    Type=Application
    Exec=bash -i -c "/opt/eclipse/eclipse"
    Terminal=false
    Icon=/opt/eclipse/icon.xpm
    Comment=Integrated Development Environment
    NoDisplay=false
    Categories=Development;IDE
    Name[en]=eclipse.desktop

    –The bash –i - c command will cause your IDE's launcher icon to load your ROS-sourced shell environment before launching eclipse

    3. 生成Eclipse项目文件

    • 创建工作空间,执行如下代码:
    $ mkdir -p ~/catkin_ws/src
    $ cd ~/catkin_ws/src
    $ catkin_init_workspace
    $ cd ~/catkin_ws
    $ catkin_make
    • 创建一个包first_pkg,执行如下代码:
    $ cd ~/catkin_ws/src
    $ catkin_create_pkg first_pkg std_msgs rospy roscpp 
    • 到catkin的工作空间,利用catkin_make命令,建立一个eclipse的项目,命令如下:
    $ cd ~/catkin_ws
    $ catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"
    • 项目的文件声称在目录 ~/catkin_ws/build里。

    4. 导入项目 

    • 启动 Eclipse 
    • 选择catkin_ws 文件夹作为工作空间文件夹:
     
     
    • 选择File --> Import --> General --> Existing Projects into Workspace
    • 从文件夹~/catkin_ws/build中导入项目
    • 剔除没必要的目录。如果项目比较大,整个项目浏览器会比较的繁杂,为了让项目浏览更简洁,我们做些设置。右击项目build,选择Properties -> Resource,添加一个资源过滤器,如下图所示进行填写。然后选择ok,并应用即可。

      

    5. 添加预编译头文件的路径

    • 默认情况下,Eclipse是不会只能识别到ROS的头文件信息的,为了修复它,作如下操作进行设置:
        –到 Project Properties --> C/C++ General --> Preprocessor Include Paths, Macros, etc. --> Providers tab
        –检查CDT GCC Built-in Compiler Settings [Shared]
     
     
     
    6. 项目结构
    • 项目的源文件在文件夹 "Source directory"中,开发者可以在这个目录下添加源代码。
    7. 添加项目文件
    • 右击src,然后选择New –> Source File, 创建文件 hello.cpp,如下图所示:
      小技巧,Eclipse自动补齐代码快捷键:Ctrl+Space
     
      编写如下代码:
    #include "ros/ros.h"
     
    int main(int argc, char **argv)
    {
        ros::init(argc, argv, "hello");
     
        ros::NodeHandle nh;
        ros::Rate loop_rate(10);
     
        int count = 0;
        while (ros::ok()) // Keep spinning loop until user presses Ctrl+C
        {
            ROS_INFO_STREAM("hello world" << count);
     
            ros::spinOnce(); // Allow ROS to process incoming messages
            loop_rate.sleep(); // Sleep for the rest of the cycle
            count++;
        }
     
    return 0; }

    8. 编译节点

    • 在编译前,需要在包的CMakeLists.txt文件中添加新的编译内容(红色部分),如下所示:
    cmake_minimum_required(VERSION 2.8.3)
    project(first_pkg)
    
    ## Find catkin macros and libraries
    find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs)
    
    ## Declare ROS messages and services
    # add_message_files(FILES Message1.msg Message2.msg)
    # add_service_files(FILES Service1.srv Service2.srv)
    
    ## Generate added messages and services 
    # generate_messages(DEPENDENCIES std_msgs)
    
    ## Declare catkin package
    catkin_package()
    
    ## Specify additional locations of header files
    include_directories(${catkin_INCLUDE_DIRS})
    
    ## Declare a cpp executable
    add_executable(hello src/hello.cpp)
    
    ## Specify libraries to link a library or executable target against
    target_link_libraries(hello ${catkin_LIBRARIES})
    • 按快捷键 Ctrl-B,编译项目
     
    9. 在Eclipse中运行节点
    • 创建新的启动配置,点击 Run --> Run configurations... --> C/C++ Application (double click or click on New)。
    • 选择相应的二进制执行程序 (use the Browse… button),如本例程的执行程序为:~/catkin_ws/devel/lib/first_pkg/hello。

    • 确保roscore已经在终端中运行。
    • 点击Run,结果如下图所示:
    当然也可以在终端中运行。
     
    10. 在Eclipse中调试
    • 为了调试,你需要将编译器设置为调试模式,终端中,到catkin_ws/build目录执行如下代码: 
    $ cmake ../src -DCMAKE_BUILD_TYPE=Debug
    • 重启Eclipse
    • 这样就可以利用Eclipse的调试工具进行调试了,进入调试界面,如下图所示:
     
    参考资料:
  • 相关阅读:
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31
    知也atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31无涯 - I
  • 原文地址:https://www.cnblogs.com/cv-pr/p/4871546.html
Copyright © 2011-2022 走看看