OMG標準準拠ミドルウェアOpenRTM-aist

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