iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
0
自我挑戰組

ROS自學筆記系列 第 3

Day 03 - 邊做邊學ROS架構(1)

本篇將會介紹ROS的大概架構,分別為ROS官網中介紹的FilesystemWorkspacePackage

Filesystem

在ROS官方教學中介紹檔案系統的概念一共有二:

  • Package: 也就是ROS的模組,使用者可以自己定義一個模組,也可以引用別人的模組或是函式庫等等。
  • Manifsts(package.xml): 定義模組的一個文件,每個模組會有一個這樣的xml文件,用來表示該模組的版本、作者、或是其他相依的模組等等。

然後沒了。

別懷疑,他官網真的就這樣兩行就結束了。我看完也是黑人問號XD 直到後來進入實作後才開始慢慢了解為什麼他的架構長這樣,因為ROS最原本的概念就是讓大家可以分享自己實作的成果,也可以去拿別人的函式過來自己用,達到不用造輪子的效果,所以他的核心概念就是一堆自己的跟別人的模組這樣~

Workspace

ROS的工作區於我的理解上來說應該就是所謂的專案,在開始一個新的專案之前我們通常會先建一個新的資料夾,然後把所有的檔案都放在裡面分門別類嘛,所以首先就是需要有個新的資料夾:

$ mkdir catkin_ws
$ cd catkin_ws
$ mkdir src

如此一來,我就有了一個叫做catkin_ws的資料夾,裡面又有另外一個src資料夾,準備用來放程式檔用的。

建完資料夾以後,接著就是將這個資料夾當作我的工作區囉! ROS有一個簡易的工具叫做catkin可以輕鬆建立環境,因此我們只需要在catkin_ws的資料夾底下輸入catkin_make就可以成功建立工作區囉!

~/catkin_ws $ catkin_make

工作區建立成功畫面

在建立完成之後如果使用ls指令,可以看到catkin_make建立了兩個新的資料夾,分別是builddevel,並且在原本的src資料夾裡面也新增了一個CMakeLists.txt的檔案,具體架構如下:

catkin_ws/                   --WORKSPACE
    src/                     --SOURCE SPACE
        CMakeLists.txt       --The 'toplevel' CMake file
    build/                   --BUILD SPACE
        catkin/
        catkin_generated/
        CATKIN_IGNORE
        catkin_make.cache
        CMakeCache.txt
        CMakeFiles/
        cmake_install.cmake
        CTestTestfile.cmake
        gtest/
        Makefile
        test_results/
    devel/                   --DEVELOPMENT SPACE
        env.sh
        lib
        setup.bash
        setup.sh
        _setup_util.py
        setup.zsh

可以看出src就是專門放程式檔的地方,而build則是cmake建置專案時需要的,最後devel是本開發環境的建置。

本來想繼續寫Package的,但是篇幅好像拉太長了,留一點給明天寫好了 XD

參考資料

ROS Tutorials
ROS Catkin Workspaces


上一篇
Day 02 - 環境建置
下一篇
Day 04 - 邊做邊學ROS架構(2)
系列文
ROS自學筆記30

尚未有邦友留言

立即登入留言