ROS有很多架構及概念,例如工作空間,功能包,消息,服務等等。
我們先從最開始的工作空間說,工作空間在其它里面,有的叫作項目,有的叫作解決方案。其實就是一個項目的根目錄地址。
例如,我們在/home里創建一個工作空間叫作workspace的。
注意,ros的所有運行的程序文件都要寫在叫作src的文件。
之后我們可以先嘗試在terminal中進入workspace中,
使用 cd ~/workspace/ 指令進入
可以使用mkdir src 指令創建文件夾src。
在workspace 的根目下catkin_make,就可以編譯整個項目了
(注意,catkin_make 要在workspace根目錄下面使用,不要在其它文件夾下編譯 。)
之后就是功能包了,
在src文件中,我們需要進入src文件夾里。
通過cd ./src進入
使用catkin_create_pkg 名稱 創建你想要的package。
同樣的,在package文件夾下也要建立一個src文件夾,
並且將所有的執行文件,節點文件要放在這里面。
(注意,catkin_make會在workspace中生成三個文件夾,一個install,一個devel,一個build)
其實catkin_make
實際和下面的指令是等效的
$ cd ~/workspace $ cd src $ catkin_init_workspace $ cd .. $ mkdir build $ cd build $ cmake ../src -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../devel $ make
之后就是消息,在相應的package下,建立相關的消息,可參考ROS Wiki中的章節:
http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv
在package根目錄下創建msg文件夾寫入msg文件。
這些就是最基本的文件夾結構和文件框架。
示意圖可以更清楚地表示這些結構。
workspace_folder/ -- WORKSPACE src/ -- SOURCE SPACE CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin package_1/ src/ node.cpp include/ CMakeLists.txt -- CMakeLists.txt file for package_1 package.xml -- Package manifest for package_1 ... package_n/
msg/
srv/ src/ node.py include/ CMakeLists.txt -- CMakeLists.txt file for package_n package.xml -- Package manifest for package_n
一個基本的ros項目的文件結構基本就是這樣啦。