OpenRTM-aist C++ インストール

このページではOpenRTM-aistのヴァージョン1.1 RELEASE,C++バージョンについて解説します.
本ページでは入門者向け内容ですので,Windowsバージョン,C++版について解説します.


1. パッケージのダウンロード

パッケージをここからダウンロードしていきます.

Visual Studio 2010版を使います.2008でなければ動かないコードはわずかですし,無償のExpress Editionでも簡単にGUIを追加設計できますし,いまさらVC2008で開発する必要性は無いと思っています.
Visual Studio 2013版を使います.2010でなければ動かないコードはわずかですし,無償のVisual Studio Community 2013でも簡単にGUIを追加設計できます.2015では動かないので・・・

64bit版のOpenRTM-aistもありますが,かなりの知識が無いと,Windowsで64bit版開発は難しいと思いますので,32bit版を使って下さい.
1.1.1版からはうまくいくことが多い様ですが,ライブラリが対応していない場合も多いのでしばらくはwindowsではx86 (32bit) を使うことをお勧めしておきます.

1.1 インストールするモジュールのダウンロード(すべてVisual Studio 2010版)

  • JDK
  • Python 2.7.9
  • CMake 3.4
  • Doxygen
  • PyYAML
  • OpenRTM-aist (C++バージョン1.1.1)

!!注意点!!

Visual Studio 2013用と書いてあるリンクからダウンロードしてください.ひとつでも別のバージョンを使っていると動きません.

Python, PyYAML

rtc_templateというツールを使う場合に必要です.IDLをコンパイルする際にも使っています.
同様に公式サイトからPyYAMLもインストールしてください.Python版のRTMをインストールする場合を考えると,バージョン2.6.4がオススメです.

産総研のページにあるパッケージでインストールする場合は,Setup.msiを実行するだけです.この辺の順序は関係ないです(PyYAMLを入れるまえに Pythonを入れます.)

Pythonを自分でインストールする場合は,注意が必要です.
Python2.7.6以上のものでも大丈夫ですが,Windowsの場合はPython3では,Python版のOpenRTM-aistが入りませんので,2.7.9版のものを入れることをお勧めしまsう.
環境変数や,Pythonの扱いになれていない人は,2つ以上のバージョンのPythonを使い分けるのは無理だと思いますので,ほかのバージョンのPythonはアンインストールする方が懸命です.

Pythonをインストールしたら,環境変数PATHに,C:¥Python27とC:¥Python27¥Scriptsを入れます.

JDK7

重要なのは32bit版をインストールすることです.64bit版のEclipseツールも配布されるようになりましたが,パッケージに含まれるRT System Editorは32bit版ですので,32bit版のJDKをインストールしてください.

Eclipse全部入り

つぎにGUIツールです.System Editorが上記のRTミドルウエアに含まれるようになりましたが,RTC開発を行うにはRTC Builderが必要不可欠ですので,このリンクからダウンロードしてください.

Eclipseのインストールや細かい設定は他のサイトに譲ります.GoogleでEclipseで検索すれば十分でしょう.

Eclipseは特にインストールせずに,eclipse.exeを実行すればよいので,Cドライブに直接コピーしてフォルダ名を「eclipse」などとし,eclipse.exeへのショートカットをデスクトップ等に貼っておくとよいでしょう.
*注意 ツール群を使うためには,さらにJavaの実行環境が必要になります.RTミドルウエアのツール群は,JREのバージョン6以降に対応しています.

Visual Studio Community 2013

最後にC++の開発環境です.Visual Studio 2013 Community をダウンロードしてください.

OpenRTM-aist

つぎに,OpenRTM-aistをインストールします.これもSetupを実行するだけです.
やはり再起動するほうが良いと思います.

2. 動作確認

動作確認を行います.

2.1 ネームサーバー起動

ネームサーバーを起動します.スタートメニュー→「OpenRTM-aist 1.1」→「C++」→「tools」→「Start Naming Service」を起動.
ショートカットをスタートメニューに追加しておくと便利ですよ.

