[openrtm-users 02295] 標準ではない実行コンテキストでの実行
shinsuke79fake @ gmail.com
shinsuke79fake @ gmail.com
2011年 10月 24日 (月) 00:25:49 JST
法政大学 米長慎介と申します。
現在、Javaで作成したRTCをOpenHRPが提供する実行コンテキストである、SynchExtTriggerECで実行しようと試みているのですが、コンポーネントが実行コンテキストを見つけることが出来ず、起動ができない状況が続いています。お力を貸していただけないでしょうか。
rtc.confは以下の内容となっています。
>corba.nameservers: localhostnaming.formats: %n.rtcexec_cxt.periodic.type:
>SynchExtTriggerEC
この状況でRTCを実行すると、ログファイルに以下のような結果が出力され、コンポーネントの生成に失敗してしまいます。
>Oct 23 23:15:26 Manager ERROR : Factory not found: SynchExtTriggerEC
>Oct 23 23:15:26 Manager TRACE : RTC initialization failed:
>Oct 23 23:15:26 RTObject_impl TRACE : RTObject_impl.exit()
とはいっても、現在OpenRTM-aistが対応する標準の実行コンテキストは PeriodicExecutionContextと
ExtTrigExecutionContextの2つだけなので、存在するはずのないSynchExtTriggerECを指定すれば、対応できないエラーが出て当然だと感じました。
しかし、他のOpenHRPのサンプルは、rtc.confに特別な記述を行ったり、ソース内にSynchExtTriggerECに関わるオブジェクトを保持している様子がないにも関わらず、当たり前のように起動することができているようです。また、困っている人もいないようです。
サンプルのコンポーネントと自分のコンポーネントの違いは、プログラミング言語が違うということです。
しかし、言語が違うとしても、rtc.confやソース内で特別なことをしていないことを考えると、C言語だから標準で対応していないSynchExtTriggerECを当たり前のように利用できるというのは自分の中で納得することができません。
そこで質問が2つあります。
*コンポーネント起動時、実行コンテキストを検索する範囲*
コンポーネントを起動する際(C言語なら○○○Comp.exe,
Javaなら○○○Comp.classにコンフィグファイルを引数に渡して起動する際)、コンフィグファイルで指定された実行コンテキストが標準のものではない場合、どこを探してくれるのでしょうか。
*実行コンテキストの互換性*
ある個人のホームページで、オリジナルの実行コンテキストを作成している方がいました。その方は実行コンテキストをローダブルモジュールとして作成し、その実行コンテキストを実行するコンポーネントのコンフィグファイルに以下の文を追加していました。
>manager.modules.preload: 実行コンテキスト名.dll
実行コンテキストはどのプログラミング言語もローダブルモジュールで提供されているのでしょうか。また、実行コンテキストはどのプログラミング言語でも共通して利用することができるのでしょうか。
よろしくお願いします。また上記の質問の他にも、(OpenRTMのフォーラムとしては不適切かもしれませんが…)OpenHRPで利用するコンポーネントをC言語で作成する際に通常のOpenRTMで利用するコンポーネントの作成方法と異なる部分など、関連する情報を知っていましたら教えていただけると幸いです。
openrtm-users メーリングリストの案内