動作確認(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を使う方法をまず説明し、その後、インストール時にOpenRTM-aist-PythonとRTShellだけをインストールした場合や、ソースビルド後に動作確認をする方法を説明します。

OpenRTPを使う方法

RT System Editor、ネームサーバー起動

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

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

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

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

エディタへの配置

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

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

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

/ja/node/6614
コンポーネントをエディタに配置

接続とアクティブ化

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を用いたコンポーネントの基本動作の確認は終了です。

ソースビルドした場合に動作を確認する方法

RTShellのインストール

環境変数の設定

  • Windows 10の場合は右下の「ここに入力して検索」にシステム環境変数と入力して表示されるものから[システム環境変数の編集]を選択し、[システムのプロパティ]ダイアログを開きます。
    rtshell1.png
  • [環境変数(N)...]ボタンをクリックします。
    rtshell2.png
  • 下側の[システム環境変数(S)]の方の[新規(W)...]ボタンをクリックします。
    rtshell3.png
  • [変数名(N):]に”RTCTREE_NAMESERVERS"と入力し[変数値(V):]に"127.0.0.1"と入力し[OK]をクリックします。
    rtshell4.png
  • [OK]を何度かクリックし開いたダイアログを閉じます。

Name Serverの起動

以下はPython3.7をPython37ディレクトリにインストールしてある前提で説明します。
  • エクスプローラで<ソースディレクトリ>\OpenRTM_aist\utils\rtm-namingに移動し、rtm-naming.pyをダブルクリックします。以下のような画面が表示されるはずです。
    rtshell5.png

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

  • エクスプローラで<ソースディレクトリ>\OpenRTM-aist\examples\SimpleIOに移動し、[ConsoleIn.py]と[ConsoleOut.py]をダブルクリックします。
  • コマンドラインコンソールを開きます。
  • コマンドラインから以下のようにコマンドrtlsを実行し、以下のように表示されることを確認します。
     C:\Users\openrtm>rtls -R
     .:
     127.0.0.1/
     
     ./127.0.0.1:
     ConsoleIn0.rtc  ConsoleOut0.rtc
  • ConsoleInコンポーネントとConsoleOutコンポーネントを接続します。
     rtcon /localhost/ConsoleIn0.rtc:out /localhost/ConsoleOut0.rtc:in
  • ConsoleInコンポーネントとConsoleOutコンポーネントをActivateします。
     rtact /localhost/ConsoleIn0.rtc /localhost/ConsoleOut0.rtc
  • するとConsoleIn.pyとConsoleOut.pyのコンソールが以下のように変わり、ConsoleIn.py側コンソールに"Please Input number:"と表示されます。
    rtm9-3.png
  • ConsoleIn.pyのコンソールから数値を(16bit 整数の範囲で)入力しEnterキーを押します。
  • ConsoleOut.pyのコンソールにConsoleIn.pyのコンソールで入力した数値が表示されるのを確認します。 同じ数値が表示されていれば動作は確認できました。
  • 以下のように入力しDeactivateします。
     rtdeact /localhost/ConsoleIn0.rtc /localhost/ConsoleOut0.rtc
    この時ConsoleIn.py側のコンソールに数値を入力しEnterキーを押すことにより、入力待ち状態を解消してください。 その後
     rtexit /localhost/ConsoleIn0.rtc
     rtexit /localhost/ConsoleOut0.rtc
    と入力し、コンソールが閉じることを確認してください。

RTShellとOpenRTM-aist-Pythonをmsiファイルを用いてインストールした場合の確認方法

環境変数の設定

  • Windows 10の場合は右下の「ここに入力して検索」にシステム環境変数と入力して表示されるものから[システム環境変数の編集]を選択し、[システムのプロパティ]ダイアログを開きます。
    rtshell1.png
  • [環境変数(N)...]ボタンをクリックします。
    rtshell2.png
  • 下側の[システム環境変数(S)]の方の[新規(W)...]ボタンをクリックします。
    rtshell3.png
  • [変数名(N):]に”RTCTREE_NAMESERVERS"と入力し[変数値(V):]に"127.0.0.1"と入力し[OK]をクリックします。
    rtshell4.png
  • [OK]を何度かクリックし開いたダイアログを閉じます。

Name Serverの起動

  • 画面の左下の[ここに入力して検索]に"start naming service"と入力します。
  • [Start Naming Service]をクリックします。
    rtshell6.png
  • 以下のような画面が表示されます。
    rtshell5.png

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

  • エクスプローラで<ソースディレクトリ>\OpenRTM-aist\examples\SimpleIOに移動し、[ConsoleIn.py]と[ConsoleOut.py]をダブルクリックします。
  • コマンドラインコンソールを開きます。
  • コマンドラインから以下のようにコマンドrtlsを実行し、以下のように表示されることを確認します。
     C:\Users\openrtm>rtls -R
     .:
     127.0.0.1/
     
     ./127.0.0.1:
     ConsoleIn0.rtc  ConsoleOut0.rtc
  • ConsoleInコンポーネントとConsoleOutコンポーネントを接続します。
     rtcon /localhost/ConsoleIn0.rtc:out /localhost/ConsoleOut0.rtc:in
  • ConsoleInコンポーネントとConsoleOutコンポーネントをActivateします。
     rtact /localhost/ConsoleIn0.rtc /localhost/ConsoleOut0.rtc
  • するとConsoleIn.pyとConsoleOut.pyのコンソールが以下のように変わり、ConsoleIn.py側コンソールに"Please Input number:"と表示されます。
    rtm9-3.png
  • ConsoleIn.pyのコンソールから数値を(16bit 整数の範囲で)入力しEnterキーを押します。
  • ConsoleOut.pyのコンソールにConsoleIn.pyのコンソールで入力した数値が表示されるのを確認します。
同じ数値が表示されていれば動作は確認できました。
  • 以下のように入力しDeactivateします。
     rtdeact /localhost/ConsoleIn0.rtc /localhost/ConsoleOut0.rtc
    この時ConsoleIn.py側のコンソールに数値を入力しEnterキーを押すことにより、入力待ち状態を解消してください。 その後
     rtexit /localhost/ConsoleIn0.rtc
     rtexit /localhost/ConsoleOut0.rtc
    と入力し、コンソールが閉じることを確認してください。

他のサンプル

インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。これらのコンポーネントも同様に起動し、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コンポーネントのサンプル。簡易ジョイスティックコンポーネント。


ダウンロード

最新バージョン

初めての方へ

Windows msi(インストーラ) パッケージ (サンプルの実行ができます。)

C++,Python,Java,
Toolsを含む
1.2.1-RELEASE

RTコンポーネントを開発するためには開発環境のインストールが必要です。詳細はダウンロードページ

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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