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為單位去列出目錄內容
    rosls roscpp_tutorials
    
    輸出cmake package.xml srv

results matching ""

    No results matching ""