読者です 読者をやめる 読者になる 読者になる

RtStorageリリース

RtStorageというアプリケーションを公開しました。

zoetrope/RtStorage · GitHub

先日のエントリーでは、利用したライブラリのことを書きましたが、今回はアプリケーションの機能について紹介したいと思います。

RtStorageとは

RtStorageはRTミドルウェア(OpenRTM-aist official website | OpenRTM-aist)のためのデータ記録・再生用ツールです。以下のような特徴を持っています。

  • RTコンポーネントのOutPortから出力されたデータをファイルに記録することができます。
  • 保存したデータを、RTコンポーネントのInPortに対して再生することができます。
  • データの再生は保存したときと同じタイミングで行われます。また、任意の位置から再生を開始することができます。
  • 保存されたデータは、いくつかの検索条件で簡単に見つけ出すことができます。
  • IDLファイルを書かなくても、ユーザが独自定義したデータを扱うことができます。
  • 保存されたデータの解析を行うことができます。

RtStorageと同じような機能を持つアプリケーションとしては、rtshellのrtlogと、そのGUIフロントエンドであるrtlogplayerがあります。

想定ユースケース

RtStorageのユースケースとしては、センサコンポーネントと、センサの計測データを使って計算をするコンポーネントを開発するときを考えてみてください。

計算コンポーネントの動作確認をするために、センサを毎回動かすのはかなりめんどくさいんですよね。

ですので、センサコンポーネントのデータどりを先にしておいて、そのデータを使ってじっくりアルゴリズムの検証をするほうがだんぜん楽。

RTコンポーネントの開発を行っている人は、おそらくダミーのコンポーネントを自作して、同じようなことをしているのではないでしょうか?

RtStorageは、データポートのデータ記録とデータ再生を簡単に行うことができます。

コンセプト

RtStorageのコンセプトとしては「簡単に使えること」と「応答性の向上」を目指しています。(実現できているかどうかはともかく・・・)

インストーラを用意していますので.NET Framwork 4 Client ProfileがインストールされているPCであれば、すぐに使い始めることができます。(一応ZIPアーカイブも用意しています。)別途RTミドルウェアをインストールする必要はありません。

また、RTミドルウェアを使うときにはIDLを扱うのが結構難しいのですが、RtStorageではIDLファイルを使う必要はありません。送られてきたデータをバイナリ配列(CDR形式)のままファイルに保存してるので、データ型にまったく依存せず、ユーザー定義型のデータを扱うことができます。

応答性の向上としては、アプリケーション内でCORBA通信を行う箇所や、データベースアクセスをする箇所を非同期で動作させるようにしています。これにより「アプリケーションが固まった」という感覚を受けることなく使えるのではないかと思います。

興味のある方は、こちらからダウンロードできるので使ってみてください。

Downloads · zoetrope/RtStorage · GitHub

今後

現状でも基本的な機能は実現できているので、今後は細かな機能追加をしていこうかと思っています。
例えば、蓄積したデータの閲覧や編集機能などは欲しいと思っています。
また、自動テストに使うことを考えるとCUIで利用する機能も欲しいですかね。


RTミドルウェアコンテストにだしたら、何か賞が取れたりしたかなぁ。