OpenRTM-aistをインストールしていることを前提にしています。
まずOpenRTPを起動してください。 OpenRTPはOpenRTM-aistに付属しているRTミドルウェアの開発ツールです。
デスクトップのOpenRTP x86_64
をダブルクリックして起動します。
次にOpenRTP上でRT System Editorを起動します。 RT System EditorはRTCを組み合わせてRTシステムを構築するためのツールです。 RTCの状態の操作、コネクタの接続などができます。
パースペクティブを開く
ボタンを押して表示したウィンドウからRT System Editor
を選択して開くボタンを押します。
ネームサーバーを起動します。 ネームサーバーはCORBAオブジェクトを名前で管理するためのサービスです。
ネームサービスビューのネームサービスを起動
ボタンから起動してください。
ネームサーバーが起動すると以下のようにネームサービスビューにlocalhostと表示されます。
OpenRTM Luaのexamples
フォルダ内の以下のバッチファイルを実行するとサンプルのRTCが起動します。
ConsoleIn
は標準入力した数値をOutPortから出力するサンプル、ConsoleOut
はInPortに入力した数値を標準出力するサンプルコンポーネントです。
今回はConsoleIn
で標準入力した数値をConsoleOut
に送信して表示するシステムを構築します。
ConsoleIn.bat
ConsoleOut.bat
RTCが起動するとネームサービスビューにConsoleIn0
とConsoleOut0
が表示されます。
Open New System Editor
ボタンを押してシステムダイアグラムを表示します。
システムダイアグラム上にConsoleIn0
とConsoleOut0
をドラックアンドドロップして並べます。
システムダイアグラム上の表示でRTCがどのようなポートを持っているのか、どのような状態なのかが一目でわかります。
現在、ConsoleIn0
とConsoleOut0
は通信できる状態ではないため、コネクタを生成して通信できるようにします。
ConsoleIn0
のout
からConsoleOut0
のin
にドラックアンドドロップすることでコネクタを生成します。
コネクタプロファイルの設定はそのままでOKボタンを押します。
接続に成功するとポートが線で接続されます。
RTCにはInactive
、Active
、Error
という状態があります。
ConsoleIn0
がデータを出力する、ConsoleOut0
が入力データを表示するという処理はActive
状態に遷移しないと実行しません。
Activate Systems
ボタンでRTCをアクティブ化します。
するとConsoleIn.bat
を実行したときに表示されたウィンドウにPlease input number:
と表示されるため、数値を入力してください。
入力した数値はConsoleOut.bat
のウィンドウで表示されます。
※RTSystemEditor上でRTCの表示が非アクティブ状態(青)からアクティブ状態(緑)に変化しないことがありますが、これはLuaがマルチスレッドをサポートしておらず標準入力でブロックしてしまうとすべての処理がブロックされてしまい、ConsoleInの状態を取得することもできなくなるためです。
ConsoleIn.bat
のウィンドウに何回か数値を入力すると正常に表示されるようになります。