iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 4
0
自我挑戰組

ROS自學筆記系列 第 4

Day 04 - 邊做邊學ROS架構(2)

延續上一篇,接著我們要來講Package啦!

Package

Package就是所謂的模組,我們可以引用別人的模組也可以自己寫一個模組出來,而上一篇介紹的catkin工具可以輕易的在我們的workspace中建立package,其語法如下:

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

其中package_name就是我們自定義的模組名稱啦!後面的depend1, 2, 3則是可以在建立該模組時先預設好其相依的模組,是不是很方便呢! 就讓我們來實作看看吧~

首先進入我們上次建立好的workspace中,並將package建立在src資料夾底下:

$ cd catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

就這樣,我們建好了一個名為beginner_tutorials的package,其後的std_msgsrospyroscpp則是其相依的模組,分別跟ROS的資料型別、python和c++語法有關。
建好package後,就會發現在本來的src底下,多了一個beginner_tutorials的資料夾,其檔案結構會長得像這樣:

catkin_ws/                 -- WORKSPACE
    src/                   -- SOURCE SPACE
        CMakeLists.txt     -- 'Toplevel' CMake file, provided by catkin
        beginner_tutorials/
            CMakeLists.txt     -- CMakeLists.txt file for beginner_tutorials
            package.xml        -- Package manifest for beginner_tutorials
            include/
            src/

beginner_tutorials資料夾底下有四個檔案,其中include/src/是給我們放標頭檔和實作檔用的,CMakeLists.txt是給cmake建檔用的,而package.xml就是上一篇檔案系統所提到的manifest囉!
來看看package.xml內都寫了些什麼
點進去package.xml可以看到裡面就是一些跟此package相關的資訊,例如版本號、功能描述、作者資訊等等,方便其他人如果想要使用這個package,看這個xml檔就可以了解這個package在做什麼了。而在這個xml檔底下,也有列出此package用了哪些相依模組,因此如果在初始化的時候漏加了那些模組,只要到這個xml檔底下新增就可以囉!

建立完package後,回到上一層的資料夾再執行一次catkin_make,可以看到在建置的時候新增了beginner_tutorials這個package囉!
建置完成畫面

最後為了未來方便操作,將這個workspace放入環境變數中,之後只要使用roscd就可以快速進入該工作區囉!

$ echo "source /home/user/catkin_ws/devel/setup.bash" >> ~/.bashrc

使用roscd進入工作區圖

參考資料

ROS Package std_msgs
ROS Package roscpp
ROS Package rospy
ROS 在已建立的package中新增相依模組


上一篇
Day 03 - 邊做邊學ROS架構(1)
下一篇
Day 05 - ROS Nodes
系列文
ROS自學筆記30

尚未有邦友留言

立即登入留言