[openrtm-users 00048] Re: タイムスタンプの扱いについて
Akio Uda
uda-axa @ necst.nec.co.jp
2005年 12月 12日 (月) 16:02:36 JST
To: 産総研 安藤様
いつも御世話になります。宇田@NECシステムテクノロジーです
ご回答ありがとうございます。
> 宇田様
>
> 安藤@産総研です
>
> 御世話になります。
>
> > OpenRTMコンポーネントのタイムスタンプの扱いについて教えて下さい。
> >
> > InPort/OutPortの型としてタイムスタンプ付きのデータ型が定義されて
> > いるかと思いますが、このタイムスタンプの付け方について、RTMとして
> > 何か統一的な取り決めはありますでしょうか?
> >
> > 例えばタイムスタンプの意味としては、
> >
> > (1) データの生成時刻
> > (2) OutPortからの送出時刻
> > (3) データの有効期限
> >
> > などが考えられますが、基本的には(1)と考えてよろしいでしょうか。
>
> はい、基本的に(1)でよろしいと思います。
> もう少し詳しく言いますと、OutPortAny<T> の write() メソッドが呼ばれた
> 時刻が自動的に代入されます。
了解致しました。タイムスタンプを自前で設定する必要があるのかと
思いまして、質問させて頂いた次第です。
> > またRTMBase.idlには
> >
> > struct Time
> >
> > {
> >
> > unsigned long sec; // sec
> >
> > unsigned long nsec; // nano sec
> >
> > };
> >
> >
> > と定義されていますが、これは例えばUTC(協定世界時)をsec:nsec
> > に直したものなど、何かご推奨の形式はありますでしょうか。
>
> これは、clock_gettime(2) で取得した値が上記のタイミングで自動的に代入されます。
>
> この辺はガイドでもあまり詳しく述べていませんでしたね。
> 次バージョンでは詳細に記述したいと思います。
ありがとうございます。そうして頂けるととても助かります。
> タイムスタンプはどのようにお使いでしょうか?
> もしよろしければどのように使っているかお教えくださいませんか?
RTMでは(設定するだけで)使うことは特に想定していなかったのですが、
例えばイベントドリブンで駆動するロボットシステムの場合、イベントの
タイムスタンプからその鮮度を判定して、あまり古いイベントは定期的に
イベントキューから除去するといった使い方があるかと思います。
無論、アプリケーションが待ち合わせに使っているイベントは勝手に掃除
するとフリーズの原因になりますので、選択的に掃除できるしくみが必要
になるとは思いますが。
RTMの場合はInPortがリングバッファになっていることから、古いデータ
は自動的に新しいデータで上書きされると思いますので、必ずしも上記の
掃除は必要ないかもしれません。
>
> 安藤慶昭@独立行政法人産業技術総合研究所 研究員
> 知能システム研究部門 タスクインテリジェンス研究グループ
> 〒305-8568 茨城県つくば市梅園1-1-1 中央第2
> TEL: 029-861-5981 FAX: 029-861-5971
> n-ando @ aist.go.jp, n-ando @ ieee.org
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
z 宇田 安規男 z
z NECシステムテクノロジー株式会社 システムテクノロジーラボラトリ z
z 神奈川県川崎市中原区下沼部 1753 NEC 玉川事業場 9号館 z
z 〒 211-8666 Tel: 044-431-7574 Fax: 044-431-7588 z
z E-mail: uda-axa @ necst.nec.co.jp z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
openrtm-users メーリングリストの案内