ROBOMEC2007チュートリアル RTミドルウエア講習会 日時:2007年5月10日 13:30~17:30 場所:ホテル メトロポリタン秋田 4F きりの間
RTミドルウエア講習会 第1部:OMG標準準拠ミドルウェアOpenRTM-aist-0.4.0について 13:30-13:50 第1部:OMG標準準拠ミドルウェアOpenRTM-aist-0.4.0について 担当:安藤慶昭 (産総研) 概要:2006年11月にOMG (Object Management Group) で採択された RTコンポーネント標準仕様のおよび、 これに準拠したRTミドルウエアの 新しいリリース OpenRTM-aist-0.4.0の概要を解説します。 14:00-15:00 第2部:OpenRTM-aist-0.4.0の環境構築 担当:安藤慶昭(産総研) 概要:OpenRTM-aist-0.4.0 の環境構築方法や、 サンプルコンポーネントの実行操作ツールRtcLinkによる 基本的な操作方法について実習形式で解説します。 15:15-16:15 第3部:RTミドルウェアの各種ツール群について 担当:坂本武志(テクノロジックアート) 概要:OpenRTM-aist-0.4.0 に付属するテンプレートコードジェネレータ rtc-template を拡張した統合開発環境のインストール方法、基本的操作方法、 および、UMLモデリングツールPatternWeaverを使った、新しいコンポーネント 開発方法について解説します。 16:30-17:30 第4部:OpenRTM-aist-0.4.0の使い方 概要:実際に簡単なコンポーネントを参加者に作成していただき、 OpenRTM-aistによるコンポーネント開発を体験していただきます。
第2部 OpenRTM-aist-0.4.0の 環境構築 独立行政法人 産業技術総合研究所 知能システム研究部門 タスク・インテリジェンス研究グループ 安藤 慶昭 3
概要 依存パッケージのインストール OpenRTMインストール Java・Eclipseインストール RtcLinkのインストール RtcTemplateのインストール
分散オブジェクトとは? システムの機能分割と分散配置 コンポーネント化と再利用 標準技術の採用と相互運用性 オブジェクト指向 + ネットワーク 代表例 CORBA(Common Object Request Broker)、 JavaRMI (Java Remote Method Invocation), EJB (Enterprise Java Beans) DCOM, HORB etc… プロキシ オブジェクト アプリA アプリB アプリC ミドルウエア 分散オブジェクト 計算機A OS A 計算機B OS B 計算機C OS C 計算機D OS D
CORBAでの例 IDL サーバ クライアント メソッド gotoPos() call 呼び出し interface MobileRobot { void gotoPos(position pos); } <<サーバ実装>> class MobileRobot_Impl : public virtual POA_RTM::MobileRobot, public virtual PortableServer::RefCountServantBase { void gotoPos(position pos) { MobileRobot::gotoPos の実装 <<クライアント>> MobileRobot_var robot; robot = {何らかの方法でオブジェクト参照を取得} robot->gotoPos(pos); サーバスケルトン クライアントスタブ IDL サーバ クライアント object proxy object メソッド gotoPos() 呼び出し call
なぜOpenRTMを使うのか? CORBAをマスターするのは大変! たくさんのおまじないが必要! 毎回同じことを書かなくてはいけない! メインのロジックに集中できない! あなたのシステムと私のシステムはきっと接続できない!! スキル CORBAの学習曲線 時間
OpenRTMを使った開発の流れ ユーザが作った ライブラリ・クラス OpenRTM 開発環境 この部分がきちんと できていることが 非常に大事 RTコンポーネント OpenRTMを使えば 簡単に分散オブジェクトになる。 分散システム で利用 他のシステムで 再利用
OpenRTMを使った開発の流れ コンポーネントの仕様 コアロジック RTC開発者が開発したプログラム資産 コードの雛型 どのようなコンポーネントか? ・名前 ・データポート ・サービスポート ・コンフィギュレーション コンポーネントの仕様 コアロジック RTC開発者が開発したプログラム資産 RtcTemplate コードの雛型 (C++のクラス) コード生成 コンパイル 雛型にコアロジックを埋め込む .so or DLL マネージャ (ミドルウエア) 実行
RtcLink or RtcTemplate OpenRTMの構造 RTCフレームワーク RTM omniORB (CORBA) ACE RtcLink&RtcTemplate Java Eclipse EMF GEF その他 OpenRTM-aist コアロジック コンポーネント開発者が実装 操作・接続 雛形作成 RTC RTC RTC RTC RTC RtcLink or RtcTemplate RTC RTC RTC RTC RTC RTM EMF GEF omniORB ACE Eclipse OS JavaVM
OpenRTM-aistインストール 依存パッケージ群のインストール OpenRTM-aistのビルド OpenRTM-aistのテスト
依存パッケージ ACE (The ADAPTIVE Communication Environment) 5.4 以上 omniORB URL: http://www.cs.wustl.edu/~schmidt/ACE.html omniORB URL: http://omniorb.sourceforge.net/ Python 2.2 以上。 URL: http://www.python.org/ gcc はversion3 以降 URL: http://gcc.gnu.org/
依存パッケージインストール OpenRTM-aistのソースを展開 build/の下のパッケージインストーラを使用 FreeBSD 5.2: pkg_install_freebsd52.sh FreeBSD 6.x: pkg_install_freebsd6.sh Vine Linux 3.2: pkg_install_vl32.sh Vine Linux 4.0: pkg_install_vl4.sh Fedora Core 4: pkg_install_fc4.sh Fedora Core 5: pkg_install_fc5.sh Fedora Core 6: pkg_install_fc6.sh Debian3.1(Sarge): pkg_install_debianSarge.sh 上記以外のOS・ディストリビューションでは、それぞれ手動でインストールする必要がある。
OpenRTM-aistのビルド ./configure ; make でビルド可能 オプション ビルド完了後 デフォルトでは /usr/local の下に実行ファイル・ライブラリなどがインストールされる Linux では ./configure --prefix=/usr とするとLD_LIBRARY_PATHを設定する必要がない オプション ./configure –helpを参照 ビルド完了後 su, make install でインストール
テスト1 付属のサンプル(SimpleIO)を実行 example/SimpleIOでテストを行う ./run.shを実行 Terminal が2つ開く ConsoleIn: 数字を打ち込む ConsoleOut: 数字が表示される
テスト2 実際にコンポーネントを作成 rtc-templateのテスト rtc-template –help でヘルプを表示 最後のExampleのコマンドを実行 その前にMyService.idl, YourService.idlを作成 生成されたソースをビルド make –f Makefile.Sample rtc.confを作成 ネームサーバを起動 コンポーネントを起動
RtcLink コンポーネントを操作する為のGUIツール ネームサーバに登録されているコンポーネントであれば、リモートからでも操作可能 Eclipseのプラグインとして実装
Eclipse Eclipse Javaで実装された統合開発環境のためのプラットフォーム 全てがプラグインとして構成されている プラグインを利用して拡張可能 OpenRTM-aistの開発環境として採用 現在のところRtcLink、RtcTemplateがEclipseプラグイン化されている
Java・Eclipseのインストール Javaのインストール Eclipseのインストール jre-6u1-windows-i586-p-s.exeを実行 Eclipseのインストール eclipse32_rtclink_rtctemplate.zipを展開 詳細なインストール方法はOpenRTM-aistのWebを参照してください。
RtcLinkの起動 Eclipseを起動 パースペクティブ:RtcLinkを選択 ネームサーバへ接続 コンポーネントを操作 SeqIOで試してみてください
まとめ OpenRTM-aistのインストール RtcLink、RtcTemplate パッケージのインストール テストの実行 RtcLink、RtcTemplate Javaインストール Eclipseインストール RtcLink、RtcTemplateインストール RtcLink実行