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