[openrtm-users 00526] OprnRTM-0.4.2でIDLファイルを追加できない。

4 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 16時間 18分 前
登録日: 2009-06-23 14:31
[openrtm-users 00526] OprnRTM-0.4.2でIDLファイルを追加できない。

榎本です。

http://www.is.aist.go.jp/rt/OpenRTM-aist/html/FAQ2FRTE382B3E383B3E3839DE383BCE3838DE383B3E38388E4BD9CE68890.html#vfed5000
のページの「標準以外のデータ型をInPort/OutPortで使うには」を参考に
generator.sh,TimedImage.idl(ファイルを添付します)を作成し,
# sh generator.sh
# make -f Makefile.ConsoleIn
を実行してみたところ、
Fedora8+OpenRTM-0.4.2の環境ではmakeの時以下のようなエラーが出てしまいます.

# make -f Makefile.ConsoleIn
rm -f ConsoleIn.o
g++ `rtm-config --cflags` -I. -c -o ConsoleIn.o ConsoleIn.cpp
ConsoleIn.h:97: error: 'TimedImage' does not name a type
ConsoleIn.h:98: error: 'TimedImage' was not declared in this scope
ConsoleIn.h:98: error: template argument 1 is invalid
ConsoleIn.cpp: In constructor 'ConsoleIn::ConsoleIn(RTC::Manager*)':
ConsoleIn.cpp:32: error: 'm_out' was not declared in this scope
ConsoleIn.cpp:32: error: member initializer expression list treated as
compound expression
ConsoleIn.cpp:41: error: no matching function for call to
'ConsoleIn::registerOutPort(const char [4], int&)'
make: *** [ConsoleIn.o] エラー 1

しかしながら、Fedora7+OpenRTM-0.4.1の環境ではエラーが発生せず,makeが通すことができました.

OpenRTM-0.4.2にてIDLを付けた際にrtc-templateが作るファイルが
0.4.1とは少し違っているようです。

宜しくお願い致します。

未定義
root
オフライン
Last seen: 16時間 18分 前
登録日: 2009-06-23 14:31
[openrtm-users 00531] OprnRTM-0.4.2でIDLファイルを追加できない。

未来ロボット技術研究センターの清水です。

Ubuntu 7.10+OpenRTM-0.4.2でも下記引用と同様の現象が発生しております。

ちなみに、
0.4.1のrtc-templateから作成されたソースは0.4.2においてコンパイルできました。

以上、宜しく御願いいたします。

yosuke enomoto さんは書きました:
> 榎本です。
>
> http://www.is.aist.go.jp/rt/OpenRTM-aist/html/FAQ2FRTE382B3E383B3E3839DE383BCE3838DE383B3E38388E4BD9CE68890.html#vfed5000
> のページの「標準以外のデータ型をInPort/OutPortで使うには」を参考に
> generator.sh,TimedImage.idl(ファイルを添付します)を作成し,
> # sh generator.sh
> # make -f Makefile.ConsoleIn
> を実行してみたところ、
> Fedora8+OpenRTM-0.4.2の環境ではmakeの時以下のようなエラーが出てしまいます.
>
> # make -f Makefile.ConsoleIn
> rm -f ConsoleIn.o
> g++ `rtm-config --cflags` -I. -c -o ConsoleIn.o ConsoleIn.cpp
> ConsoleIn.h:97: error: 'TimedImage' does not name a type
> ConsoleIn.h:98: error: 'TimedImage' was not declared in this scope
> ConsoleIn.h:98: error: template argument 1 is invalid
> ConsoleIn.cpp: In constructor 'ConsoleIn::ConsoleIn(RTC::Manager*)':
> ConsoleIn.cpp:32: error: 'm_out' was not declared in this scope
> ConsoleIn.cpp:32: error: member initializer expression list treated as
> compound expression
> ConsoleIn.cpp:41: error: no matching function for call to
> 'ConsoleIn::registerOutPort(const char [4], int&)'
> make: *** [ConsoleIn.o] エラー 1
>
> しかしながら、Fedora7+OpenRTM-0.4.1の環境ではエラーが発生せず,makeが通すことができました.
>
> OpenRTM-0.4.2にてIDLを付けた際にrtc-templateが作るファイルが
> 0.4.1とは少し違っているようです。
>
> 宜しくお願い致します。
>

root
オフライン
Last seen: 16時間 18分 前
登録日: 2009-06-23 14:31
[openrtm-users 00639] OprnRTM-0.4.2でIDLファイルを追加できない。

榎本です.

Linux環境下では、rtc-templete-0.4.2において、「標準以外のデータ型をInPort/OutPortで使うには」を行いますと、
生成されるソースファイルに足りない部分があり、makeに失敗する現象が起きています.
しかしながら、rtc-templete-0.4.1で生成したソースファイルであれば、makeする事ができます.

そこで、ソースファイル群の差分をとり調べたところ、ver0.4.2で生成したファイル群のうち。
(RTC名).hとMakefile.(RTC名)に以下の部分について書き加える事でmakeに成功したしました.

1. (RTC名).hに #include "(IDL名)Stub.h" を書き加える。
2. Makefile.(RTC名)の27行目を SKEL_OBJ = を下記に書き換える。
SKEL_OBJ = (IDL名)Stub.o
3.Makefile.(RTC名)の58行目以降に下記を書き加える.
(IDL名)Stub.cpp : (IDL名).idl
$(IDLC) $(IDLFLAGS) (IDL名).idl
$(WRAPPER) $(WRAPPER_FLAGS) --idl-file=(IDL名).idl
(IDL名)Stub.h : (IDL名).idl
$(IDLC) $(IDLFLAGS) (IDL名).idl
$(WRAPPER) $(WRAPPER_FLAGS) --idl-file=(IDL名).idl
4.Makefile.(RTC名)の62行目の(RTC名).o: (RTC名).hを下記に書き換える.
(RTC名).o: (RTC名).h (IDL名)Stub.h
5.Makefile.(RTC名)の最終行に下記を書き加える。
(IDL名)Stub.o: (IDL名)Stub.cpp (IDL名)Stub.h

