忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[32]  [33]  [34]  [35]  [36]  [37
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

前回の記事で実行周期の変更の仕方が分からないからRateChangedが呼び出せないとか書きましたが,自己解決しました.

RT System Editorは使わずにC++でRTCをアクティブにして実行周期を変更するプログラムを作成しました.

ここからダウンロードできます.


ポイントは

corbaConsumer<RTC::ExecutionContext> ec0;

ec0.setObject(ExecutionContextListIn[0]);

ec0->set_rate(rate);

です.


単純にRTCの実行コンテキストの周期をset_rate関数で変えてやってるだけです.

RT System Editorからはどうやって変えるのかわからなかったので誰か教えてください.


今日の記事はこれで勘弁してください.現在書きため中です.

明日こそはrtc.confをやります.






にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ 

PR
と言うわけで,一日一回更新すると宣言してしまったのを早くも後悔気味なこの企画の第一回です.

今回はいろんなアクティビティを試してみます.

・・・・とは言ってもOpenRTM-aistの公式サイトにもっと詳しく書いてるので,そっち見た方が良いかも.

UMLとRTミドルウェアによるモデルベースロボットシステム開発によると,よく利用されるアクティビティは
  • onInitialize
  • onActivated
  • onExecuted
  • onDeactivated
  • onFinalize
だそうです.

それ以外のアクティビティとしては
  • onStartup
  • onShutdown
  • onAborting
  • onError
  • onReset
  • onStateUpdate
  • onRateChanged
があります.

今回は状態が遷移すると現在の状態を表示するRTCを作成して試してみました.

プログラムはここよりダウンロードできます.

まず,このコンポーネントを起ち上げてみました.

すると,
  1. Initialize
  2. Startup
となります.

Initializeが呼ばれるのはRTCのライフサイクルの開始時のみです.
対してStartupはExecutionContext(EC)が実行を開始するときに呼ばれます.

ここで,System EditorでRTCのECをStopの状態にしてみます.

すると,
  1. Shutdown
となります.
今はECが停止してあるためアクティブ化ができません.

続いてECをStartしてみます.
  1. Startup
と表示されます.
ここではECを起動しただけなのでInitializeは呼び出されません.

続いて,RTCをActiveにしてみます.
  1. Activated
  2. Execute
  3. StateUpdate
  4. Execute
  5. StateUpdate・・・・
となるはずです.
Activateはアクティブ化したときのみ呼び出されて,
Executeは周期的に呼ばれます.
StateUpdateはExecuteの後に呼ばれます.どういう状況で使えるかはよくわかりませんが.


ここで,今回作成したRTCはExecuteが5回以上呼ばれると

return RTC::RTC_ERROR;

としてエラー状態に遷移するようにしてあります.
このままRTCをアクティブにしたままにしておくと
  1. ・・・Execute
  2. Stateupdate
  3. Deactivated
  4. Aborting
  5. Error
  6. Error・・・
となります.
エラー状態に遷移するとまず非アクティブにした後エラーとなるようです.

Abortingはエラー状態になった時のみ呼び出されて,Errorはエラー状態の時に周期的に呼び出されます.


ここで,Resetをすると
  1. ・・・・Error
  2. Reset
と表示されてたちどころにエラーで真っ赤になっていたRTCが青に戻ります.

ここで,アクティブ状態からSystem Editorより非アクティブ状態にしてみます.

  1. ・・・Execute
  2. Stateupdate
  3. Deactivated
となります.

最後にExitしてみます.
  1. Finalize
  2. Shutdown
と表示されてRTCが消えます.

Finalizeはライフサイクルの終了時のみ呼び出されます.

どうやら,ライフサイクルの終了→ECの終了の順みたいです.




あと,RateChangedが残っていますが,一体どうすればRTCを起ち上げたまま実行周期を変更できるのかわからないのでだれか教えてください(´Д`).

自己解決しました.






次回はrtc.confをいぢくってみたいと思います.











にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ 
カレンダー
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
[08/31 ysuga]
[08/31 Nobu]
[08/31 ysuga]
[12/11 Nobu]
[12/11 Kanamura]
最新TB
プロフィール
HN:
Nobu
年齢:
36
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]