2.1 建立catkin workspace並且讓其在shell中可見
catkin workspace:
此為一個可在其中modify, build以及install catkin packages的資料夾
基本上我們會有如下的結構:
workspace_folder/ # workspace
src/ # source space
CMakeLists.txt # the 'toplevel CMake file'
package_1/
CMakeLists.txt
package.xml # package的描述文件, 比如作者, file dependency等
...
...
package_n/
CATKIN_IGNORE # catkin會忽略這個package
CMakeLists.txt
package.xml
...
build/ # build space
CATKIN_IGNORE # catkin會忽略這個資料夾
...
devel/ # development space
...
install/ # install space(set by CMAKE_INSTALL_PREFIX)
...
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
此時在catkin_ws下可以看到'build'和'devel'兩個文件夾
接下來我們要將目前這個workspace裡面的檔案可以經由ros的命令來在shell中控制
因此我們要source新生成的setup.*sh文件
source devel/setup.bash
可以檢查一下ROS_PACKAGE_PATH是否包含目前的workspace
echo $ROS_PACKAGE_PATH
/home/<user name>/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
2.2 名詞介紹
* **Packages**: 為ROS code當中的software organization unit, can contain libraries, executables, scripts or other artifacts.
* **Manifests (package.xml)**: 為描述package的檔案, 定義package間的dependency來獲取meta information about the package like version, maintainer, license, etc...
2.3 一些命令介紹
rospack:獲得package的information
rospack find roscpp
輸出/opt/ros/indigo/share/roscpp
roscd: 可以直接以package為單位的去切換資料夾 在任意路徑中輸入
roscd roscpp pwd
輸出/opt/ros/indigo/share/roscpp
roscd只能切換到路徑已包含在ROS_PACKAGE_PATH此環境變量中的package 可以用以下命令檢查
echo $ROS_PACKAGE_PATH
可以看到所有保存有ROS package的路徑, 並且每個路徑以冒號分隔 /opr/ros/indigo/base/install/share:opt/ros/indigo/base/install/stacks
因此再提醒一次, 當建立好新的package後要source devel/setup.*sh來保證目前的工作環境中的package已被加到環境變數中
roscd也可以接換到子目錄
roscd roscpp/cmake
pwd
輸出ope/ros/indigo/share/roscpp/cmake
- rosls
跟roscd一樣概念, 以package為單位去列出目錄內容
輸出cmake package.xml srvrosls roscpp_tutorials