[openrtm-users 01031] ConfigulationパラメータとRTC状態遷移における制約に関する要望

Yusuke Nakajima y.nakajima @ aist.go.jp
2009年 12月 4日 (金) 11:47:02 JST


OpenRTM関係者様

産総研の中島です。

過去MLをざっと見渡して既出ではないようでしたので、
以下に要望を示します、ご検討頂ければと思います。

=====
「ConfigulationパラメータとRTC状態遷移における制約」
ということで、既存のconfigulationパラメータに、属性の追加などをして

(1)RTCがINACTIVE時にのみ、変更+反映可能なConfigulationパラメータ
(2)RTCがどの状態遷移にいても、変更+反映可能なConfigulationパラメータ

の2種類があると良いと考えています。

具体的には、RtSystemEditorを使用する場合、INACTIVE時には全パラメータが
編集可能となるが、ActivateしACTIVE状態にいる時には、該当パラメータのみ
編集可能で、その他はフォーカスが当てられないようにロックがかかるような
イメージ。また、RtSystemEditorを使用しない場合は、条件判断し該当パラメー
タは変更不可のメッセージ出力or現在値を変更せず維持するなど。

=====

背景として、以下のような例で示しますが、configulationパラメータという
便利なものを使う上で、その利便性を生かしつつ、さらに安全性を考慮したいと
考えると、上述のような機能があると良いと考えています。
(Configulationパラメータを使用しないという方針は今回は無しとして。)

あくまで一例ですが、1つの速度制御RTCで、2台の移動ロボット
(ロボットの形状は異なる。また、同じ距離センサーを搭載しているとします。)
を制御する場合(動かすのは1台ずつの場合)について、

   ---------          --------          -----------
   | RTC(A) |------->| RTC(B) | -----> | ロボット1 |
   ---------    |     --------          -----------
                |     --------          -----------
                 --->| RTC(C) | -----> | ロボット2 |
                      --------          -----------

RTC(A)から、RTC(B)、RTC(C)のいずれか片方にデータポートで接続し、
制御する対象を変える場合には、一旦RTC(A)をDeactivateし内部処理を
初期化し、DataPortの線も張り替えてから、再度Acitaveteして使用する
場合について。

RTC(A)のコンフィグレーションパラメータに、以下の2種類の項目があるとしま
す。(「RTC名.conf」ファイルにロボット毎のパラメータセットを用意)

 (i)各ロボット毎の形状値(ボディや車輪の径)、ゲイン、などロボットの固定固
有値
 (ii)センサーのパラメータ(センシング距離やレンジ、サンプルング間隔)の
可変値

これらを、各ロボットを動かす時に、セットしなおすとなると、動作させる前に、
つまり、INACTIVE時に(i)(ii)を初期セットするとして、
走行中(ACTIVE時)に例えば、センサーのパラメータを変更(レンジを広げてみるなど)
したい時には、そのまま(ii)を動的に変更と反映が可能で、便利です。
しかし、(i)はACTIVE時には変更されると危険なため、他のコンフィグ値を変更
する際には、注意が必要になります。

RTCの再利用性などを考えると、作成者以外のユーザが使用する際に、ドキュメ
ントなどに記された注意書きを読んで、かつ操作で注意をする必要が出てきそう
で、安全性が厳しくなってきます。

RTC内部で、(i)はACTIVE時の反映値は無効という実装を入れれば安全ですが、
RtSystemEditorで入力した値との整合もなくなりますし、ミドルウェアやツール
レベルで前処理を施して欲しいと考えています。

1.0.0-RC1系で、コンフィグパラメータの制約条件の処理が追加されていますが、
同様に、入力時にRTCのステータスを見て、入力可否の処理が入るともっと
使いやすいと感じています。

以上、ご検討ください。



openrtm-users メーリングリストの案内