rtshell によるRTシステムの管理

はじめに

このケーススタディーでは、rtshellでRTシステムの管理方法を紹介します。既存のカメラコンポーネントと画像処理コンポーネントと画像表示コンポーネントを利用し、自動でシステム復元や起動などを行います。システム設計をRTSystemEditorで行い、復元・起動をrtshellとシェルスクリプトで行うといった、RTシステムの効率的な作成・運用を行うことができます。

rtshellとは

rtshellはネームサーバ上に登録されているRTコンポーネントをシェルから管理することができるツールです。コンポーネントをactivate/deactivate/resetしたり、ポートの接続を行うことができます。さらに、RTシステム全体を管理することもできます。

流れ

  • RTSystemEditorでシステムの作成
  • システムをRTSProfileに保存
  • rtshellとrtcd(RTコンポーネントマネジャー)でRTコンポーネントのインスタンス作成
  • rtshellのrtresurrectでシステムコネクションの作成
  • rtshellのrtstartでシステムの機動
  • rtshellのrtstopでシステムの停止
  • rtshellのrtteardownでシステムの削除

システムを作成する

最初にネームサーバーを起動します。

次は以下のコンポーネントを起動します。

  • OpenCVCameraComp
  • FlipComp
  • CameraViewerComp

RTSystemEditorを機動して、以下のシステムを作成します。

rtsystemeditor_make_system.png

ポート間のコネクションプロパティはデフォルト設定でOKです。

システムをRTSProfileに保存

RTSProfileとは

RTSProfileとはRTシステムを記述するファイルフォーマットです。使われるコンポーネント、コンフィギュレーションパラメータ、コネクション等の情報を記述することができます。RTSProfileを使うことにより、RTSystemEditorで作成したシステム構成を保存し、他のツールで利用する(あるいはその逆)事ができます。

保存方法

作成したシステムエディタのバックグランド(の白い部分)をクリックして、「セーブ」を選択します。

rtsystemeditor_save_system.png

システムの情報を入力します。

rtsystemeditor_save_system_info.png

「セーブ」をクリックしてRTSProfileファイルを作成・保存します。

最後に、コンポーネントを終了します。

rtshell の使うための準備

Windows のコマンドプロンプトを起動します。

start_command_prompt.png

環境変数を設定します。コマンドプロンプトで以下のコマンドを実行します。 「RTCTREE_NAMESERVERS」は、rtshell の支援ライブラリrtctree が使う変数で、rtshell が見えるネームサーバーを指定します。

  set RTCTREE_NAMESERVERS=127.0.0.1

RTシステムの復元

コンポーネント間のコネクションを再作成でRTシステムを復元します。以下のコンポーネントを起動します。

  • OpenCVCameraComp
  • FlipComp
  • CameraViewerComp

rtshell でコンポーネントが登録されているネームサーバー上のフォルダーに移動します。

  rtcwd /127.0.0.1/maia-win7.host_cxt

「maia-win7.host_cxt」はネームサーバーの名です。

コマンドプロンプトで RTSProfile ファイルが保存されているフォルダーに移動して、以下のコマンドを実行します。

  rtresurrect flipper.xml

「flipper.xml」はRTSProfileファイルの名です。

rtresurrect_success.png

Eclipse でコマンドの実行結果を見ることができます。コンポーネントのポートが接続されていることがわかります。

rtresurrect_success_eclipse.png

rtcat コマンドでも同様に、システムが再構成されている様子を見ることができます。

rtresurrect_success_rtcat.png

RTシステムの起動

システムを構成するすべてのコンポーネントをactivate する rtstart コマンドを利用するト、システム全体を起動することができます。

  rtstart flipper.xml

コマンドの実行結果は、Eclipseからコンポーネントがアクティブ状態(緑色)になっていることから確認できます。

rtstart_success_eclipse.png

rtls コマンドを利用しても書くにすることができます。

rtstart_success_rtls.png

RTシステムの停止

システムを構成するすべてのコンポーネントをdeactivate するrtstop コマンドを使うことで、システム全体を停止することができます。

  rtstop flipper.xml

コマンドの実行結果は Eclipse からコンポーネントが全て青色になっていることから確認できます。

rtstop_success_eclipse.png

rtls コマンドでも確認することができます。

rtstop_success_rtls.png

RTシステムの削除

最後に、rtteardown コマンドを使ってすべてのコネクションを削除することによってシステムを削除します。

  rtteardown flipper.xml

コマンドの実行結果は Eclipse からコンポーネント間の接続が切断されていることから確認できます。

rtteardown_success_eclipse.png

rtcat コマンドでもその様子を見ることができます。

rtteardown_success_rtcat.png

rtshell でRTシステムの保存

rtshell では Eclipseと同様にシステムの構成情報を保存することも可能です。まずは簡単なシステムを作成します。

EdgeComp コンポーネントを起動して、以下のコマンドでポートを接続します。

  rtresurrect flipper.xml
  rtdis CameraViewer0.rtc
  rtcon Flip0.rtc:.fliped_image Edge0.rtc:.original_image
  rtcon Edge0.rtc:.Edge_image_sobel_x CameraViewer0.rtc:.in

これらのコマンドは、既に保存したシステムを復元して、一箇のコネクションを削除し、 パイプラインに新しいコンポーネントを追加しています。

extended_system.png

Eclipse でシステム構成を確認することができます。

extended_system_eclipse.png

rtshell の rtcryo コマンドはRTシステムを保存します。以下のコマンドで現在のシステムを保存します。

  rtcryo -n "Flipped edge detector" -v 2 -e Geoff -o edge.xml 127.0.0.1

保存されたファイルを Eclipse のシステムエディタで開くとシステム編集が行えます。オプションは以下のとおりです。

  -n システムの名
  -v システムのバージョン
  -e 作成者
  -o 出力フィアル名

スクリプトによる簡単なシステム管理

スクリプトファイル(Windowsでは batch file、LinuxやMac OS X では bash等)を使うと、 紹介されたコマンドを使って、複雑なRTシステムを簡単に起動・停止することが行えます。

まずは作成したシステムを削除します。

  rtteardown edge.xml

以下の内容を「run_system.bat」というファイルに保存します。

  @echo off
  echo "Starting system"
  call rtresurrect edge.xml
  call rtstart edge.xml
  echo "Press any key to shut down"
  pause
  call rtstop edge.xml
  call rtteardown edge.xml

 run_system.bat

を実行すると、システムが起動されます。 さらに、ユーザーがエンターキーを押すとシステムを削除し終了します。

最新バージョン

初めての方へ

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

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

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

統計

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

Join our slack

Enter email address for slack invite.

旧Webサイト

OpenRTM.org旧Webサイト

OpenHRP3

動力学シミュレータ

Choreonoid

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

OpenHRI

対話制御コンポーネント群

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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

VirCA

遠隔空間同士を接続し、実験を行うことが可能な仮想空間プラットホーム