[Documentation] [TitleIndex] [WordIndex

catkin パッケージはスタンドアロンプロジェクトとしてビルドすることができ、通常のcmake プロジェクトと同じような方法でビルド出来ます。しかし catkin はワークスペースの概念も提供しており、このワークスペース上で複数の、相互依存パッケージをすべて一緒に、一度でビルドすることが出来ます。

Catkin Workspaces

catkin workspace はフォルダで、ここで変更、ビルド、そして catkin パッケージをインストールします。これは REP 128 に明記されています。以下は推奨されている典型的な catkin ワークスペース のレイアウトです:

workspace_folder/         -- WORKSPACE
  src/                    -- SOURCE SPACE
    CMakeLists.txt        -- The 'toplevel' CMake file
    package_1/
      CMakeLists.txt
      package.xml
      ...
    package_n/
      CMakeLists.txt
      package.xml
      ...
  build/                  -- BUILD SPACE
    CATKIN_IGNORE         -- Keeps catkin from walking this directory
  devel/                  -- DEVELOPMENT SPACE (CATKIN_DEVEL_PREFIX で設定されている)
    bin/
    etc/
    include/
    lib/
    share/
    .catkin
    env.bash
    setup.bash
    setup.sh
    ...
  install/                -- INSTALL SPACE (CMAKE_INSTALL_PREFIX で設定されている)
    bin/
    etc/
    include/
    lib/
    share/
    .catkin             
    env.bash
    setup.bash
    setup.sh
    ...

catkin workspace は、ソフトウェア開発のプロセスで違う役割を提供する、最大4つまでの異なるspacesを含むことができます。

Source Space

source space contains a symbolic link to catkin's boiler-plate 'toplevel' CMakeLists.txt file. This file is invoked by CMake during the configuration of the catkin projects in the workspace. It can be created by calling catkin_init_workspace in the source space directory. source space は、catkin パッケージのソースコードが含まれています。ここは自分がビルドしたいパッケージのソースコードを、解凍/チェックアウト/クローンできる場所です。 source space の中の各フォルダは、1つ以上の catkin パッケージを含んでいます。このspaceは、設定、ビルド、インストールすることによって変化がないようにすべきです。 source space の root は catkin の雛形の‘toplevel’CMakeLists.txtファイルへのにシンボリック・リンクを含んでいます。このファイルはワークスペースの catkin プロジェクトの構成中に、CMakeによって呼び出されます。これは、 source space ディレクトリの中で catkin_init_workspace の呼び出しで生成することができます。

Build Space

build space は、CMakeが、 source space の中のcatkin パッケージをビルドを実行する場所です。CMake と catkin はここにそれらのキャッシュ情報や他の中間ファイルを保持します。 build space は、ワークスペースの中に含まれている必要がなく、また、 source space の外にある必要もありませんが、ワークスペースの中にあることが推奨されます。

Development (Devel) Space

development space (または devel space) は、インストールに先駆けてビルドターゲットが置かれる場所です。 devel space の中でターゲットが編成される方法は、これらがインストールされた時のレイアウトと同じです。これは有益なテストと開発環境を提供し、インストールステップを呼び出しを必要としません。devel space の位置はcatkin の特有な CMake 変数 CATKIN_DEVEL_PREFIX によってコントロールされ、 <build space>/develspace がデフォルトとなります。 CMakeユーザーがビルドフォルダの中でcmake ..を呼び出し、カレントディレクトリの外側で変更する際に、CMakeユーザーが混乱するかもしれないので、これがデフォルトの振る舞いとなっています。しかし、devel space ディレクトリを build space ディレクトリの同等のものであるようにセットすることは推奨されます。

Install Space

ターゲットがビルドされたら、ターゲットは通常make installコマンドによって、 install space にインストールされるでしょう。install space はワークスペースの中に含まれている必要がありません。install spaceCMAKE_INSTALL_PREFIXによって設定されるため、デフォルトは /usr/localとなりますが、ここを使うべきではありません(アンインストールが不可能近く、複数のROSディストリビューションの利用も機能しないため)。

Result space

開発スペースまたはインストール・スペースでもありえるフォルダを参照する時は常に、総称の用語である result space が使われます。

catkin パッケージをビルドする

catkin パッケージは、標準的な cmake のワークフローを使ってビルド出来ます。例えば、'cmake <path/to/source space>'、 'make'、そして 'make install' の全てを build space ディレクトリから呼び出すというものです。 build space は、どこにでも配置できますが、通常、ワークスペースに、 source space と同じレベルで配置します。

より詳細な説明は、 Tutorials を参照してください。

catkin パッケージをインストールする

rosbuildから移行することの主要な理由の1つは、それが適切なインストールターゲットを欠いたことです。これはROSパッケージが正規のシステムパッケージのように取り扱われることを阻み、配布をより難しくしました。catkin はCMakeによって、標準に準拠したインストールレイアウトを促進します。したがって、自分のパッケージの準備ができ次第、他の人が使うようシステムにそのパッケージをインストールするか、自分のパッケージを deb や rpmのようなシステムディストリビューションのためのパッケージにすることが、より容易に出来ます。

Overlays

ROSは多数のパッケージの非常に大きな集まりで、その多くが追加され、修正され続けています。ROSが複雑なため、ほとんどのユーザはソースからROSのすべてをビルドするわけではなく、むしろ、ビルド済みのバイナリパッケージ(Ubuntuにおける.debパッケージなど)をインストールします。これらのパッケージはシステムにインストールされます。通常は、/opt/ros/distribution_nameです。ユーザは、自分のパッケージを特定のディストリビューションに対してビルドするか、または様々なインストールされたディストリビューションから部分を組み合わせるオプションを持っています。例えば、開発者が自身のワークスペースでnodelet_coreなどのROSパッケージへのアップグレードに取り組んでいるとすると、その開発者はコードを修正し、ビルドしたいでしょうし、 nodelet_core ターゲット(ビルドかランタイムかどうかに関わらず)に依存するあらゆるターゲットを保持して、自身のバージョンでも、システムにインストールされていないバージョンでも使いたいでしょう。これを実現するために、ROSは、ビルドシステムが複数のパッケージインストールを横断して依存状態を見つけることができる、overlaysの概念を持っています。

環境設定ファイル

バイナリの catkin パッケージは、Shell環境を拡張した環境設定ファイルを含んでいるので、その位置にインストールされたあらゆるリソースを見つけて使うことが出来ます。この概念は後で詳しく説明しますが、今のところ、インストールディレクトリのディストーションのルートに含まれているセットアップファイルを source すべきです (通常、 /opt/ros/<ros_distribution_name>)。例えば、Ubuntu の ROS Hydro では、環境設定ファイルは以下のように配置されているでしょう:

/
  opt/
    ros/
      hydro/
        setup.bash -- Environment setup file for Bash shell
        setup.sh   -- Environment setup file for Bourne shell
        setup.zsh  -- Environment setup file for zshell
        ...

To setup your environment to use the /opt/ros/hydro installation space, source the setup file for your shell: /opt/ros/hydro インストールスペース を使えるよう環境を設定するために、setup ファイルをsourceしてください。:

source /opt/ros/hydro/setup.bash

2024-04-13 12:42