[openrtm-users 00158] Re:

Ando Noriaki n-ando @ aist.go.jp
2007年 7月 18日 (水) 15:17:39 JST


賀田さま

産総研の安藤です

下記の手順でほとんどあっていると思いますが、

> はじめまして。中央大学理工学部國井研究室4年の賀田と申します。
> 現在OpenRTMの勉強中です。開発環境はVM上でのOpenRTM-aist-FC6です。
>
> 画像の送受信をするコンポーネントを作ろうと思い、以前先輩が作ったコンポーネン
> トを参考にしました。
> そのソースのヘッダファイルに、 "TimedImagetype" という変数の型があり、これ
> が画像の送受信用のものと判断しました。
> ところがOpenRTMのデベロッパーズガイドを見ると "TimedImagetype"という型は無い
> ことがわかりました。
> そこで自分で型を定義する必要があると考え、
> /home/openrtm/OpenRTM-aist-0.4.0/rtm/idl にある、"BasicDataType.idl"を編集し
> ました。編集内容は以下の通りです。
>
>
> 〜BasicDataType.idl〜
> struct Imagetype{
>     long point_size;
>     long Send_Buf[3][10000];
>     long  Image_New;
>     float address;
> };
>
> struct TimedImagetype{
>    Time tm;
>    Imagetype data;
> };
>
> *これらの構造体を追加。内容は以前先輩が作ったものと同じ。
>
>
> このIDLファイルをメイクし、"BasicDataType.hh"が変更されるのも確認しました。

この、変更されたヘッダはシステムのヘッダのディレクトリにインストールされていますか?
つまり、変更後 make install をましたか?

> そしてテンプレートの "ConsoleIn.h"を以下のように編集しました。

テンプレートのConsoleIn.hとは?

> 〜ConsoleIn.h〜
> TimedImagetype m_imageout;
> OutPort<TimedImagetype> m_Outimage;
>
> *これらの構造体変数とインスタンスを追加。
>
>
> こうしてテンプレートの "Makefile.ConsoleIn" をメイクしたところ、以下のような
> エラーがでました。
>
>
> 〜エラーの内容〜
> error:  TimedImagetype' does not name a type
> error:  TimedImagetype' was not declared in this scope
> error:  template argument 1 is invalid

コンパイル時にヘッダを探すパスに、先ほど変更された.hhのファイルが
存在するディレクトリは含まれていますか?

あと、ひとつ気になるのは、新たに作成したTimedImagetypeのネームスペースは
どこでしょうか?
もし、RTCのネームスペースにあるのであれば、

RTC::TimedImagetype m_imageout;
OutPort<RTC::TimedImagetype> m_Outimage;

とすべきですね。

> 根本的に間違っているんでしょうか?今の僕にはどうしたら良いかわかりません。
> よろしかったらどこが間違っているか教えていただけないでしょうか?
> もし、根本的に間違っていたら、どうしたらRTで画像データのやり取りができるか教
> えていただきたいです。
> よろしくお願い致します。
>


-- 
安藤慶昭@独立行政法人産業技術総合研究所 研究員
                   知能システム研究部門 タスクインテリジェンス研究グループ
                   〒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 メーリングリストの案内