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的調試工具進行調試了,進入調試界面,如下圖所示:
 
參考資料:
[2].Lesson 2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM