セック ロボットサイト - 概要

概要

OpenRTM.NETのインストールが完了したら、さっそくRTコンポーネントを起動してみましょう。

ここでは下図に示すような、ConsoleInとConsoleOutという2つのRTコンポーネントを起動します。 これは、ユーザーがConsoleInコンポーネントのコンソール画面から入力したデータを、 データポートを介してConsoleOutコンポーネントに送信し、コンソール画面にデータを表示するという簡単なものです。

../_images/sample.png

デモシステムの構成

起動するプログラム一覧
プログラム名 役割
ネーミングサービス 各コンポーネントの名前とリファレンスを管理するプログラム
ConsoleInコンポーネント ユーザーの入力したデータをOutPortから出力するRTコンポーネント
ConsoleOutコンポーネント InPortから入力されたデータをコンソールに出力するRTコンポーネント
RTSystemEditor RTコンポーネントをモニタリングや操作するためのGUIアプリケーション

ネーミングサービスの起動

まずは、ネーミングサービスの起動を行います。

スタートメニューから「OpenRTM.NET 1.3」→「ツール」→「ネーミングサービスの起動」を選択してください。

また、「コントロールパネル」の「管理ツール」の「サービス」の中に “OpenRTM.NET Naming Service”を開くと下記のようなダイアログが起動します。 ここで「スタートアップの種類」を自動に設定すると、Windowsの起動時に自動的に ネーミングサービスが起動するようになります。

../_images/start_service.png

ネーミングサービスの起動

RTSystemEditorの起動

次にRTコンポーネントを操作するためのツールであるRTSystemEditorを起動します。 インストール方法については、OpenRTM-aistのページ(http://www.openrtm.org/)を参照してください。

RTSystemEditor以下のような画面で構成されています。

../_images/rt_system_editor.png

RTSystemEditor

RTSystemEditorの起動

まずは、インストールしたEclipsce(c:eclipseeclipse.exeなど)を起動します。

Eclipse起動後、メニューより[ウィンドウ]→[パースペクティブを開く]→[その他]よりRTSystemEditorを選択して、 RTSystemEditorを起動してください。すると、下図のような画面が表示されます。

../_images/started_rtse.png

RTSystemEditor 起動画面

RTSystemEditorを起動したら、下図に示すように、NameServiceViewの[Add Name Server]を選択します。

../_images/add_nameserver.png

Add Name Serverの 起動

すると、下図のようなダイアログが表示されますので、ネーミングサービスの接続先を指定します。 通常は、“localhost:2809”を指定すると良いでしょう。 リモートのネーミングサービスに接続する場合は、“sample.com:5001”のように“ホスト名:ポート番号”の形式で接続先を指定してください。

../_images/connect_nameserver.png

ネームサーバ接続ダイアログ

次に、メニューより、「ファイル」→[Open New System Editor]を選択するか、 下図のようにツールバーの[Open New System Editor]アイコンを選択してください。

../_images/open_newsystemeditor.png

Open New System Editorアイコン

すると下図のようなシステムエディタの領域が表示されます。システムエディタの領域では、 RTコンポーネント同士を接続したり、RTコンポーネントを実行したり、停止したりすることができます。

../_images/connected_nameserver.png

システムエディタの起動画面

RTコンポーネントの起動

続いて、各RTコンポーネント(ConsoleIn, ConsoleOut)を起動します。 インストーラパッケージからインストールした場合は、スタートメニューの「OpenRTM.NET」→「サンブル」 →「バイナリ」を開き、「SimpleIO」の「ConsoleIn.exe」と「ConsoleOut.exe」を起動してください。

起動に成功すると、「ConsoleIn.exe」、「ConsoleOut.exe」と記述されたコンソールウィンドウが開き、 コンソールに下記のように表示されます。

ConsoleInコンポーネントの表示画面

=================================================
 Component Profile
-------------------------------------------------
InstanceID:       ConsoleIn0
Implementation:   ConsoleIn
Description:
Version:
Vendor:
Category:         Examples
Other Properties
=================================================
Port :ConsoleIn0.out
-------------------------------------------------
I/F name: ConsoleIn0.out
I/F type: IDL:RTC/TimedLong:1.0
Polarity: PROVIDED
I/F name: ConsoleIn0.out
I/F type: OpenRTM.Core.TimedLong
Polarity: PROVIDED
Properties
    port.port_type: DataOutPort
    dataport.data_type: IDL:RTC/TimedLong:1.0
    dataport.dataflow_type: push, pull
    dataport.subscription_type: flush, new, periodic
    dataport.interface_type: corba_cdr, local

ConsoleOutコンポーネントの表示画面

=================================================
Component Profile
-------------------------------------------------
InstanceID:       ConsoleOut0
Implementation:   ConsoleOut
Description:
Version:
Vendor:
Category:         Examples
Other Properties
=================================================
Port :ConsoleOut0.in
-------------------------------------------------
I/F name: ConsoleOut0.in
I/F type: IDL:RTC/TimedLong:1.0
Polarity: REQUIRED
I/F name: ConsoleOut0.in
I/F type: OpenRTM.Core.TimedLong
Polarity: REQUIRED
Properties
    port.port_type: DataInPort
    dataport.data_type: IDL:RTC/TimedLong:1.0
    dataport.dataflow_type: push, pull
    dataport.subscription_type: any
    dataport.interface_type: corba_cdr, local

コンポーネントが正常に起動すると、RTSystemEditorのName Service Viewに、下図のようにコンポーネントの名前が表示されます。

../_images/registered_component.png

RTSystemEditorのName Service Viewの確認

ネーミングサービスが起動していない場合は、RTコンポーネントがエラー終了し、 下記のようなログが出力されます。 ネーミングサービスが起動しているかどうかの確認を行ってください。

エラーメッセージ

2011-11-27 19:12:53,642 [1] ERROR (Manager) ネーミングサービスへの登録に失敗しました。
omg.org.CORBA.TRANSIENT: CORBA system exception : omg.org.CORBA.TRANSIENT [Unable to connect to target.] , completed: Completed_No minor: 4000

RTコンポーネントの操作

次に、RTSystemEditorを利用して、RTコンポーネントを操作してみましょう。

描画領域へのドロップ

まず、RTSystemEditorのName Service Viewの中から利用したいコンポーネントを選択し、 システムエディタにドラッグ&ドロップします。 すると、下図に示すようにRTコンポーネントが描画されます。 また、右側のデータグリッドの領域には、RTコンポーネントのプロファイルが表示されます。

ここでは、ConsoleInとConsoleOutの両方をドラッグ&ドロップしてください。

../_images/drag_component.png

RTコンポーネントのドラッグ

../_images/dragged_component.png

RTコンポーネントの描画

なお、RTコンポーネントを描画している色は、以下に示すように、RTコンポーネントの状態を示しています。

RTSystemEditor コンポーネントの色と状態の関係
コンポーネントの色 コンポーネントの状態
コンポーネントが非活性(INACTIVE)状態
コンポーネントが活性化(ACTIVE)状態
コンポーネントがエラー(ERROR)状態

RTコンポーネントへのコマンド送信

ドロップしたRTコンポーネントに対して、右クリックすると、下図のようなコンテキストメニューが表示されます。 このメニューの中から、送信したいコマンドを選択します。送信可能なコマンドは下記の表の通りです。

ここでは、ConsoleInとConsoleOutにActivateコマンドを送信しましょう。

../_images/activate_component.png

RTコンポーネントへのコマンド送信

../_images/activated_component.png

アクティベート後のコンポーネント

送信可能なコマンド一覧
コマンド名 内容
Activate RTコンポーネントを活性化させます。
Deactivate RTコンポーネントを非活性にします。
Reset RTコンポーネントがエラー状態のとき、リセットします。
Finalize RTコンポーネントの終了処理を行います。
Exit RTコンポーネントを終了させます。
Start 実行コンテキストを起動します。
Stop 実行コンテキストを停止します。
Delete システムエディタの描画領域から削除します。※RTコンポーネントにはコマンドを送信しません。
Create Composite Component 複合コンポーネントを作成します。

データポートの接続

次にConsoleInとConsoleOutのデータポートの接続を行います。

下図に示すように、ConsoleInのOutPortの領域から、ConsoleOutのInPortの領域にドラッグ&ドロップを行うと、 データポート間の接続を行うことができます。

../_images/connect_component.png

RTSystemEditorデータポートの接続

../_images/connector_profile.png

RTSystemEditorデータポートの接続

../_images/connected_component.png

RTSystemEditorデータポートの接続

データ送信の確認

ここで、ConsoleInコンポーネントのコンソール画面を確認すると、 「Please input number: 」というメッセージが表示されています。

ここで、下記のように、適当な整数値を入力してください。

ConsoleInコンポーネントの表示画面

Please Input Number> 1234
Please Input Number>

すると、下記のようにConsoleOutのコンソール画面に入力した整数値と、時間が表示されます。

ConsoleOutコンポーネントの表示画面

time = 2009/03/31 21:37:59
data = 1234