[openrtm-users 00013] Re: RTコンポーネントの過渡状態のアクティビティオペレーションについて

寺田 英雄 hideo_terada @ ihi.co.jp
2005年 8月 23日 (火) 11:07:52 JST


寺田@IHIです。はじめまして。

RTミドルウェアはほぼ素人ですが、
状態遷移モデリングの一般論として議論させてください。

> Subject: [openrtm-users 00012] Re: RTコンポーネントの過渡状態のアクティ
> ビティオペレーションについて
> 
> 
> 安藤@産総研です
> 
<中略>

> こちらでも、マニピュレータの初期化を rtc_starting_entry() で行っていま
> すが、
> 初期姿勢に移行するまで待たせているので、3秒くらい STARTING 状態を
> 保持しています。
> do がある処理=定常状態がある
> 
> ということになっていまして、ACTIVE, READY, ERROR, FATAL_ERROR が
> 定常状態がある状態ですので rtc_xxx_do() を用意しています。
> さらに、定常状態では他の状態に遷移するために何らかのイベントが必要にな
> ります。
> (原則として外部からのコマンド(オペレーション)呼び出しによって遷移します
> 。)

上記説明でよく分かりました(分かった気がします)。
稲村さんが言うように、物理的に長い時間かかる処理が必要であったとしても、
論理的には(RTミドルウェア仕様では)それは定常状態と見なさない、
ということですね。

過去に私も失敗した経験があるのですが、これは状態遷移設計の落とし穴の
一つと思います。処理時間の「長い・短い」は自明ではなく、
そのシステムの設計意図に依存している、
という点をついつい見逃してしまいがちです。

10秒かかる処理があろうとも、中断不能で後戻りしないと決めた
処理は、状態のアクティビティにしてはならない、という原則が
ここでも適用されている、ということで良いのでしょうか?




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