[openrtm-users 00197] Re: onActivated でのerror

Masayuki Shimizu masayuki.shimizu @ aist.go.jp
2007年 9月 7日 (金) 17:49:08 JST


皆様

産総研の清水です.

状態遷移について不明な点があったので教えて下さい.

> OMGのRTC Specificationのステートマシン図でも、
> ACTIVE状態からERROR状態への遷移のガード条件が、
> [ReturnCode_t==ERROR]となっているので、
> on_activated が ERROR のとき、直ちに遷移のトリガーがかかり
> on_deactivated、on_abortingの順で実行されるものと思います。

この説明によると,ACTIVE状態からERROR状態に遷移するときは,
ERROR状態のentry関数の前にACTIVE状態のexit関数が呼ばれ
なければいけないということでしょうか?
それならば,onDeactivatedでエラーが起こった場合でも,
onDeactivatedがまた呼ばれなければいけないということに
なってしまい,なんかおかしな感じがします.

RTMのHPの状態遷移図
http://www.is.aist.go.jp/rt/OpenRTM-aist/html/E3839EE3838BE383A5E382A2E383AB/RTCE38397E383ADE382B0E383A9E3839FE383B3E382B0E585A5E99680.html
では,それぞれの状態にentry, do, exitの関数が存在し,
そのうちのどれかがRTC_OK以外を返した場合に,
即座に状態遷移が起こるように見えます.
ということは,ACTIVE状態のentry, do, exit
のどれかがエラーとなった場合,
onDeactivated(ACTIVE状態のexit関数)は呼ばれずに,
onAborting(ERROR状態のentry関数)が呼ばれるような
気がするのですがどうでしょうか?

解説よろしくお願いします.

清水

On Thu, 6 Sep 2007 17:41:58 +0900
"Ando Noriaki" <n-ando @ aist.go.jp> wrote:

> 坂本様
> 
> 安藤です
> 
> お世話になっております。
> 
> > > OMGのRTC Specificationのステートマシン図でも、
> > > ACTIVE状態からERROR状態への遷移のガード条件が、
> > > [ReturnCode_t==ERROR]となっているので、
> > > on_activated が ERROR のとき、直ちに遷移のトリガーがかかり
> > > on_deactivated、on_abortingの順で実行されるものと思います。
> > >
> > > ステートマシンの解釈として、これで正しいでしょうか?>坂本様
> > ご指摘のとおりです.
> > OMG RTC Specificationのステートマシン図では,
> > Active状態のentryアクションであるon_activateの返り値がOKではない場合,
> > on_deactivateを実行してActive状態から抜け,
> > on_abortingを実行後,Error状態に入るという仕様となっております.
> > (上記の振る舞いがLightweight RTCの仕様となっております)
> 
> ありがとうございます。
> on_activated がエラーで戻った場合、on_execute ではなく
> on_deactivated、on_aborting の順に実行されるというのは
> 仕様にも則っているということですね。
> 
> では、その方向でソースは修正したいと思います。
> ありがとうございました。
> -- 
> 安藤慶昭@独立行政法人産業技術総合研究所 研究員
>                    知能システム研究部門 タスクインテリジェンス研究グループ
>                    〒305-8568 茨城県つくば市梅園1-1-1 中央第2
>                    TEL: 029-861-5981 FAX: 029-861-5971
>                    n-ando @ aist.go.jp, n-ando @ ieee.org
> 


--------------------
Masayuki Shimizu

Postdoctoral Fellow
Task Intelligence Research Group
Intelligent Systems Research Institute
National Institute of 
Advanced Industrial Science and Technology (AIST)
Central 2, 1-1-1, Umezono, Tsukuba, Ibaraki 305-8568, JAPAN
Tel: +81-29-861-5952
Fax: +81-29-861-5971
Email: masayuki.shimizu @ aist.go.jp
       chaser @ ieee.org
URL: http://unit.aist.go.jp/is/taskint/



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