[openrtm-users 01592] Re: ExtTriggerのサンプル

kurihara shinji shinji.kurihara @ aist.go.jp
2011年 2月 23日 (水) 15:31:31 JST


電気通信大学大学院 佐藤様

お世話になっております。
産総研 栗原です。

> > なお、これまでのバグ情報につきましてもWebにアップするように致します。
> 
> 可能でしたら URL を教えていただけますでしょうか.
OpenRTM-aistのWebページ内、ダウンロード > Python版 > 1.0.0-RELEASEページ
の”ソースコード”のところにバグフィックス版(1.0.1)のソースとバグ情報を
記載させて頂きました。

http://www.openrtm.org/openrtm/ja/node/932

Linux用のパッケージに関しましては、もうしばらくお待下さい。


以上、宜しくお願い致します。


On Tue, 22 Feb 2011 18:03:24 +0900
Shunji Satoh <shun @ is.uec.ac.jp> wrote:

> 栗原様,みなさま
> 
> 電通大院・佐藤です.
> 早速のご返信ならびにスクリプトの添付,誠にありがとうございます.
> 
> 結果から報告しますと,頂いた ExtTrigExecutionContext.py で動作することを確認しました.あり
> がとうございます.ただ,一点質問があります.
> 
> ExtTrig のサンプルを実行すると,私が想定してる挙動と異なる動作をします.私の誤解である可能
> 性が大きいのですが,具体的には以下の通りです.
> ----
> 1.Connector.py の画面において,
> 2."0"を選択,すなわち「0: tick ConsoleIn component」とすれば,ConsoleIn.py::onExecute()
> が実行されるので,"Please input number:" のプロンプトが出ると期待していたが,
> 3.見た目上,何も変化せず,
> 4.Connector.py の画面においてもう一度,"0" を選択すると,"Please input number:" が表示さ
> れる.
> 5.2回目の"0"入力以降は,"0" を入力するたびに "Please input number:" が表示される.
> ----
> 
> なぜ,"0" を2回入力しないと ConsoleIn::onExecute() が実行されないのかが理解できません.原
> 因は,「tick():処理を1ステップ進める.ExecutionContextの処理を1周期分進める.」において,
> 「ExecutionContextの処理を1周期分進める」とは具体的に何を実行するのかを正確に理解していな
> いからだと思っています.
> 
> 「ExecutionContextの処理を1周期分進める」とは具体的にどのような処理を行うことなのか,情報
> 源がありましたら,ぜひ教えていただきたいと願っております.
> 私なりに,調査・検索してみましたが,どうしてもわかりませんでした.
> 
> 
> > これまでのバグフィックスを行ったパッケージを間もなくリリース予定
> > です。
> > ただ、現在のところWindows用のインストーラは準備できているのですが、
> > 他のパッケージがまだですので、それまでは、ファイルの置き換えでご対
> > 応頂ければと存じます。
> 
> 楽しみにしております.よろしくお願いします.
> 
> > なお、これまでのバグ情報につきましてもWebにアップするように致します。
> 
> 可能でしたら URL を教えていただけますでしょうか.
> 
> 以上よろしくお願いします.
> 
> 
> > On Mon, 21 Feb 2011 20:22:48 +0900
> > Shunji Satoh<shun @ is.uec.ac.jp>  wrote:
> > 
> >> 電気通信大学大学院・佐藤と申します.
> >>
> >> お世話になっております.
> >>
> >> Python版の ExtTrigger のサンプルが,期待通りの動作をせず悩んでおります.た
> >> だ,ExtTrigExecutionContext に関して私が誤解している可能性も大きと思っています.
> >> 実行環境は WindowsXP-SP3(32bit),OpenRTM-aist-1.0.0,python2.6,コンポーネントはすべて
> >> ローカルで実行しています.
> >>
> >> 私は ExtTrigger の挙動を以下のように理解しているのですが,誤解でしょうか.ご指摘いただけれ
> >> ば幸いです.(Open-RTM\example\Python\ExtTrigger のサンプルを試しています)
> >> ----
> >> a.PERIODIC であれば周期的に実行されるが,
> >> b.ExtTrigger サンプルである Connector.py は,キーボードからの入力 0/1/2 によって各コン
> >> ポーネントの実行を制御している.具体的には「0: tick ConsoleIn component」「1: tick
> >> ConsoleOut component」「2: tick both components」.
> >> c.たとえば 0 の場合は,ConsoleIn の時間だけを進めるため,ConsoleIn は入力を受け付ける(例
> >> えば999と入力)が,ConsoleOut に表示されない(999は表示されない).
> >> d. 上記 b のキーボード入力が 1 である場合,ConsoleOut の時間が進み,その時点で 999 が表示
> >> される.
> >> ----
> >>
> >> しかしながら私の環境では,Connector.py へのキーボード入力が 0/1/2 のいずれであっても,同じ
> >> 挙動をします(外部トリガーによる制御ではなく,PERIODIC な実行をしているようです.)
> >> 上記 a〜d. は私の誤解でしょうか.
> >>
> >> なおバグレポートになるかと思いますが,サンプル付属の ExtTrigger\run.py は rtm-naming.py の
> >> 呼び出しパスが適切ではないようです.そこで以下のように実行しています.
> >> ----
> >> 1.スタート⇒すべてのプログラム⇒OpenRTM-aist⇒Python⇒tools⇒Start naming service
> >> 2.コマンドプロンプトを立ち上げてディレクトリを移動したのち,以下を実行.
> >> 3.start ConsoleIn.py
> >> 4.start ConsoleOut.py
> >> 5.start Connector.py
> >> ----
> >>
> >>
> >> 以下,ExtTrigger サンプルを実行している理由について記します.
> >> ・複数のコンポーネントがあり,それぞれ compA, compB, compC とします.これらのコンポーネン
> >> トは,とある系全体のシミュレーションをするために分割されたコンポーネントです.
> >> ・compA→compB→compC のデータの流れと,
> >> ・compB←compC のフィードバックがあります.
> >> ・compB はほかの二つに比べて,長いシミュレーション時間を要します.例えば物理的単位時間のシ
> >> ミュレーションを行う際に,compB は CPU時間で 1分ほど要しますが,compA と compC はそれぞれ
> >> 1秒程度です.
> >> ・このような系を制御したく(同期といえますでしょうか)いろいろ調べた結果,どうやら
> >> ExtTrigExecutionContext を使えばよいことがわかった.
> >> ・そこで使い方を勉強するために,ExtTrigger サンプルを試しているが,期待している結果が得ら
> >> れない.
> >>
> >>
> >> 以上です.よろしくお願いします.
> >>
> >>
> >>
> >>
> >>
> > 
> > 
> 
> 


-- 
----------
栗原 眞二 <shinji.kurihara @ aist.go.jp>

独立行政法人産業技術総合研究所
  知能システム研究部門 統合知能研究グループ
  〒305-8568
  茨城県つくば市梅園1-1-1 中央第2

  TEL: 029-861-5956



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