賀田さま
産総研の安藤です
下記の手順でほとんどあっていると思いますが、
> はじめまして。中央大学理工学部國井研究室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 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 m_Outimage;
とすべきですね。
> 根本的に間違っているんでしょうか?今の僕にはどうしたら良いかわかりません。
> よろしかったらどこが間違っているか教えていただけないでしょうか?
> もし、根本的に間違っていたら、どうしたらRTで画像データのやり取りができるか教
> えていただきたいです。
> よろしくお願い致します。
>
はじめまして。中央大学理工学部國井研究室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"が変更されるのも確認しました。 そしてテンプレートの
"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
根本的に間違っているんでしょうか?今の僕にはどうしたら良いかわかりません。
よろしかったらどこが間違っているか教えていただけないでしょうか? もし、根本的に間違っていたら、どうしたらRTで画像データのやり取りができるか教
えていただきたいです。 よろしくお願い致します。