ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
一日一回更新すると宣言してしまった記事は削除して無かったことにしようかと思ったりもしている本企画の第3回です.
rtc.confの設定項目にデフォルトの実行コンテキストのタイプを変更する項目があります.
rtc.confに書かなかった場合は
exec_cxt.periodic.type: PeriodicExecutionContext と設定されます. デフォルトと言うことは何らかの方法で動的に変更できそうですね. PeriodicExecutionContextは周期実行できます. 対してExtTrigExecutionContextを設定すると外部トリガによる実行になります. OpenRTM-aistのPython版にサンプルがあります. C++で簡単にをつくってみました. ここからダウンロードできます. 実行する前に,
corba.nameservers: localhost
naming.formats: %n.rtc
exec_cxt.periodic.type: ExtTrigExecutionContext
exec_cxt.periodic.rate: 1000
という内容のrtc.confを作成して,適当なフォルダに入れた後,OpenRTM-aist-1.0.0-RELEASE付属のConsoleInCompとConsoleOutCompをそのフォルダにコピーして起ち上げてください.
その後,今回作成したプログラムを起動すれば,0を押したときはConsoleInComp,1を押したときはConsoleOutComp,2を押したときは両方を実行します.
・・・Python版のサンプルと同じになるはずですが,僕の環境が悪いのかどうかはわかりませんがPython版のサンプルが入力に関係なく周期実行になってしまいますね.これを読んでる皆さんの環境ではどうなってますかね?
※OpenRTM-aistのメーリスで質問してくれた人がいて,どうやらバグだったみたいです.
と言うかサンプルプログラムなのに誰も動作確認しようとしなかったのか,僕みたいに自分の使い方が間違ってると思い込んで報告しなかったのかどっちなんでしょうね?
これなら,WubiでOpenRTM-aistが使えないのもバグかも.
とりあえず,今回のプログラムとC++版のConsoleInCompとConsoleOutCompを使うと,0を入力した後しかConsoleInCompの数字の入力が受け付けなくなり,1を入力した時しかConsoleOutCompのInportから入力された値が表示されなくなります.
今回作成したプログラムのポイントは
CorbaConsumer<OpenRTM::ExtTrigExecutionContextService> ec0;
CorbaConsumer<OpenRTM::ExtTrigExecutionContextService> ec1;
ec0.setObject(ExecutionContextListIn[0]);
ec1.setObject(ExecutionContextListOut[0]);
ec0->tick();
ec1->tick();
です.
tick()で実行できるみたいです.
PeriodicExecutionContext,ExtTrigExecutionContex以外では,OpenHRP3のコントーラーに使う SynchExtTriggerEC,ARTLinux用実行コンテキストARTExecutionContextがあるみたいですね.
rtc.confは他にも設定できる項目はありますが,だいたいOpenRTM-aistの公式HPの通りなので別にここでやらなくても・・・・という感じですね.
強いて言うなら,managerに関する設定と,corba.endpointとかはやってもいいかもしれないけど,managerは後でやりたい気分だし,corba.endpointは他のサイトで解説があるようなので別に触れなくても良いかなと思ったりですね.
次回はポートの動的な追加,削除をやりたいと思います.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
rtc.confの設定項目にデフォルトの実行コンテキストのタイプを変更する項目があります.
rtc.confに書かなかった場合は
exec_cxt.periodic.type: PeriodicExecutionContext と設定されます. デフォルトと言うことは何らかの方法で動的に変更できそうですね. PeriodicExecutionContextは周期実行できます. 対してExtTrigExecutionContextを設定すると外部トリガによる実行になります. OpenRTM-aistのPython版にサンプルがあります. C++で簡単にをつくってみました. ここからダウンロードできます. 実行する前に,
corba.nameservers: localhost
naming.formats: %n.rtc
exec_cxt.periodic.type: ExtTrigExecutionContext
exec_cxt.periodic.rate: 1000
という内容のrtc.confを作成して,適当なフォルダに入れた後,OpenRTM-aist-1.0.0-RELEASE付属のConsoleInCompとConsoleOutCompをそのフォルダにコピーして起ち上げてください.
その後,今回作成したプログラムを起動すれば,0を押したときはConsoleInComp,1を押したときはConsoleOutComp,2を押したときは両方を実行します.
・・・Python版のサンプルと同じになるはずですが,僕の環境が悪いのかどうかはわかりませんがPython版のサンプルが入力に関係なく周期実行になってしまいますね.これを読んでる皆さんの環境ではどうなってますかね?
※OpenRTM-aistのメーリスで質問してくれた人がいて,どうやらバグだったみたいです.
と言うかサンプルプログラムなのに誰も動作確認しようとしなかったのか,僕みたいに自分の使い方が間違ってると思い込んで報告しなかったのかどっちなんでしょうね?
これなら,WubiでOpenRTM-aistが使えないのもバグかも.
とりあえず,今回のプログラムとC++版のConsoleInCompとConsoleOutCompを使うと,0を入力した後しかConsoleInCompの数字の入力が受け付けなくなり,1を入力した時しかConsoleOutCompのInportから入力された値が表示されなくなります.
今回作成したプログラムのポイントは
CorbaConsumer<OpenRTM::ExtTrigExecutionContextService> ec0;
CorbaConsumer<OpenRTM::ExtTrigExecutionContextService> ec1;
ec0.setObject(ExecutionContextListIn[0]);
ec1.setObject(ExecutionContextListOut[0]);
ec0->tick();
ec1->tick();
です.
tick()で実行できるみたいです.
PeriodicExecutionContext,ExtTrigExecutionContex以外では,OpenHRP3のコントーラーに使う SynchExtTriggerEC,ARTLinux用実行コンテキストARTExecutionContextがあるみたいですね.
rtc.confは他にも設定できる項目はありますが,だいたいOpenRTM-aistの公式HPの通りなので別にここでやらなくても・・・・という感じですね.
強いて言うなら,managerに関する設定と,corba.endpointとかはやってもいいかもしれないけど,managerは後でやりたい気分だし,corba.endpointは他のサイトで解説があるようなので別に触れなくても良いかなと思ったりですね.
次回はポートの動的な追加,削除をやりたいと思います.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする