ROS入門 7 建立工作空間與功能包

2021-10-19 01:46:12 字數 2926 閱讀 6495

包括四個主要資料夾

src(**空間):用來放置功能包,功能包的**,配置檔案,launc**件等

build(編譯空間):放置編譯過程當中產生的中間編譯檔案,二進位制檔案,一般用不到

devel(開發空間):放置開發過程中的一些可執行檔案,庫,指令碼等

install(安裝空間):安裝指令安裝的位置,放置最終編譯生成的可執行檔案

注意:devel與install作用類似,只是乙個是開發中,乙個是開發結束後分享發布給客戶使用的乙個結果檔案

如何建立工作空間並編譯

1.建立工作空間:mkdir catkin_ws

進入以自己使用者名稱命名的主資料夾裡,開啟終端建立名(名字可以自己定義)為catkin_ws的資料夾

cd catkin_ws/

進入該資料夾

mkdir src

建立名(不可自定義,必須為src)為src的資料夾,用來 放置功能包和原始碼的

cd src/

進入該資料夾

catkin_init_workspace

把當前資料夾初始化變成ros的乙個工作空間,這是屬性的變化

2.編譯工作空間

cd ~/catkin_ws/

回到工作空間根目錄下做編譯

catkin_make

編譯成功後設定環境變數

ros裡catkin編譯工具所提供的乙個編譯器的指令,通過該指令,會編譯src下面所有功能包的原始碼,結果會放入devel和install裡來

執行後catkin_ws檔案裡會產生devel開發空間; build 編譯空間;並沒有產生install安裝空間,需要手動輸入catkin_make install , 產生install安裝空間

src放功能包的原始碼;

install放置最終編譯生成的可執行檔案,最終,發布給客戶使用的結果檔案

devel是開發空間,放置開發過程中的一些可執行檔案,過程中

build編譯過程中的一些中間檔案,二進位制檔案

設定環境變數:source devel/setup.bash

因為很多可執行檔案都在工作空間裡放置的,為了讓系統找得到這些可執行檔案,故而需要設定環境變數

檢查環境變數:echo $ros_package_path

1.建立功能包建立**時要建立功能包,功能包是ros裡放置原始碼的最小單元,故所有原始碼都必須放到功能包裡而不能放到src下去編譯;

此外注意,同乙個工作空間下,不允許存在同名功能包;不同工作空間下,允許存在同名功能包

建立功能包:catkin_create_pkg [depend1][depend2][depend3]

功能包名

[depend] 指該功能包在編譯的時候需要依賴ros裡哪些其他功能包

舉例:

cd ~/catkin_ws/src

回到src下

catkin_create_pkg test_pkg std_msgs rospy roscpp

test_pkg,該功能包需要依賴rospy和roscpp等;因為該功能包裡要去呼叫ros裡python和c++介面來寫程式,std_msgs是ros定義的一些標準的訊息結構

同時注意,功能包一定要放置到src裡

整個檔案的管理系統,在src裡是功能包,功能包點開之後,定會有cmakelists和package兩個檔案

2.編譯功能包

cd ~/catkin_ws

回到catkin_ws裡

catkin_make

編譯工作空間裡test_pkg功能包

source devel/setup.bash

要去執行功能包裡某乙個程式,需要先去設定一下工作空間的環境變數

針對catkin_ws工作空間裡的乙個環境變數設定(只有設定了環境變數後才可以讓系統找到這個工作區間及對應的功能包)

檢視環境變數

echo $ros_package_path

其中,ros_package_path是ros本身環境變數,ros可以通過該環境變數來查詢ros裡所有功能包的路徑

3.關於功能包裡最重要兩個檔案的作用

主要用來描述功能包裡的編譯規則,編譯的設定(比如怎樣編譯cpp**,編譯時依賴哪些庫)

Ros建立工作空間

裝好ros環境後,總是忘記怎麼建立工作空間,下面做一總結 參考 第一步 建立工作目錄源 空間 mkdir p catkin ws srccd catkin ws srccatkin init workspace第二步 測試編譯 cd catkin ws srccatkin makesource de...

ros建立工作空間

mkdir p dev rosbook myworkspace src 解析 其中 dev rosbook myworkspace 為自定義檔案目錄 cd dev rosbook myworkspace src 進入空間myworkspace下的src資料夾 catkin init workspac...

ROS建立工作空間

系統環境 ubuntu16.04 工作空間 workspace 是乙個存放工程開發檔案的資料夾。src 空間 source space build 編譯空間 build space devel 開發空間 development space install 安裝空間 install space 舉例 ...