rtshell でコンポーネントデータの保存・再生

はじめに

このケーススタディでは、rtshell で RTコンポーネントのデータ管理を行う方法を紹介します。以下の機能を紹介します。

  • コマンドプロンプトでコンポーネントが送信しているデータの表示
  • コマンドプロンプトでコンポーネントにデータを送信する
  • コンポーネントのデータの記録・再生する方法

rtshell とは

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

流れ

  • コンポーネントが送信しているデータをコマンドプロンプトで表示する
  • コマンドプロンプトからコンポーネントにデータを送信する
  • コンポーネントが送信するデータをファイルに保存して、そして別のコンポーネントに再生する

rtshell を使うための準備

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

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

start_command_prompt.png

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

  set RTCTREE_NAMESERVERS=127.0.0.1

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

  rtcwd /127.0.0.1/maia-win7.host_cxt

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

データの表示

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

  • ConsoleInComp

コンポーネントをアクティブ化します。コマンドプロンプトで以下のコマンドを実行します。

  rtact ConsoleIn0.rtc

rtls で結果が確認できます。

rtact_success_rtls.png

次に rtprint コマンドで ConsoleIn0.rtc のポートが出力するデータを表示します。

  rtprint ConsoleIn0.rtc:out

ConsoleIn 画面に数を入力すると、コマンドプロンプトで表示されます。

rtprint_success_comp.png
rtprint_success_console.png

ctrl-c で rtprint を終了します。

データの入力

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

  • ConsoleOutComp

コンポーネントをアクティブ化します。コマンドプロンプトで以下のコマンドを実行します。

  rtact ConsoleOut0.rtc

rtls で結果が確認できます。

rtact_success_rtls2.png

rtinject コマンドで ConsoleOut のポートにデータを入力します。

  rtinject ConsoleOut0.rtc:in -c "RTC.TimedLong({time}, 42)"

送る値は「-c」オプションで指定します。Python の表現です。「{time}」は自動的にタイムスタンプに変更されます。

ConsoleOut の画面で数が表示されます。

rtinject_success_comp.png
rtinject_success_console.png

データログ作成・再生

rtshell の rtlog コマンドでコンポーネントが出力するデータをファイルに保存して、別のコンポーネントに入力することができます。

まずは、rtlog で ConsoleIn が出力するデータをファイルに保存します。以下のコマンドを実行したら ConsoleIn の画面に複数の数を入力します。

  rtlog -f numbers.rtlog ConsoleIn0.rtc:out.nums

ポート名の後に「.nums」でデータチャネルの名を指定します。

記録は ctrl-c で終了します。

rtlog_record_comp.png
rtlog_record_console.png

rtlog では、ログファイルのメタデータが表示されます。

  rtlog -f numbers.rtlog -d
rtlog_display.png

データが保存されたら別のコンポーネントに入力できます。以下のコマンドを実行したら ConsoleOut の画面で保存された数が表示されます。

  rtlog -f numbers.rtlog -p ConsoleOut0.rtc:in.nums

「-p」オプションで再生させます。「.nums」でデータチャネルを選択します。

rtlog_playback_comp.png
rtlog_playback_console.png

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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