[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 メーリングリストの案内