ROS基礎(二) 建立工作空間和功能包

2021-10-16 08:12:37 字數 2002 閱讀 2895

ros基礎(二)——建立工作空間和功能包

使用ros實現機械人開發的主要手段是寫**,這些**檔案就需要放置到乙個固定的空間內,即工作空間。

工作空間(workspace)是乙個存放工程開發相關檔案的資料夾。fuerte版本之後的ros預設使用的是catkin編譯系統,乙個典型catkin編譯系統下的工作空間結構如下。

典型的工作空間中一般包括以下四個目錄空間。

1)src:**空間(source space),開發過程中最常用的資料夾,用來儲存所有ros功能包的原始碼檔案。

2)build:編譯空間(build space),用來儲存工作空間編譯過程中產生的快取資訊和中間檔案。

3)devel:開發空間(development space),用來放置編譯生成的可執行檔案。

4)install:安裝空間(install space),編譯成功後,可以使用make install命令將可執行檔案安裝到該空間中,執行該空間中的環境變數指令碼,即可在終端中執行這些可執行檔案。安裝空間並不是必需的,很多任務作空間中可能並沒有該資料夾。

建立工作空間的命令比較簡單,首先使用系統命令建立工作空間目錄,然後執行ros的工作空間初始化命令即可完成建立過程:

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/src

catkin_init_workspace

建立完成後,可以在工作空間的根目錄下使用catkin_make命令編譯整個工作空間:

cd ~/catkin_ws/

catkin_make

編譯過程中,在工作空間的根目錄裡會自動產生build和devel兩個資料夾及其中的檔案。編譯完成後,在devel資料夾中已經產生幾個setup.*sh形式的環境變數設定指令碼。使用source命令執行這些指令碼檔案,則工作空間中的環境變數可以生效。

source devel/setup.bash
為確保環境變數已經生效,可使用如下命令進行檢查:

echo

$ros_package_path

若列印的路徑中已經包含當前工作空間的路徑,則說明環境變數設定成功。

ros中功能包的形式如下:

my_package/

cmakelists.txt

package.xml

......

package.xml檔案提供了功能包的元資訊,也就是描述功能包屬性的資訊。cmakelists.txt檔案記錄了功能包的編譯規則。

ros提供直接建立功能包的命令catkin_create_pkg,該命令的使用方法如下:

catkin_create_pkg 

[depend1]

[depend2]

[depend3]

在執行catkin_create_pkg命令時,使用者需要輸入功能包的名稱(package_name)和所依賴的其他功能包名稱(depend1、depend2、depend3)。例如,我們需要建立乙個learning_communication功能包,該功能包依賴於std_msgs、roscpp、rospy等功能包。

首先進入**空間,使用catkin_create_pkg命令建立功能包:

cd ~/catkin_ws/src

catkin_create_pkg learning_communication std_msgs rospy roscpp

建立完成後,**空間src中會生成乙個learning_communication功能包,其中已經包含package.xml和cmakelists.txt檔案。

然後回到工作空間的根目錄下進行編譯,並且設定環境變數:

cd ~/catkin_ws

catkin_make

source ~/catkin_ws/devel/setup.bash

ROS建立工作空間和功能包

所有的ros程式,包括我們自己開發的程式,都被組織成功能包,而ros的功能包被存放在稱之為工作空間的目錄下。因此,在我們寫程式之前,第一步是建立乙個工作空間以容納我們的功能包。1.建立ros工作空間 其實ros工作空間就是linux下的乙個目錄,建立ros工作空間就是建立乙個linux目錄,只是需要...

ROS建立工作空間和功能包

mkdir p catkin ws src cd catkin ws src catkin init workspace cd catkin ws catkin make編譯完成後,會在工作空間根目錄下自動產生build和devel兩個資料夾及其中的檔案。source devel setup.bas...

9 建立工作空間和ROS功能包

四個資料夾,各自功能如下src 空間,源 和實現 build 編譯空間,編譯過程中的中間檔案 devel 開發空間,編譯生成的庫和指令碼 install 安裝空間,用install指令產生的結果 mkdir p catkin ws src cd catkin ws src catkin init w...