[openrtm-users 02284] Re: Python版のRTC-Daemon

Ando Noriaki n-ando @ aist.go.jp
2011年 10月 18日 (火) 22:48:15 JST


菅さん

安藤です

> ■やはり,マネージャの挙動がおかしいです.
> 3つの言語を同時に入れています.
> すべてのモジュールの読み込みをコメントアウトしてからStart RTC Daemonで起動する→RTSEでmanager
> viewを確認しようとするとload failedと出力されて固まる

これは、固まったままうんともすんとも言わなくなります?
それともしばらくすると戻りますか?

Windowsだと、DLLのロードが激しく遅いため、
loadable moduleのリストを取得するのに少々時間がかかります。
ただ、結果をキャッシュしているので二回目以降はすこし
マシになります。もし、全く固まるのであればバグですので、
状況をもう少し詳しく教えてもらえないでしょうか?

> という状態です.
>
> この状態だとどういう事が起こっていますか?ご教授いただけますか?

1. RTSEのマネージャviewにアクセスすると、マネージャ(rtcd)に
対してロード可能なモジュールの一覧を問い合わせる
2. rtcdはモジュールロードパス内にあるローダブルモジュールRTC
に対してrtcprofを使ってRTCのプロファイルを取得しに行きます。
3. rtcprofはモジュールをロードして、RTCのプロファイルを取得し
標準出力に表示するプログラムです。
この時、特にWindows上で、RTCの初期化関数XXXInit()がDLL_EXPORT
されていないとload failedとか出ます。

こんな感じになります。

> 1.0RELEASEあたりから,rtcprofが導入されるなど,たぶん多言語への対応が進んでると思いますが,
> その辺の挙動が把握しきれてないので・・・すこし教授頂けるとソースを読む効率が上がると思うので・・・すみません,お忙しい中・・・orz
>
> 1.ログファイルを見るとC++のrtcd.exeを読んでもpython版のモジュールを読み込もうとしているようですが,
> どの部分で他の言語のManagerを起動してますか?(そもそもやってますか?)

言語間の連携部分は未実装なので、プロファイルの取得はしてますが、
他の言語のマネージャの起動はしてなかったと思います。
基本的にはC++のマネージャに対して、create_component() を呼んで
rtcd上でコンポーネントを起動する、というところまでです。
マネージャViewでは、一応ここまでは出来ると思います。

なお、全くできないかというと実はやり方はあります。例えば、

C++ rtcd ポート2810 daemonモード(-d) オプション
Python rtcd ポート2811 daemonモード(-d) オプション
Java rtcd ポート2812 daemonモード(-d) オプション

のように起動して、
rtcd (C++) のcreate_component() を以下のように呼び出せば
Python上のrtcd上でコンポーネントを起動できます。

create_component("ConsoleIn?manager=localhost/manager:2811&<other options>...");

ただ、Pythonのrtcdに直接アクセスしたほうが早そうですが。。。

このあたりは、現在OMGで議論しているデプロイメントに
関する標準とも関係してくるので、コンポーネントの起動や、
プロセス上でのグルーピング、多言語環境での扱いなど
現在検討中です。何かご意見有りましたらお知らせ下さい。

> 2.多言語に対応していると思いますが,その辺のrtc.confの設定方法がドキュメント化されていないのでわかりませんrtc.conf.sampleにも記述が無いです.たぶん,Pythonならmanager.Python.load_pathsだと思いますが・・・

DefaultConfig.hのことでしょうか。
manager.Python.load_paths とかはこれを使う機能が
残念ながらまだ実装されていません。

> 3.Python版のrtcdはrtcd.confを読み込むのですか?rtc.confではないのですか?C++でもそうですか?

前のメールはrtcd.conf を rtc.conf と勘違いしてました。
デフォルトではrtc.confを読み込みます。

>
> すこしご教授いただければと存じます.
> よろしくお願いします.
>
>
> 2011年10月17日8:32 Ando Noriaki <n-ando @ aist.go.jp>:
>> 菅さん,皆さん
>>
>> 安藤です
>>
>>> OpenRTM-aist MLの皆さま:
>>> お世話になっております.菅です.
>>> (まとめて報告出来なくてすみません...)
>>>
>>> 件名の通り,Python版のRTC-daemonが起動できません.
>>>
>>> 1.スタートメニューのショートカットが間違っています.
>>> Start RTC Daemonというショートカットの先が,rtcd.confになっています.
>>
>> すみません,なってますね.修正します.
>>
>> 調べる過程で,rtcd.pyがカレントにあるrtc.confを
>> 読み込まない,また-fオプションでrtc.confを指定しても設定が
>> 行われない現象がありました.Win7 64bitです.
>> ただし,コマンドラインから任意のオプションをしていする-o は
>> 有効でした.(-o corba.nameserver:localhost,192.168.47.1 など)
>>
>> 調査・修正よろしくおねがいします.>栗原さん
>>
>>> 2.rtcd.py rtcd_python.bat,どちらも起動しません.
>>> どちらもマネージャが起動しません.すぐに終了してしまいます.
>>
>> 具体的に,どのようなメッセージが出るとかわかりますか?
>> -d オプションをつけても同じでしょうか?
>>
>> rtcd はデフォルトでスレーブモードで起動して,RTCが一つもない状態だと
>> 10秒程度で終了するようになっています.
>> http://openrtm.org/openrtm/ja/content/rtcconf%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7#toc3
>> manager.shutdown_auto の項目
>>
>> http://openrtm.org/svnroot/OpenRTM-aist/trunk/OpenRTM-aist/etc/rtc.conf.sample
>> Manager auto shutdown options の項目参照
>>
>>> こちらの環境は,
>>> Win7 x64 Pro, OpenRTM-aist 1.1 C++ RC3, Python RC1, Java RC1です. Python26です.
>>
>> Pythonは64bit版でしょうか?
>> またOpenRTM-aistはこちらで用意したmsi版でしょうか?
>> もしくは自前でコンパイルしたものでしょうか?
>>
>> ちなみに,こちらはまだ余裕がなくてWindowsの64bit版の検証まで
>> ちゃんとできておらず,したがって,リリースしているmsiも32bit版
>> しかありませんのでご注意ください.
>>
>> C++もインストールされているようですが,ちゃんと動きますか?
>> 私も最近ようやくWindows7 64bitで動かし始めているのですが,
>> コンポーネント自体は起動できて動くのですが,Win7 64bit上の
>> ネームサーバが全く使えず困っています.
>> #コンポーネントの登録が全くできない.しかし,
>> #他のネームサーバにはWin7 64bit上のRTCは登録できる
>>
>> ネームサーバを互換モードで起動してみたり,IPv6を切ってみたり
>> したのですが,状況はあまり変わらずです.
>> 64bit版のomniNamesも試したのですが,こちらはRTSEで接続する
>> ことすらできませんでした.(ざっと試しただけですが...)
>>
>> 何か情報ありましたらよろしくお願いします.
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users @ openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
>
> _______________________________________________
> openrtm-users mailing list
> openrtm-users @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users
>
>



-- 
安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
    統合知能研究グループ 主任研究員, 博士(工学)
    〒305-8568 つくば市梅園1-1-1 中央第2
    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
    OpenRTM-aist: http://www.openrtm.org

Noriaki Ando, Ph.D.
    Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
    AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
    OpenRTM-aist: http://www.openrtm.org


openrtm-users メーリングリストの案内