動作確認(Windows編)

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

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

  • c:\Program Files\OpenRTM-aist\1.2.x\Components\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をデフォルトでインストールした環境で、スタートメニューから各種プログラムを起動する場合しOpenRTPを使う方法を説明します。OpenRTPを使わないでrtshellを使う場合は、rtshellのインストールにおける動作確認(Windows編)を参照してください。なお、ソースビルドした場合は、サンプルコンポネントは、<ソースディレクトリ>\OpenRTM-aist\examples\SimpleIOにありますので、リンク先や下記の説明でのConsoleIn/ConsoleOutコンポーネントの場所はそこに置き換えてください。

動作確認手順

RTSystemEditor、ネームサーバーの起動

以下の手順に従ってRTSystemEditor、ネームサーバーを起動してください。

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

ネームサーバー起動後、適当なサンプルコンポーネントを起動します。

Windows 10の場合は右下の[ここに入力して検索]にPython_Examplesと入力してサンプルのディレクトリを開きます。

rtm7-2.png
ネームサーバーの起動を確認

rtm8-2.png
サンプルコンポーネントディレクトリ

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

rtm9-2.png
ConsoleInコンポーネントとConsoleOutコンポーネント

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

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

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

rtc.confの設定に問題があり、起動できないケースがあります。上記検索から開かれるディレクトリの[rtc.conf for examples]を開いて設定を確認してください。例えば、corba.endpoint/corba.endpointsなどの設定が現在実行中のPCのホストアドレスとミスマッチを起こしている場合などは、CORBAが異常終了します。

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

 corba.nameservers: localhost

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

openrtm.orgが提供するMSIインストーラーにはomniORBpyが含まれていますが、カスタムインストールを選択すると、omniORBpyをインストールせずにOpenRTM-aist-Pythonをインストールできます。また、手動でインストールした場合には、omniORBpyが入っていない場合も考えられますので、omniORBpyがインストールされているか確認してください。

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

ConsoleIn、ConsoleOutを起動するファイルは、

C:\Program Files\OpenRTM-aist\1.2.x\Components\Python\Examples\SimpleIO\ConsoleIn.py
C:\Program Files\OpenRTM-aist\1.2.x\Components\Python\Examples\SimpleIO\ConsoleOut.py

です。(64bit版MSIでインストールした場合)このディレクトリでコンソール画面を開き、python ConsoleIn.pyを実行すると起動するが、ConsoleIn.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

RTSystemEditorでのエディタへの配置

RTSystemEditorのツリー表示の[>]をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。

/ja/node/6614
ConsoleInコンポーネントとConsoleOutコンポーネント

システムを編集するエディタ(System Diagram)を開きます。上部の[Open New System Editor]ボタンrtse_open_editor_icon_ja.png をクリックすると、中央のペインにエディタ(System Diagram)が開きます。左側のネームサービスビューに rtse_rtc_icon_n.png のアイコンで表示されているコンポーネント(2つ)を中央のエディタ・エリアにドラッグアンドドロップします。

/ja/node/6614
コンポーネントをSystem Diagramに配置

接続とアクティブ化

ConsoleIn0コンポーネント・アイコンの右側にはデータが出力されるOutPort rtse_outport_icon_n.pngが 、ConsoleOut0コンポーネント・アイコンの左側にはデータが入力されるInPort rtse_inport_icon_n.pngがそれぞれ配置されています。

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

/ja/node/6614
データポートの接続

/ja/node/6614
データポート接続ダイアログ

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

/ja/node/6614
アクティブ化されたコンポーネント

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

 Please input number: 

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

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

他のサンプル

インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。これらのコンポーネントも同様に起動し、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の子要素として使用。
SliderComp.py Tcl/Tkを用いたGUIコンポーネントのサンプル。Sliderで指定した値をOutPortから出力する。
TkMotorComp.py Tcl/Tkを用いたGUIコンポーネントのサンプル。InPortで受け取った値の速度で回転する様子をGUIで表示する。
TkMotorPosComp.py Tcl/TKを用いたGUIコンポーネントのサンプル。InPortで受け取った値を回転角として動く様子をGUIで表示する。
TkLRFViewer.py Tcl/Tkを用いたGUIコンポーネントのサンプル。レーザーレンジセンサーなどから出力されるデータを表示する。
TkJoystickComp.py Tcl/Tkを用いたGUIコンポーネントのサンプル。簡易ジョイスティックコンポーネント。

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク