Clion ROS開發環境設置


在源環境中啟動CLion 

需要告知CLion ROS特定的環境變量。通過運行來源工作空間時,將在當前shell中檢索這些變量

source ./devel/setup.bash

為CLion提供ROS環境變量的最簡單方法是從同一個shell啟動IDE。在獲取工作空間后,您可以鍵入同一終端:

為CLion提供ROS環境變量的最簡單方法是從同一個shell啟動IDE。在獲取工作空間后,您可以鍵入同一終端:

在CLion中打開一個ROS項目

在源環境中啟動CLion后,執行以下操作之一以打開ROS項目:

  • 單擊文件| 打開並選擇ROS工作區的src目錄中的CMakeLists.txt,然后選擇Open as Project。 

  • 單擊文件| 來自Sources的新CMake項目,並選擇工作區的src目錄以從中導入項目。

該CMake的工具窗口會顯示該項目加載的狀態:

 

 

 設置catkin工作空間的構建路徑

默認情況下,CLion將構建輸出放在自動創建的cmake-build-debug或cmake-build-release 目錄中。對於ROS開發,這意味着您將在CLion和運行的控制台中擁有兩個不同的版本catkin_make。

要在IDE和控制台上進行單一構建,需要將CLion構建路徑設置為catkin工作區目錄。為此,請轉到 文件| 設置Ctrl+Alt+S| 構建,執行,部署| CMake並更改兩個字段:

  • 在生成路徑中,設置workspace_folder/build。

  • 在CMake選項中,添加-DCATKIN_DEVEL_PREFIX:PATH=workspace_folder/devel。

 

 

 

 使用啟動文件

您可以在CLion中將ROS節點作為常規應用程序運行和調試。

啟動文件無法直接執行,但您可以使用XML語法突出顯示和完成編輯它們, 並將調試器附加到正在運行的節點。

將調試器附加到正在運行的節點

1、從命令行 運行.launch文件。例如

roslaunch roscpp_tutorials talker_listener.launch

您可以通過該rosnode list命令檢查當前運行的節點列表。在我們的示例中,列表將包含talker和listener:

 

 

 2、呼叫運行| 從主菜單附加到處理或按Ctrl+Alt+F5。

3、通過其PID或名稱連接到所需節點:

示例:創建基本ROS節點,在CLion中編輯並運行它 

在這個例子中,我們將創建一個簡單的ROS包,編輯源代碼,並從CLion運行節點。我們將在Ubuntu 18.04上使用ROS Melodic,並在ROS wiki上使用編寫簡單發布者和訂閱者(C ++)教程 的基本發布者節點 。

創建一個基本的ROS包

創建和構建ROS工作區:

mkdir -p ros_workspace/srccd ros_workspace
catkin_make

在工作區中,創建一個名為my_package的包:

cd src
catkin_create_pkg my_package roscpp rospy std_msgs

啟動CLION

來源工作區:

cd ../../../source ./devel/setup.bash

並在同一終端啟動CLion

sh /opt/clion-2018.2/bin/clion.sh

在CLion中打開包作為項目 

在CLion中,轉到File | 打開並選擇位於包文件夾內的CMakeLists.txt文件,然后選擇將其作為項目打開:

添加源文件並編輯CMakeLists.txt

向項目添加新的源文件:右鍵單擊Project樹中的src,選擇New | C / C ++源文件 並將其命名為my_package.cpp。

將整個talker.cpp文件從Publisher和Subscriber教程復制到my_package.cpp中。

新創建的源添加到的CMakeLists.txt和鏈接其對應程序庫:

add_executable(my_package src/my_package.cpp)
target_link_libraries(my_package ${catkin_LIBRARIES})

之后,重新加載CMake項目,並注意運行/調試配置列表中的my_package:

 

 運行ROS節點

1、在從CLion運行節點之前,在新終端中打開ROS主站:

roscore

2、在CLion,運行22.png的my_package配置。 運行工具窗口將顯示節點輸出:

 

 3、在單獨的終端中,檢查當前活動的ROS主題。如果我們打印消息chatter,輸出將類似於我們在CLion中看到的內容:

 

 現在,如果我們11.png在CLion中停止應用程序,該 rostopic echo /chatter命令將沒有輸出。


免責聲明!

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



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