[openrtm-users 00070] Re: データのやり取りについて

池添明宏 ikezoe @ sec.co.jp
2006年 3月 16日 (木) 13:00:44 JST


原 様

はじめまして、池添@セックです。

現状のOpenRTM-aist-0.2.0でも、ユーザ定義型を利用することはできます。

OpenRTMのデータ入出力では、CORBA::Anyというデータ型を引数として
利用しているため、様々なデータを扱うことができるのです。

新しい型を追加するには、OpenRTM-aist-0.2.0/rtm/idl/RTCDataType.idl
を開き、module RTMの中に、以下のように好きな構造体を定義します。

------------------
module RTM {
  struct Hoge {
    short x;
    float y;
    char  z;
  };
  
  struct TimedHoge {
    Time tm;
    Hoge data;
  };
      ・
      ・
      ・
------------------

ここで注意が必要なのですが、ユーザ定義構造体には
必ずTime型のtmを含んでいる必要があります。
これは、OutPortAnyクラスの中でtmにTimeStampを設定する
処理があるためです。

そして、RTMを再コンパイルします。
  $ cd OpenRTM-aist-0.2.0/rtm
  $ make
  $ su
  Password :
  # make install

これで、自分で定義した構造体を利用できるようになります。
利用方法は、ほかのデータ型と同じです。

たとえば、コンポーネントのヘッダファイルに以下のように定義し、
  private :
    TimedHoge hoge;
    OutPortAny<TimedHoge> m_Out;

コンストラクタで、以下のように初期化します。
  MyComponent::MyComponent(RtcManage* manager)
    : RtcBase(manager),
    m_Out("hoge_out", hoge)
  {
    registerPort(m_Out);
  }

そうすると、アクティビティの中で、
  hoge.data.x = 1234;
  hoge.data.y = 56.78f;
  hoge.data.z = 'a';
  m_Out.write(hoge);

というように書くことができます。

以上

---------------------------------------------
  株式会社セック 開発本部 宇宙先端システムBF
  URL: http://www.sec.co.jp
  池添明宏  E-mail:ikezoe @ sec.co.jp
---------------------------------------------



-----Original Message-----
From: Yusuke Hara [mailto:yhara @ hmsl.elect.chuo-u.ac.jp] 
Sent: Thursday, March 16, 2006 11:16 AM
To: openrtm-users @ m.aist.go.jp
Subject: [openrtm-users 00069] データのやり取りについて


お疲れ様です。原@中央大です。
 
ひとつ質問させてください
 
OpenRTM-aist-0.4.0ではfloat以外もデータのやり取りができるようになるのでしょ
う
か?(例えば構造体など)
 
よろしくお願いします。
 
----------------------------------------
原 佑輔
中央大学大学院理工学研究科
電気電子情報通信工学専攻
博士課程前期課程1年 國井研究室
〒112-8551 東京都文京区春日1-13-27
Tel:03-3817-1866
E-Mail:yhara @ hmsl.elect.chuo-u.ac.jp
-----------------------------------------
 
>安藤@産総研です
>
>OpenRTM-aist-0.2.0 の Python 版実装がほぼ完成いたしました。
>
>python + omniORBpy が動く環境であれば、おそらくどこでも動くと思います。
>現在のところ、VineLinux, Windows 上で動作することを確認しております。
>もちろん、OpenRTM-aist-0.2.0 で作ったコンポーネントと接続することもできま
す。
>
>ご興味のある方は、安藤までメールをいただければ
>メールにてお送りいたします。
>
>近いうちに、OpenRTM-aist チュートリアルページ上でも公開する予定です。
>
>
>また、現在 OpenRTM-aist-0.4.0 を実装中です。
>見つけたバグやほしい機能のリクエスト等いただければ、
>実装に反映させていただくかもしれません。
>
>ご協力よろしくお願いいたします。
>
>        安藤慶昭@独立行政法人産業技術総合研究所 研究員
>                    知能システム研究部門 タスクインテリジェンス研究グルー
プ
>                    〒305-8568 茨城県つくば市梅園1-1-1 中央第2
>                    TEL: 029-861-5981 FAX: 029-861-5971
>                    n-ando @ aist.go.jp, n-ando @ ieee.org
 



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