このページでは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でネームサービスビューに表示される.
3.3 サンプルRTC起動
スタートメニュー→OpenRTM-aist→C++→example→ConsoleInComp.exeおよび,ConsoleOutComp.exeを起動.
図のようにネームサーバー上にRTCが表示されます.
3.4 RT System EditorでRTCをつなぐ!
Eclipseのメニュー→ファイル→Open New System EditorでSystem Editorを起動.
左側のネームサービスビューから,ConsoleInCompとConsoleOutCompを真ん中上段のSystem Diagram上にドラッグ&ドロップする.
凸があるのがConsoleInComp.凹があるのがConsoleOutCompです.凸が出力ポートで,凹が入力ポートを表しています.この凸と凹をつなげるわけですね.凸と凹をドラッグ&ドロップしてつなぎます.
つなぐとすぐにダイアログが出てきます.これは繋がり(コネクション)自体もオブジェクトですので,そのタイプなどを設定する必要があるからです.
ここでは必ず,「Data Flow Type」を「push」とします.
古いOpenRTM-aistでは,push型の接続しかサポートされていませんでしたので,基本的にpushを選択します.デフォルトでpullが表示されるので,ここで間違いがち.
最後にSystem Diagramがアクティブになっている状態で,ツールバーにある再生ボタン(緑の三角)をクリックします.これはAll
Activateボタンで,全部のRTCがアクティブ化されます.
3.5 ConsoleInから数値を送信.
ConsoleInCompのDOS窓を選択し,数値をキーボードで入力.Enterを押す.
数値がRTCの凸(出力ポート)から送信され,ConsoleOutCompに送られます.ConsoleOutCompのDOS窓を確認すると,送信された数値が.やったぜ!
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でも開発が可能です.