210 likes | 321 Views
ROBOMEC2007 チュートリアル RT ミドルウエア講習会. 日時: 2007 年 5 月 10 日 13:30 ~ 17:30 場所:ホテル メトロポリタン秋田 4F きりの間. RT ミドルウエア講習会. 第 2 部 OpenRTM-aist-0.4.0の 環境構築. 独立行政法人 産業技術総合研究所 知能システム研究部門 タスク・インテリジェンス研究グループ 安藤 慶昭. 概要. 依存パッケージのインストール OpenRTM インストール Java ・ Eclipse インストール RtcLink のインストール
E N D
ROBOMEC2007チュートリアルRTミドルウエア講習会ROBOMEC2007チュートリアルRTミドルウエア講習会 日時:2007年5月10日 13:30~17:30 場所:ホテル メトロポリタン秋田 4F きりの間
第2部 OpenRTM-aist-0.4.0の環境構築 独立行政法人 産業技術総合研究所 知能システム研究部門 タスク・インテリジェンス研究グループ 安藤 慶昭
概要 • 依存パッケージのインストール • 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
<<IDL 定義>> interface MobileRobot { void gotoPos(position pos); } <<サーバ実装>> class MobileRobot_Impl : public virtual POA_RTM::MobileRobot, public virtual PortableServer::RefCountServantBase { voidgotoPos(position pos) { MobileRobot::gotoPos の実装 } } <<クライアント>> MobileRobot_var robot; robot = {何らかの方法でオブジェクト参照を取得} robot->gotoPos(pos); CORBAでの例 サーバスケルトン クライアントスタブ IDL サーバ クライアント object proxy object メソッド gotoPos() 呼び出し call
CORBAをマスターするのは大変! たくさんのおまじないが必要! 毎回同じことを書かなくてはいけない! メインのロジックに集中できない! あなたのシステムと私のシステムはきっと接続できない!! なぜOpenRTMを使うのか? スキル CORBAの学習曲線 時間
OpenRTM 開発環境 ユーザが作った ライブラリ・クラス 分散システム で利用 他のシステムで 再利用 OpenRTMを使った開発の流れ この部分がきちんと できていることが 非常に大事 RTコンポーネント OpenRTMを使えば 簡単に分散オブジェクトになる。
OpenRTMを使った開発の流れ どのようなコンポーネントか? ・名前 ・データポート ・サービスポート ・コンフィギュレーション コンポーネントの仕様 コアロジック RTC開発者が開発したプログラム資産 RtcTemplate コードの雛型 (C++のクラス) コード生成 コンパイル 雛型にコアロジックを埋め込む .so or DLL マネージャ (ミドルウエア) 実行
RTCフレームワーク RTM omniORB (CORBA) ACE RtcLink&RtcTemplate Java Eclipse EMF GEF その他 EMF GEF OpenRTMの構造 OpenRTM-aist コアロジック コンポーネント開発者が実装 雛形作成 操作・接続 RTC RTC RTC RTC RTC RtcLink or RtcTemplate RTC RTC RTC RTC RTC RTM omniORB ACE Eclipse OS JavaVM
OpenRTM-aistインストール 依存パッケージ群のインストール OpenRTM-aistのビルド OpenRTM-aistのテスト OpenRTM-aistのインストール
依存パッケージ • ACE (The ADAPTIVE Communication Environment) 5.4 以上 • 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を作成 • ネームサーバを起動 • コンポーネントを起動
コンポーネントを操作する為のGUIツール ネームサーバに登録されているコンポーネントであれば、リモートからでも操作可能 Eclipseのプラグインとして実装 RtcLink
Eclipse • Eclipse • Javaで実装された統合開発環境のためのプラットフォーム • 全てがプラグインとして構成されている • プラグインを利用して拡張可能 • OpenRTM-aistの開発環境として採用 • 現在のところRtcLink、RtcTemplateがEclipseプラグイン化されている
Java・Eclipseのインストール • Javaのインストール • jre-6u1-windows-i586-p-s.exeを実行 • Eclipseのインストール • eclipse32_rtclink_rtctemplate.zipを展開 • 詳細なインストール方法はOpenRTM-aistのWebを参照してください。
RtcLinkの起動 • Eclipseを起動 • パースペクティブ:RtcLinkを選択 • ネームサーバへ接続 • コンポーネントを操作 • SeqIOで試してみてください
まとめ • OpenRTM-aistのインストール • パッケージのインストール • OpenRTM-aistのビルド • OpenRTM-aistのインストール • テストの実行 • RtcLink、RtcTemplate • Javaインストール • Eclipseインストール • RtcLink、RtcTemplateインストール • RtcLink実行