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

Shunji Satoh shun @ is.uec.ac.jp
2011年 2月 23日 (水) 16:59:02 JST


産総研 栗原様

電気通信大学大学院 佐藤と申します.

python 版 1.0.1 の作成,誠にありがとうございます.ExtTrig のサンプルも,期待した挙動を示す
ことを確認しました.
プロのプログラムを見た経験がなかったので,とても勉強になります.
# 分からないことも多々ありますが...ただ,期待感でいっぱいです.

今後ともよろしくお願いします.
以上です.


> 電気通信大学大学院 佐藤様
> 
> お世話になっております。
> 産総研 栗原です。
> 
>>> なお、これまでのバグ情報につきましても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 サンプルを試しているが,期待している結果が得ら
>>>> れない.
>>>>
>>>>
>>>> 以上です.よろしくお願いします.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
> 
> 




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