本篇將會介紹ROS的大概架構,分別為ROS官網中介紹的Filesystem、Workspace和Package。
在ROS官方教學中介紹檔案系統的概念一共有二:
別懷疑,他官網真的就這樣兩行就結束了。我看完也是黑人問號XD 直到後來進入實作後才開始慢慢了解為什麼他的架構長這樣,因為ROS最原本的概念就是讓大家可以分享自己實作的成果,也可以去拿別人的函式過來自己用,達到不用造輪子的效果,所以他的核心概念就是一堆自己的跟別人的模組這樣~
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
建立了兩個新的資料夾,分別是build
和devel
,並且在原本的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