ソースからのビルド (Windows編)

OpenRTM-aist 本体に手を加えたうえで Windows 上で利用したい場合は、Windows 用ソースパッケージを自分でビルドするができます。 ここでは、ダウンロードページやリポジトリからソースを取得し Windows 上で OpenRTM-aist をビルドする方法を解説します。

Windows 上での OpenRTM-aist のビルドは、環境の整備やインストーラの作成など、Windows 上での様々な知識が必要となります。 本ドキュメントは、Windows 上でのプログラム開発やバッチファイル等の基本的な知識がある方を対象としています。

Windows 用ソースコード

Windows 用の OpenRTM-aist (C++版) ソースパッケージは Linux 用のソースとは別に配布されています。 ソースコードの内容は全く同じですが、以下の部分が異なっています。

  • 文字コード (Windows: Shift-JIS、Linux: EUC)
  • Visual Studio のソリューションを含む
  • Visual C++ のプロジェクトファイルを含む
  • msi インストーラ作成環境を含む

ソースコードの構成

図に示すように、オリジナルは subversion リポジトリのソースコードで、そのソースコードから、Linux上で、

  • Linux/Unix 用ソースコード配布パッケージ
  • Windows 用ソースコード配布パッケージ

の2種類を作成する構成になっています。

openrtm_src_dist_ja.png
OpenRTM-aist のソースの構成

リポジトリから取得した最新のソースコードを Windows で利用する場合は、一旦 Linux で Windows 用のソースコードを生成する必要があります。

ビルド環境

ビルドに必要な環境、ライブラリは以下の通りです。

  • Visual C++
    • Visual C++ Express Edition でも利用可能です
  • omniORB

Visual C++/Visual Studio

Windows 用のバイナリをビルドするためには、Visual C++ 開発環境が必要です。 現在対応している Visual C++ は Visual C++ 2008、2010、2012、2013 です。

Visual C++ Express Edition は Microsoft が無償で提供する C++ の開発環境で、MFC や ATL などは利用できませんが、Windows アプリケーション (Win32アプリケーション) を開発することができます。 OpenRTM-aist を利用したコンポーネント開発でも、MFC や ATLなどを利用しないコンポーネントは Visual C++ Express Edition のみで開発することができます。 下記リンクから ISO イメージをダウンロードしてインストールした上で、Microsoft Live ID を取得してライセンス(無料)を取得してください。

omniORB

OpenRTM-aist のビルドには omniORB 4.1.7(2015/03/31現在)のライブリが必要です。 openrtm.org が提供するビルド済みバイナリパッケージを下記リンク先に用意してあります。 環境に合わせて適切なものをダウンロードし、適当な場所 (以下では C:\distribution\omniORB を仮定) に展開してください。

環境変数: OMNI_ROOT

OMNI_ROOT に設定したディレクトリー以下は以下のような構造になっている必要があります。

 <OMNI_ROOT>
  + bin
  |  + scripts
  |  + x86_win32
  + idl
  |  + COS
  + include
  |  + COS
  |  + omniORB4
  |  |  + internal
  |  + omnithread
  |  + omniVms
  + lib
  |  + python
  |  |  + omniidl
  |  |  + omniidl_be
  |  |     + cxx
  |  |        + dynskel
  |  |        + header
  |  |        + impl
  |  |        + skel
  |  + x86_win32

WiX

1.1.1-RELEASE 版ではソースに含まれているインストーラー作成コードのメンテナンスは行っておりません。

WiX (Windows Installer XML) は Windows の msi インストーラをコマンドラインベースのツール群で作成することを目指しているオープンソースのプロジェクトです。

OpenRTM-aist は Windows 用のインストーラーを WiX を利用して作成しています。 インストーラーまで作成する場合には、WiX を予めインストールしておいてください。

Python

ビルドの途中でいくつかの Python スクリプトを利用するので Python 2.7 が必要になります。 以下のサイトから最新のものを取得しインストールしてください。

インストーラーを起動すると、ウィザードで幾つか選択する部分がありますが、 デフォルトのままでインストールしてかまいません。

ソースパッケージの取得

まずソースコード OpenRTM-aist-1.1.1-win32.zip をダウンロードし、適当なディレクトリーに展開します。

バッチファイルの修正

build.bat の先頭に以下のような部分があります。これらが、それぞれ適切な値に設定されているかを確認してください。 
ARCH、VC_VERSION の設定については、このバッチファイルに記述されている説明をご覧ください。

 set RTM_ROOT=%~dp0
 set COIL_ROOT=%RTM_ROOT%\coil
 set OMNI_ROOT=C:\distribution\omniORB-4.1.7-win64-vc12
 if not DEFINED ARCH       set ARCH=x86_64
 if not DEFINED VC_VERSION set VC_VERSION=12
 if not DEFINED PYTHON_DIR set PYTHON_DIR=C:\Python27_x64

ビルド

以上の準備が完了したら、ビルドを行います。build.bat をダブルクリックし、起動すれば自動でビルドが始まります。

インストール

すべてが正しくビルドできたら次のことを行い、インストールを完了させます。

  • 環境変数 RTM_ROOT を設定: OpenRTM-aist のディレクトリーを環境変数 RTM_ROOT に設定してください。
  • DLL へのパスを通す: DLL をパスの通った場所にコピーする、あるいは、環境変数 PATHに%RTM_ROOT%\bin を追加します。
  • 環境変数 PATH の設定: 環境変数 PATHに%RTM_ROOT%\binだけでなく%RTM_ROOT%\utils\rtc-templateも登録することをお勧めします。

以上で、OpenRTM-aist のインストールは終了です。