[openrtm-users 01520] SI2010でのRTミドルウエアに関する質疑応答

kurihara shinji shinji.kurihara @ aist.go.jp
2010年 12月 30日 (木) 01:28:02 JST


OpenRTM-aistメーリングリストの皆様

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

先日開催されましたSI2010での「RTミドルウエアコンテスト2010」にてご質問またはコメ
ント頂きました内容について、遅くなりましたが、回答させて頂きます。

なお、本メールは、SI2010に参加されなかった方にも情報を共有していただければと思い
、この ML に流させて頂いております。

Q1. onInitialize/onFinalizeでデバイスのオープン処理やメモリ領域の確保/破棄を
  行うのではなく、onActivated/onDeactivatedで行った方がよいのでは?

A1. ・そのRTCにて、デバイスを独占したい場合などは、onInitializeの段階にてデバイ
   スデバイスのオープンを行った方がよい。
  ・RAII(Resource Acquisition Is Initialization)イディオムをRTCにあてはめると
      onInitialize/onFinalizeに相当するのでは。
  ・RTCで扱うデバイスや、目的によりonInitializeにするか、onActivatedにするか
   判断する必要がある。

Q2. OpenRTM-aist-1.0.0ではバッファリングポリシーが導入されており、データが読み込
  み可能かを確認するためにはread() の戻り値を確認すればよいので、isNew()は必要
  ないのでは?
A2. ・バッファが空の状態でもブロックしないようにバッファリングポリシーが正しく設
   定されていればread()での確認でもよい。
  ・バッファが空の状態で、データが読み込み可能かを確認するためには、read()より
   isNew()の方が処理が単純で早い。
    ・read()では、push接続においてInPortに届いたデータが最新かどうかの判断はでき
      ない。

Q3. 開発者は、push型で接続するのを想定して作成されたが、ユーザーがpull型で接続さ
  れるといった懸念事項がある。これを制限するにはどうすればよいのか?
A3. ・component.confなどのコンフィグレーションファイルにてdataflow_typeを指定
   して、これを接続時に反映できるように検討させて頂きます。

Q4. デベロッパーズガイドを早く完成させてほしい。
A4. 現在、執筆中ですので、もうしばらくお待ち下さい。


何かコメント等ございましたら、ご遠慮なく頂ければと存じます。
以上、宜しくお願い致します。

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

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

  TEL: 029-861-5956



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