創建ROS軟件包

本教程介紹如何使用roscreate-pkgcatkin創建新的ROS軟件包,並使用rospack列出軟件包的依賴關係。

一個catkin軟件包由什麼組成?

一個包要想稱爲catkin軟件包,必須符合以下要求:

  • 這個包必須有一個符合catkin規範的package.xml文件

    • 這個package.xml文件提供有關該軟件包的元信息

  • 這個包必須有一個catkin版本的CMakeLists.txt文件

    • 如果它是個Catkin元包的話,則需要有一個CMakeList.txt文件的相關樣板

  • 每個包必須有自己的目錄
    • 這意味着在同一個目錄下不能有嵌套的或者多個軟件包存在

最簡單的軟件包看起來就像這樣:

my_package/
  CMakeLists.txt
  package.xml

catkin工作空間中的軟件包

開發catkin軟件包的推薦方法是使用catkin工作空間,但是你也可以單獨開發catkin軟件包。一個簡單的工作空間如下所示:

workspace_folder/        -- WORKSPACE
  src/                   -- SOURCE SPACE
    CMakeLists.txt       -- 'Toplevel' CMake file, provided by catkin
    package_1/
      CMakeLists.txt     -- CMakeLists.txt file for package_1
      package.xml        -- Package manifest for package_1
    ...
    package_n/
      CMakeLists.txt     -- CMakeLists.txt file for package_n
      package.xml        -- Package manifest for package_n

在繼續本教程之前請先按照創建catkin工作空間教程創建一個空白的catkin工作空間。

創建catkin軟件包

下面我們開始創建和構建一個catkin工作空間

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

catkin_make命令在catkin工作空間中是一個非常方便的工具。在你的工作空間中第一次運行它時,它會在src目錄下創建一個CMakeLists.txt的鏈接。

對於ROS Melodic和早期版本的Python 3用戶:注意,如果你從源代碼構建ROS來實現Python 3的兼容性,並適當地設置您的系統(即:安裝所有必需的ROS Python包的Python 3版本,例如catkin),那麼在乾淨的catkin工作區中的第一個catkin_make命令必須是:

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

這將會配置catkin_make使用Python 3,在以後的構建中可以只使用catkin_make

另外,如果你查看一下當前目錄應該能看到builddevel這兩個目錄。在devel文件夾裏面你可以看到幾個setup.*sh文件。source這些文件中的任何一個都可以將當前工作空間設置在環境的最頂層。想要了解更多,請參考catkin文檔。接下來首先source一下新生成的setup.*sh文件:

source devel/setup.bash

要保證工作區被安裝腳本正確覆蓋,需確定ROS_PACKAGE_PATH環境變量包含你當前的工作空間目錄:

 
echo $ROS_PACKAGE_PATH
/home/<username>/catkin_ws/src:/opt/ros/<distro>/share

切換到剛纔創建的空白catkin工作空間中的源文件空間目錄:

cd ~/catkin_ws/src

現在使用catkin_create_pkg命令創建一個名爲beginner_tutorials的新軟件包,這個軟件包依賴於std_msgsroscpprospy

catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

這將會創建一個名爲beginner_tutorials的文件夾,這個文件夾裏面包含一個package.xml文件和一個CMakeLists.txt文件,這兩個文件都已經部分填寫了你在執行catkin_create_pkg命令時提供的信息。

catkin_create_pkg命令會要求你輸入package_name,如有需要還可以在後面添加一些需要依賴的其它軟件包:

catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

catkin_create_pkg命令也有更多的高級功能,這些功能在catkin/commands/catkin_create_pkg中有描述。

構建一個catkin工作區並生效配置文件

現在你需要在catkin工作區中構建軟件包:

cd ~/catkin_ws
catkin_make

工作空間構建完成後,在devel子目錄下創建了一個與你通常在/opt/ros/$ROSDISTRO_NAME下看到的目錄結構類似的結構。

要將這個工作空間添加到ROS環境中,你需要source一下生成的配置文件:

. ~/catkin_ws/devel/setup.bash

軟件包依賴關係

一級依賴

之前在使用catkin_create_pkg命令時提供了幾個軟件包作爲依賴關係,現在我們可以使用rospack命令工具來查看這些一級依賴包。

請參考:cn/ROS/Tutorials/CreatingPackage - ROS Wiki

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章