1. 程式人生 > >2、ROS使用工作空間

2、ROS使用工作空間

一、引言

本篇中,我們首先會展示catkin_make如何構建package,然後演示在不使用catkin_make的情況下手動構建,從而加深對catkin_make工作流程的理解。

二、使用catkin_make

1、使用catkin_make的典型工作流是這樣的:

$ cd ~/catkin_ws/src/beginner_tutorials/src
# 新增/編輯 原始碼
$ cd ~/catkin_ws/src/beginner_tutorials
# 更新 CMakeFiles.txt 使其與原始碼的更改同步
$ cd ~/catkin_ws
$ catkin_make -DCMAKE_BUILD_TYPE=Release 

可以看到的devel的目錄結構如下:

devel/
├── env.sh
├── lib
│   └── pkgconfig
│       ├── beginner_tutorials.pc
│       ├── newpack.pc
│       └── turorials.pc
├── setup.bash
├── setup.sh
├── _setup_util.py
├── setup.zsh
└── share
    └── beginner_tutorials
        └── cmake
            ├── beginner_tutorialsConfig.cmake
└── beginner_tutorialsConfig-version.cmak

這將在構建空間(~/catkin_ws/build)中構建原始碼空間 (~/catkin_ws/src)中的任何package。原始碼將保留在原始碼空間(~/catkin_ws/src)中,而庫檔案、可執行檔案等由原始碼生成的檔案將被放置在構建空間(~/catkin_ws/build)中。

如果想要像使用make命令一樣使用引數,你需要這樣使用catkin_make:

$ cd ~/catkin_ws
$ catkin_make install

這等價於:

cd ~/catkin_ws/build && make install

這將會建立一個’install’資料夾,且包含自己的setup.*sh檔案,執行其中之一,當前的環境會由devel空間替換為install空間。

注意,只能使用install空間和devel空間之一。

二者優劣比較:

  • 使用devel空間,不必每次都執行install,這在使用python和執行測試時很有意義。
  • 使用install空間,則可以方便的釋出package和及將package安裝到系統。

使用引數將寫好的package安裝到系統:

# This is an example
$ cd ~/catkin_ws
$ catkin_make install -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy  # might need sudo

2、新增包到工作空間

使用如下命令在已編譯過的工作空間中新增新的package:

$ catkin_make --force-cmake

如果想檢視catkin_make的具體呼叫的命令,使用如下引數:

$ catkin_make -DCMAKE_VERBOSE_MAKEFILE=ON

三、不使用catkin_make構建

留待後續課程深入。