ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
と言うわけで,一日一回更新すると宣言してしまったのを早くも後悔気味なこの企画の第一回です.
今回はいろんなアクティビティを試してみます.
・・・・とは言ってもOpenRTM-aistの公式サイトにもっと詳しく書いてるので,そっち見た方が良いかも.
UMLとRTミドルウェアによるモデルベースロボットシステム開発によると,よく利用されるアクティビティは
それ以外のアクティビティとしては
今回は状態が遷移すると現在の状態を表示するRTCを作成して試してみました.
プログラムはここよりダウンロードできます.
まず,このコンポーネントを起ち上げてみました.
すると,
Initializeが呼ばれるのはRTCのライフサイクルの開始時のみです.
対してStartupはExecutionContext(EC)が実行を開始するときに呼ばれます.
ここで,System EditorでRTCのECをStopの状態にしてみます.
すると,
今はECが停止してあるためアクティブ化ができません.
続いてECをStartしてみます.
ここではECを起動しただけなのでInitializeは呼び出されません.
続いて,RTCをActiveにしてみます.
Activateはアクティブ化したときのみ呼び出されて,
Executeは周期的に呼ばれます.
StateUpdateはExecuteの後に呼ばれます.どういう状況で使えるかはよくわかりませんが.
ここで,今回作成したRTCはExecuteが5回以上呼ばれると
return RTC::RTC_ERROR;
としてエラー状態に遷移するようにしてあります.
このままRTCをアクティブにしたままにしておくと
エラー状態に遷移するとまず非アクティブにした後エラーとなるようです.
Abortingはエラー状態になった時のみ呼び出されて,Errorはエラー状態の時に周期的に呼び出されます.
ここで,Resetをすると
ここで,アクティブ状態からSystem Editorより非アクティブ状態にしてみます.
最後にExitしてみます.
Finalizeはライフサイクルの終了時のみ呼び出されます.
どうやら,ライフサイクルの終了→ECの終了の順みたいです.
あと,RateChangedが残っていますが,一体どうすればRTCを起ち上げたまま実行周期を変更できるのかわからないのでだれか教えてください(泣´Д`).
※自己解決しました.
次回はrtc.confをいぢくってみたいと思います.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
今回はいろんなアクティビティを試してみます.
・・・・とは言ってもOpenRTM-aistの公式サイトにもっと詳しく書いてるので,そっち見た方が良いかも.
UMLとRTミドルウェアによるモデルベースロボットシステム開発によると,よく利用されるアクティビティは
- onInitialize
- onActivated
- onExecuted
- onDeactivated
- onFinalize
それ以外のアクティビティとしては
- onStartup
- onShutdown
- onAborting
- onError
- onReset
- onStateUpdate
- onRateChanged
今回は状態が遷移すると現在の状態を表示するRTCを作成して試してみました.
プログラムはここよりダウンロードできます.
まず,このコンポーネントを起ち上げてみました.
すると,
- Initialize
- Startup
Initializeが呼ばれるのはRTCのライフサイクルの開始時のみです.
対してStartupはExecutionContext(EC)が実行を開始するときに呼ばれます.
ここで,System EditorでRTCのECをStopの状態にしてみます.
すると,
- Shutdown
今はECが停止してあるためアクティブ化ができません.
続いてECをStartしてみます.
- Startup
ここではECを起動しただけなのでInitializeは呼び出されません.
続いて,RTCをActiveにしてみます.
- Activated
- Execute
- StateUpdate
- Execute
- StateUpdate・・・・
Activateはアクティブ化したときのみ呼び出されて,
Executeは周期的に呼ばれます.
StateUpdateはExecuteの後に呼ばれます.どういう状況で使えるかはよくわかりませんが.
ここで,今回作成したRTCはExecuteが5回以上呼ばれると
return RTC::RTC_ERROR;
としてエラー状態に遷移するようにしてあります.
このままRTCをアクティブにしたままにしておくと
- ・・・Execute
- Stateupdate
- Deactivated
- Aborting
- Error
- Error・・・
エラー状態に遷移するとまず非アクティブにした後エラーとなるようです.
Abortingはエラー状態になった時のみ呼び出されて,Errorはエラー状態の時に周期的に呼び出されます.
ここで,Resetをすると
- ・・・・Error
- Reset
ここで,アクティブ状態からSystem Editorより非アクティブ状態にしてみます.
- ・・・Execute
- Stateupdate
- Deactivated
最後にExitしてみます.
- Finalize
- Shutdown
Finalizeはライフサイクルの終了時のみ呼び出されます.
どうやら,ライフサイクルの終了→ECの終了の順みたいです.
あと,RateChangedが残っていますが,一体どうすればRTCを起ち上げたまま実行周期を変更できるのかわからないのでだれか教えてください(泣´Д`).
※自己解決しました.
次回はrtc.confをいぢくってみたいと思います.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする