RTCTemplateのばかー。。

昨日、東大で行われたソフトウェアセミナーに行きました。学生さんが多くて場違いな感じでしたが、WillowGarageのお二人のお話はとても興味深かったです。OpenCV次版のリリースが6月なのも知らなかったのでラッキーでした。WillowGarageさんのHPはかなり面白いのでいろいろ見てます。JSK岡田氏の研究成果にはビックリしました。動向をウォッチしている研究者の方々から見れば当たり前なのかもしれませんが。HRP2にカメラが5個もついているとはいえ、台所の作業をリアルタイムにビジュアルフィードバックするところは圧巻でした。んー、これでビジネスにならないのかー。

サービスポート勉強中

いまサービスポートの実装を勉強しています。
RTCTemplateで各種設定をしてVC++のソリューションを生成して、実装という手順を踏んでいるのですが、ConsumerやProviderのコンポーネントをつくってコンパイルしても

~~Skel.h 開けません
~~Stub.h 開けません。

と言われます。確かに~~Skel.cpp/hや~~Stub.cpp/hはソリューションの中にはあってもファイルは開けず、フォルダの中にもできていません。この間試したときは出来ていたのに変だなぁ。

いろいろ試す。

本来はビルド前イベントでIDLコンパイラを呼び出してファイルを生成するはずなのですが、ビルド前イベントで指定のコマンドが走っていないようです。IDLコンパイラはomniORBが持っているので、環境変数は..問題ない。インストールフォルダの中を確認しましたが、omniidl.exeは正常に動くみたいです。いっそのこと自分でコンパイルのバッジファイルを作成しようかと思いましたが、コンパイルオプションがややこしいので諦めました。何もファイル壊したりしてないのに時間がもったいない。システムの復元とかもしてみたけどダメ。
結局、原因は分かりませんでしたが、正常系は確認できました。要するにRTCTemplateでIDLファイルのパスを指定するときに、"ソリューションの生成先のフォルダ"にIDLファイルを置いていないとうまくいかないようです。つまり、原因はRTCTemplateのバグです。できればIDLファイルのデグレードは避けたいのでProviderとConsumerは同一のIDLファイルを参照するようにしたいのが普通でしょう。たぶん。
メーリングリストとかで報告したいところですが、今は超〜忙しいだろうし、OpenRTM-aist1.0で直っていることでしょう。