四 建立工作空間與功能包

2021-10-10 07:02:00 字數 2349 閱讀 6250

概念:

工作空間(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 install3.設定環境變數

$ 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...