概念:
工作空間(workspace)是乙個存放工程開發 相關檔案的資料夾。(可以理解為一些ide,例如vstudio第一步建立的工程)
包含的四個主要資料夾:
• src:**空間(source space)
用來放置功能包;
• build:編譯空間(build space)
放置編譯過程中所產生的中間檔案,基本上我們不用關心
;
• devel:開發空間(development space)
放置編譯過程中生成的可執行檔案
,一些庫,指令碼等;
• install:安裝空間(install space)
用install命令安裝的東西存放的位置 和 放置結果可執行檔案
;
注:devel和 install裡的內容是有些重複的,所以ros_2裡只保留了 install,但是ros_1裡還是存在devel和 install。
1.建立工作空間
$ mkdir -p ~
/catkin_ws/src //catkin_ws是工作空間的名字,隨便取;src不能變;
$ cd ~
/catkin_ws/src
$ catkin_init_workspace //把當前資料夾變成ros工作空間的乙個屬性;
2.編譯工作空間
$ cd ~
/catkin_ws/
$ catkin_make //這個指令會編譯src下所有原始碼,結果放到devel和 install裡;
注:catkin_make
命令會產生build和devel資料夾,要產生install需再執行catkin_make install
3.設定環境變數
$ source devel/setup.bash //因為很多可執行檔案都是在工作空間裡放置的,為了讓系統找得到這些可執行檔案,需要這樣設定環境變數;
4.檢查環境變數
用echo命令顯示ros的環境變數;$ros_package_path --
-ros的環境變數
$ echo $ros_package_path 查詢並顯示工作空間下所有功能包的路徑
注:所有的原始碼必須放在功能包裡,不能直接放在src下;
命令:
$ catkin_create_pkg
[depend1]
[depend2]
[depend3]..
.這些依賴,是自己建立的功能包所需的功能包(庫),相當於c++裡的#include
例子:1.建立功能包
$ cd ~
/catkin_ws/src
$ catkin_create_pkg test_pkg std_msgs rospy roscpp
建立的test_pkg功能包需要依賴std_msgs rospy roscpp,因為建立的test_pkg功能包需要呼叫python和c++介面來寫程式;
std_msgs是ros定義的一些標準的訊息結構,eg:
int,
bool等;
2.編譯功能包
$ cd ~
/catkin_ws
$ catkin_make
3.設定環境變數
編譯成功之後,要想執行功能包裡的某乙個程式,需要設定工作空間的環境變數。用以下命令;
只有設定了這個環境變數之後,才能讓系統找到這個工作空間;
$ source ~
/catkin_ws/devel/setup.bash
4.檢查環境變數
注:
同乙個工作空間下,不允許存在同名功能包 不同工作空間下,允許存在同名功能包
注:
首先每個功能包都有這兩個檔案。
package.xml
描述功能包的編譯規則;
ROS建立工作空間和功能包
所有的ros程式,包括我們自己開發的程式,都被組織成功能包,而ros的功能包被存放在稱之為工作空間的目錄下。因此,在我們寫程式之前,第一步是建立乙個工作空間以容納我們的功能包。1.建立ros工作空間 其實ros工作空間就是linux下的乙個目錄,建立ros工作空間就是建立乙個linux目錄,只是需要...
ROS 建立工作空間以及功能包
src 空間 build 編譯空間 devel 開發空間 install 安裝空間 一 建立工作空間 1 home資料夾下建立catkin ws資料夾 catkin ws資料夾下建立src資料夾。2 src資料夾下開啟終端,輸入 catkin init workspace將資料夾初始化成工作空間。二...
ROS建立工作空間和功能包
mkdir p catkin ws src cd catkin ws src catkin init workspace cd catkin ws catkin make編譯完成後,會在工作空間根目錄下自動產生build和devel兩個資料夾及其中的檔案。source devel setup.bas...