2.2 Eclipse起動

Eclipse起動します.メニュー→パースペクティブ→RT System Editorで準備.
ネームサーバーの追加.左側のネームサービスビューのコンセントのアイコンのボタンをクリック.localhostでネームサービスビューに表示される.

Name Server

Connect Name Server

3.3 サンプルRTC起動

スタートメニュー→OpenRTM-aist→C++→example→ConsoleInComp.exeおよび,ConsoleOutComp.exeを起動.
図のようにネームサーバー上にRTCが表示されます.

Confirm RTC

RTC's

3.4 RT System EditorでRTCをつなぐ!

Eclipseのメニュー→ファイル→Open New System EditorでSystem Editorを起動.

RT System Editor

Start RT System Editor

左側のネームサービスビューから,ConsoleInCompとConsoleOutCompを真ん中上段のSystem Diagram上にドラッグ&ドロップする.

Drag & Drop RTC

Drag & Drop RTC

凸があるのがConsoleInComp.凹があるのがConsoleOutCompです.凸が出力ポートで,凹が入力ポートを表しています.この凸と凹をつなげるわけですね.凸と凹をドラッグ&ドロップしてつなぎます.

つなぐとすぐにダイアログが出てきます.これは繋がり(コネクション)自体もオブジェクトですので,そのタイプなどを設定する必要があるからです.
ここでは必ず,「Data Flow Type」を「push」とします.
古いOpenRTM-aistでは,push型の接続しかサポートされていませんでしたので,基本的にpushを選択します.デフォルトでpullが表示されるので,ここで間違いがち.

Connection Profile

Connection Profile

最後にSystem Diagramがアクティブになっている状態で,ツールバーにある再生ボタン(緑の三角)をクリックします.これはAll
Activateボタンで,全部のRTCがアクティブ化されます.

Connection Accomplished

Connection Accomplished

3.5 ConsoleInから数値を送信.

ConsoleInCompのDOS窓を選択し,数値をキーボードで入力.Enterを押す.

RTC's console

RTC's console

数値がRTCの凸(出力ポート)から送信され,ConsoleOutCompに送られます.ConsoleOutCompのDOS窓を確認すると,送信された数値が.やったぜ!

RTC's console

RTC's console

3. 用語の解説

OmniORB

OmniORBはCORBAという枠組みを使うためのブローカーというソフトウェア群です.CORBAとはRTミドルウェアと同じく,分散的コンピューティングを行うための基本ソフトです.OpenRTM-aistでは,他のCORBAミドルウェアにも対応していますが,産総研のサイトからダウンロードでき,とくにコンフィグが必要になりませんから,OmniORBを使ってもよいでしょう.

Python

Python(パイソン)はウェブ系のプログラム開発に使われるスクリプト言語で,オブジェクト指向のプログラムが開発が可能です.OpenRTM-aistのインストール時や開発時にいくつかのスクリプトをPythonで処理しています.このサイトで解説するレベルであれば,Python自体を覚える必要はありません.

PyYAML

PythonでYAMLを扱えるライブラリです.YAMLとは,XMLに似た,データを構造化して記述する方法です.

OpenCV

画像処理のための基本ソフトウェアです.OpenRTM-aistの本体には関係ありませんが,ExampleとしてOpenRTM-aistのパッケージに含まれているプログラムが利用しています.インストールしておいてもよいでしょう.

OpenRTM-aist

RTミドルウェアの本体です.

Eclipse(RTSystem Editor, RTCBuilder)

Eclipseは,IBMが中心となって開発した総合開発環境(IDE)です.
RTSystemEditorは,RTミドルウェア上のコンポーネント群の接続,およびコンフィグレーションを行うためのGUIソフトです.
RTCBuilderは,RTコンポーネントを開発するときに,骨格となるプログラムコードを自動生成するためのツールです.

VisualStudio2008 C++ Express Edtion (VC2008EE)

開発環境です.もちろん正規バージョンのVisual Studio 2008でも開発が可能です.