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