動作確認 (Windows編)

サンプルコンポーネントの場所

インストールまたはビルドが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、通常は以下の場所にあります。

  • スタートメニュー: [スタート] > [OpenRTM-aist 1.1] > [Python] > [Components] > [Examples]
  • C:\Program Files\OpenRTM-aist\1.1\examples\Python
  • OpenRTM_aist/examples (ソースからビルドした場合)

サンプルコンポーネントセット SimpleIO を使って、OpenRTM-aist が正しくビルド・インストールされているかを確認します。

サンプル (SimpleIO) を使用したテスト

RT コンポーネント ConsoleIn、ConsoleOut からなるサンプルセットです。 ConsoleIn はコンソールから入力された数値を OutPort から出力するコンポーネント、ConsoleOut は InPort に入力された数値をコンソールに表示するコンポーネントです。 これらは、最も Simple な I/O (入出力) を例示するためのサンプルです。 ConsoleIn の OutPort から ConsoleOut の InPort へ接続を構成し、これらの2つのコンポーネントをアクティブ化 (Activate) することで動作します。

以下は、msi インストーラーで OpenRTM-aist-Python をインストールした環境で、スタートメニューから各種プログラムを起動する前提で説明します。 スタートメニューから、OpenRTM-aist を右クリックし「開く」でフォルダーを開き、各プログラムへアクセスすると便利です。

win_start_menu_open2_ja.png
スタートメニューのOpenRTM-aistを開く

ネームサーバーの起動

まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 [OpenRTM-aist 1.1] > [Tools] にあるショートカットの [Start Python Naming Service] をクリックしネームサーバーを起動します。

win_start_tool_python_ja.png
ネームサーバーへのショートカット

起動すると、以下のようなコンソール画面が開きます。

win_naming_service2_ja.png
ネームサーバーの起動

コンソール画面が開かない

ネームサーバーのコンソール画面が開かないケースがあります。 この場合下記のようないくつかの原因が考えられますので、原因を調査して対処してください。

omniORBpy がインストールされていない。

openrtm.org が提供する msi インストーラーには omniORBpy が含まれていますが、カスタムインストールを選択すると、omniORBpy をインストールせずに OpenRTM-aist-Python をインストールすることもできます。

また、手動でインストールした場合には、omniORBpy が入っていない場合も考えられますので、omniORBpy がインストールされているか確認してください。

py ファイルの関連付けが違っている

ネームサーバーを起動するファイルは、C:\Program Files (x86)\OpenRTM-aist\1.1\bin\rtm-naming.py です。(32bit 版 msi でインストールした場合)
このディレクトリーでコンソール画面を開き、python rtm-naming.py を実行するとネームサーバーは起動するが、rtm-naming.py をダブルクリックして起動できない場合はインストールしている python を確認してください。
Python の 32bit 版、64bit 版の両方をインストールしている場合、先にインストールしたものが py ファイルに関連付けられるようなので、OpenRTM-aist-Python のインストーラーと同じアーキテクチャの Python を先にインストールすると解決するかもしれません。

その他

ホスト名やアドレスの設定の問題で、起動がうまくいかないケースがあります。 その場合、利用している PC の IP アドレスを omniNames.exe に教えてあげるとうまくいくケースがあります。 環境変数 OMNIORB_USEHOSTNAME を以下のように設定します (以下は自ホストの IPアドレスが192.168.0.11の場合の例)。

 変数名(N): OMNIORB_USEHOSTNAME
 変数値(V): 192.168.0.11

サンプルコンポーネントの起動

ネームサーバー起動後、適当なサンプルコンポーネントを起動します。 先ほど開いたスタートメニューフォルダーの、[OpenRTM-aist 1.1] > [Python] > [Components] > [Examples] を開くと、図のようにいくつかのコンポーネントがあります。

win_start_menu_comps2_ja.png
サンプルコンポーネントフォルダー

ここでは、「ConsoleIn.py」「ConsoleOut.py」をそれぞれダブルクリックして2つのコンポーネントを起動します。 起動すると、下図のような2つのコンソール画面が開きます。

win_consoleinout_window2.png
ConsoleIn コンポーネントと ConsoleOut コンポーネント

コンポーネントが起動しない場合

コンポーネントが起動しない場合、いくつかの原因が考えられます。

コンソール画面が開いてすぐに消える

rtc.conf の設定に問題があり、起動できないケースがあります。 サンプルコンポーネントのインストールフォルダー(インストール時に何も指定しなかった場合 C:\Program Files\OpenRTM-aist\1.0\examples\Python\SimpleIO) の「rtc.conf」を開いて設定を確認してください。 例えば、corba.endpoint/corba.endpoints などの設定が現在実行中の PC のホストアドレスとミスマッチを起こしている場合などは、CORBA が異常終了します。

以下のような最低限の rtc.conf に設定しなおして試してみてください。

 corba.nameservers: localhost

RTSystemEditor (RTSE) の起動

スタートメニューフォルダーから、RTSystemEditor を起動します。 RTSystemEditorは [OpenRTM-aist] > [Tools] > [RTSystemEditorRCP] にあります。

rtse_start_ja.png
RTSystemEditor の起動

※ RTSystemEditor (RCP 版) を動作させるために、32bit 版の Java 動作環境 (JRE) または Java 開発環境 (JDK) が必要で、1.1.0-RELEASE 版では JRE が一緒にインストールされます。

ネームサーバーへの接続

RTSE が起動したらまずネームサーバーへ接続します。 左ペインの上部にある、rtse_connect_ns_icon.pngのアイコンをクリックして接続ダイアログを開きます。 接続ダイアログのホスト名の部分に先ほど起動したネームサーバーのアドレス (この場合同一ホストですので localhost) を指定します。 ポート番号も指定できますが、通常デフォルトの2809番を使用する場合は何も指定しません。

rtse_connect_dialog_ja.png
ネームサーバーへの接続ダイアログ

接続すると、ネームサービスビューに localhost が表示されます。 ツリー表示の [+] をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。

rtse_ns_connected_ja.png
ネームサーバーに登録されたコンポーネント

エディタへの配置

システムを編集するエディタを開きます。上部のエディタを開くボタン rtse_open_editor_icon.png をクリックすると、中央のペインにエディタが開きます。

左側のネームサービスビューに rtse_rtc_icon.png のアイコンで表示されているコンポーネント (2つ) を中央のエディタにドラッグアンドドロップします。

rtse_dnd_rtcs_ja.png
コンポーネントをエディタに配置

接続とアクティブ化

ConsoleIn0 コンポーネントの右側にはデータが出力される OutPort rtse_outport_icon.png 、ConsoleOut0 コンポーネントの左側にはデータが入力される InPort rtse_inport_icon.png がそれぞれついています。

これら InPort/OutPort (まとめてデータポートと呼びます) を接続します。 OutPort から InPort (または InPort から OutPort) へドラッグランドドロップすると、図のようなダイアログが表示されますので、デフォルト設定のまま [OK] ボタンをクリックします。

rtse_portconnect_ja.png
データポートの接続

rtse_portconnect_dialog_ja.png
データポート接続ダイアログ

2つのコンポーネントの間に接続線が表示されます。次に、エディタ上部メニューの [All Activate] ボタン rtse_all_activate_icon.png をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。

rtse_activated_all.png
アクティブ化されたコンポーネント

コンポーネントがアクティブ化されると ConsoleIn コンポーネント側では

 Please input number: 

というプロンプト表示に変わりますので、適当な数値 (short int の範囲内:32767以下) を入力し Enter キーを押します。 すると、ConsoleOut 側では、入力した数値が表示され、ConsoleIn コンポーネントから ConsoleOut コンポーネントへデータが転送されたことがわかります。

以上で、コンポーネントの基本動作の確認は終了です。

他のサンプル

インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。 これらのコンポーネントも同様に起動し、RTSystemEditor でポート同士を接続し、アクティブ化することで試すことができます。

付属しているコンポーネントのリストと簡単な説明を以下に示します。

ConsoleIn.py コンソールから入力された数値を OutPort から出力する。ConsoleOut.py に接続して使用する。
ConsoleOut.py InPort に入力された数値をコンソールに表示するコンポーネント。ConsoleIn.py に接続して使用する。
SeqIn.py ランダムな数値(Short、Long、Float、Double とそのシーケンス型)を出力するコンポーネント。SeqOut.py に接続して使用する。
SeqOut.py InPort に入力される数値(Short、Long、Float、Doubleとそのシーケンス型)を表示。SeqIn.py に接続して使用する。
MyServiceProvider.py MyService 型のサービスを提供するコンポーネント。MyServiceConsumer.py に接続して使用する。
MyServiceConsumer.py MyService 型のサービスを利用するコンポーネント。MyServiceProvider.py に接続して使用する。
ConfigSample.py Configuration のサンプル。RTSystemEditor から Configuration を変更して Configuration の挙動を理解するためのサンプル。
TkMobileRobotSimulator.py モバイルロボットの簡易シミュレーター。ロボットの速度を InPort で受け、移動後の位置を OutPort から出力する。
NXTRTC.py LEGO MINDSTORM にて作成したモバイルロボットを制御するためのサンプル。InPort にて速度を受け、赤外線センサーと現在位置をそれぞれ OutPort から出力する。
AutoControl.py モバイルロボット用の速度を出力する。測位センサーのデータを InPort で受け、ロボットの速度を計算して OutPort から出力する。
Composite.py Composite 用のサンプル。Motor、Controller、Sensorを包含するコンポーネント。Composite の使用方法を理解するためのサンプル。
Motor.py Composite コンポーネント用のサンプル。Composite の子要素として使用。
Controller.py Composite コンポーネント用のサンプル。Composite の子要素として使用。
Sensor.py Composite コンポーネント用のサンプル。Composite の子要素として使用。
Slider.py Tk を用いた GUI コンポーネントのサンプル。Slider で指定した値を OutPort から出力する。
TkMotorComp.py Tk を用いた GUI コンポーネントのサンプル。InPort で受け取った値を GUI で表示する。
TkLRFViewer.py Tk を用いた GUI コンポーネントのサンプル。レーザーレンジセンサーなどから出力されるデータを表示する。
TkJoystickComp.py Tk を用いた GUI コンポーネントのサンプル。簡易ジョイスティックコンポーネント。