参考資料として、rtc-templete-0.4.2で生成したファイル群(0.4.1_files.tar.gz
)・rtc-templete-0.4.1で生成したファイル群(0.4.2_files.tar.gz)・rtc-templete-0.4.2で生成したファイルに書き加えたもの(0.4.2_change_files.tar.gz)を添付します.
添付いたしますファイル群では(RTC名)=ConsoleIn、(IDL名)=TimedImageとします。

宜しくお願い致します.

2008/07/17 14:26 Masaharu Shimizu :
> 未来ロボット技術研究センターの清水です。
>
> Ubuntu 7.10+OpenRTM-0.4.2でも下記引用と同様の現象が発生しております。
>
> ちなみに、
> 0.4.1のrtc-templateから作成されたソースは0.4.2においてコンパイルできました。
>
> 以上、宜しく御願いいたします。
>
> yosuke enomoto さんは書きました:
>> 榎本です。
>>
>> http://www.is.aist.go.jp/rt/OpenRTM-aist/html/FAQ2FRTE382B3E383B3E3839DE383BCE3838DE383B3E38388E4BD9CE68890.html#vfed5000
>> のページの「標準以外のデータ型をInPort/OutPortで使うには」を参考に
>> generator.sh,TimedImage.idl(ファイルを添付します)を作成し,
>> # sh generator.sh
>> # make -f Makefile.ConsoleIn
>> を実行してみたところ、
>> Fedora8+OpenRTM-0.4.2の環境ではmakeの時以下のようなエラーが出てしまいます.
>>
>> # make -f Makefile.ConsoleIn
>> rm -f ConsoleIn.o
>> g++ `rtm-config --cflags` -I. -c -o ConsoleIn.o ConsoleIn.cpp
>> ConsoleIn.h:97: error: 'TimedImage' does not name a type
>> ConsoleIn.h:98: error: 'TimedImage' was not declared in this scope
>> ConsoleIn.h:98: error: template argument 1 is invalid
>> ConsoleIn.cpp: In constructor 'ConsoleIn::ConsoleIn(RTC::Manager*)':
>> ConsoleIn.cpp:32: error: 'm_out' was not declared in this scope
>> ConsoleIn.cpp:32: error: member initializer expression list treated as
>> compound expression
>> ConsoleIn.cpp:41: error: no matching function for call to
>> 'ConsoleIn::registerOutPort(const char [4], int&)'
>> make: *** [ConsoleIn.o] エラー 1
>>
>> しかしながら、Fedora7+OpenRTM-0.4.1の環境ではエラーが発生せず,makeが通すことができました.
>>
>> OpenRTM-0.4.2にてIDLを付けた際にrtc-templateが作るファイルが
>> 0.4.1とは少し違っているようです。
>>
>> 宜しくお願い致します。
>>
>
>

root
オフライン
Last seen: 16時間 18分 前
登録日: 2009-06-23 14:31
[openrtm-users 00555] OprnRTM-0.4.2でIDLファイルを追加できない。

未来ロボット技術研究センターの清水です。

下記の通り0.4.2のrtc-templateでは、標準以外のデータ型を使う場合に生成されるソー
スコードがコンパイルできません。
そこで、eclipse上のrtc-template(GUI版)を使って標準以外のデータ型を使うソースを
生成しようかと思ったのですが、IDLファイルだけを登録する場所がないのでどのように
するのかわかりません。

GUI版rtc-templateを使って標準以外のデータ型を使うソースを生成することはできるの
でしょうか?

情報お持ちの方がいらっしゃいましたら教えていただけると幸いです。

宜しく御願いいたします。

yosuke enomoto さんは書きました:
> 榎本です。
>
> http://www.is.aist.go.jp/rt/OpenRTM-aist/html/FAQ2FRTE382B3E383B3E3839DE383BCE3838DE383B3E38388E4BD9CE68890.html#vfed5000
> のページの「標準以外のデータ型をInPort/OutPortで使うには」を参考に
> generator.sh,TimedImage.idl(ファイルを添付します)を作成し,
> # sh generator.sh
> # make -f Makefile.ConsoleIn
> を実行してみたところ、
> Fedora8+OpenRTM-0.4.2の環境ではmakeの時以下のようなエラーが出てしまいます.
>
> # make -f Makefile.ConsoleIn
> rm -f ConsoleIn.o
> g++ `rtm-config --cflags` -I. -c -o ConsoleIn.o ConsoleIn.cpp
> ConsoleIn.h:97: error: 'TimedImage' does not name a type
> ConsoleIn.h:98: error: 'TimedImage' was not declared in this scope
> ConsoleIn.h:98: error: template argument 1 is invalid
> ConsoleIn.cpp: In constructor 'ConsoleIn::ConsoleIn(RTC::Manager*)':
> ConsoleIn.cpp:32: error: 'm_out' was not declared in this scope
> ConsoleIn.cpp:32: error: member initializer expression list treated as
> compound expression
> ConsoleIn.cpp:41: error: no matching function for call to
> 'ConsoleIn::registerOutPort(const char [4], int&)'
> make: *** [ConsoleIn.o] エラー 1
>
> しかしながら、Fedora7+OpenRTM-0.4.1の環境ではエラーが発生せず,makeが通すことができました.
>
> OpenRTM-0.4.2にてIDLを付けた際にrtc-templateが作るファイルが
> 0.4.1とは少し違っているようです。
>
> 宜しくお願い致します。
>

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク