[openrtm-users 01586] Re: name service view にモジュールが表示されない

Shunji Satoh shun @ is.uec.ac.jp
2011年 2月 17日 (木) 23:34:07 JST


清水さん,安藤さん

電通大院・佐藤俊治です.
早速のご返信,大変ありがとうございます.

結論から申し上げますと,期待した結果が得られました.誠にありがとうございます.原因は,安藤
さんが暗に指摘されていたとおり,VMware の仮想 NIC のようです.ただ,理解できないこともあり
ました.(複数のNICが原因ならば,なぜ endpoints の設定などではうまくいかなかったのかが理解
できません.直接の原因は清水さんの指摘の通り,ログ解析やトレースが必要かもしれません.)

具体的には次のことを試しました.

> 産総研 安藤です
> 
> 以下を試してみていただけないでしょうか?
> 
> ・hostA、hostBでともにrtc.confにcorba.endpoints を設定する。

私の環境では,hostA=aaa.aaa.aaa.137,hostB=bbb.bbb.bbb.211 が物理的NICのアドレスとなってい
ましたので,
hostAのrtc.confで,corba.endpoints: aaa.aaa.aaa.137:
hostBのrtc.confで,corba.endpoints: bbb.bbb.bbb.211:
としましたが,状況は変化しませんでした(10秒程度でhostBのモジュールが destruct される)

> ・USBCameraMonitorのconfigurationでイメージサイズを正しく設定する。
>  デフォルトでは320x240ですが、USBCameraAcquireComp側のサイズが例えば
>    640x480だったりしないでしょうか?

確認しましたが,整合していました.

> ・ネームサービス起動batファイルのOMNIORB_USEHOSTNAMEを有効にし設定する
> rtm-naming.bat内で、
> 
> rem set OMNIORB_USEHOSTNAME=localhost
> 
> となっているところをコメントインして、自ホストのIPアドレスを設定する
> 
> set OMNIORB_USEHOSTNAME=192.168.1.14

set OMNIORB_USEHOSTNAME=aaa.aaa.aaa.137
としましたが,状況は変化しませんでした.

> ちなみに、hostA、hostBともに、ネットワークインターフェースは
> いくつありますか?また、VMwareなどはインストールされていますか?

hostA,hostB ともに VMware がインストールされています.corba.endpoints の設定を促してくだ
さったことから,安藤さんはおそらく,複数の NIC が問題の原因であることを予想されているのだ
ろうと思いましたので,両ホストの VMware 仮想 NIC を無効化しました.
すると,期待した通り,destruct されることなく,期待した結果がえられました.
# 文章なので,さらっと書きましたが,うまくいったときは大変うれしかったです.
# ありがとうございます.

ただそうなると,なぜ corba.endpoints と OMNIORB_USEHOSTNAME の設定で,うまくいかないのかを
まだ理解できておりません.

もう少し原因を絞るべく,次のことを試しましたので,報告します.

OKの状態で,hostA(ネームサーバ)の仮想 NIC を有効にする⇒ OKのまま.
hostAの仮想 NIC を有効にしてから,hostAでネームサーバ起動 ⇒ ダメ.
hostB の仮想 NIC の無効・有効は,結果に影響せず.

> あとは、Windowsが7かつ64bitというところがちょっと引っかかりますが、
> #こちらでは64bitのWindowsでは検証していません。
> とりあえず上記を試してみてください。

hostA(64bit=ネームサーバ)⇔ hostB(32bit):うまくいかない
hostC(32bit)⇔ hostB(32bit=ネームサーバ):OK

という状況でしたが,これまでの状況を考えますと,64bit windows の VMware が原因であったので
はないかと考えております.原因を正確に特定できましたら改めて報告します.

皆様ありがとうございました.
とりあえず以上です.


> 
>> 電気通信大学大学院の佐藤と申します.
>>
>> 複数台のホストに OpenRTM-aist-1.0.0 をインストールし,ネットワーク越しのコンポーネント接続
>> を試みておりますが,特定のホストの組み合わせで「name service view に表示されない」「途中で
>> コンポーネントが異常終了する」問題が発生します.
>> 用いたコンポーネントは example フォルダの USBCameraMonitorComp.exe と
>> USBCameraAquireComp.exe です.解決方法など教えていただければ幸いです.
>>
>> *** やろうとしていること***
>> ・hostAに接続されたUSBカメラの映像を(Windows 7 Professional, 64bit),
>> ・hostBで表示する(Windows XP SP3, 32bit)
>> ことを試みており,以下の作業を行いましたが期待した結果が得られません.ただ,全く動作しない
>> のではなく,10秒ほどうまく表示される場合もあり,数日悩んでおります.具体的には以下の通りです.
>>
>> -----
>> ・hostA (USBカメラ付き)にて
>> 1.name server 起動
>> 2.example/USBCameraAquireComp.exe を実行.
>>
>> ・hostB (モニタ用)にて
>> 3.example/rtc.conf を corba.nameservers hostA のように修正し,
>> 4.example/USBCameraMonitorComp.exe を実行し,hostA の name server に登録.
>> 5.RT System Editor の name service view にて hostA を追加するが,host A のIP アドレスだけ
>> が表示されており,上記の2.と4.で実行したコンポーネントが **表示されない**(ゾンビでもない)
>>
>> しかし,
>> ・hostA に戻って,
>> 6.host A の RT System Editor の name service view では,上記2.と4.が登録されている事が
>> 確認できる.
>> 7.(コンポーネントが見えている)host A の RT System Editor にて,USBCameraMonitor0 と
>> USBCameraAquire0 を結合し,Activate すると **期待通りに表示された** と思いきや,
>> 8.10秒ほどすると,host B の USBCameraMonitor0 がフリーズする.その時のメッセージ:
>> omniORB: ERROR -- A servant has been deleted that is still activated. id root<4>
>> (deactivating)
>> -----
>>
>> 10秒ほどではありますが,一応実行されているので,ファイアウォールの問題ではないと推測してい
>> ました.が,しかし,
>>
>> 上で述べた hostA(カメラ)と hostB(モニタ)の関係を逆にすると,
>> http://www.openrtm.org/openrtm/ja/node/1190 の,
>> 「コンポーネントは起動しているはずなのにゾンビオブジェクトとして表示される」が発生します.
>> 具体的には,前述の1〜8.の hostA  と hostB の関係を入れ替えて,
>> 9.hostA の USBCameraMonitorComp.exe を hostB の name server に登録すべく実行するも,
>> 10.hostB の name service view では 9.がゾンビオブジェクトとして表示されている.
>>
>> となります.試したことなどは以下の通りです.
>> ・両 host からの ping → 通る
>> ・両 host のファイアウォールを無効にする → 状況変わらず
>> ・anti-virus ソフトを停止する,アンインストールする → 状況変わらず
>> ・OSが原因かと思い,hostA にかわって,hostC(Windows 7 Professional 32bit)に置き換える→う
>> まくいく.
>>
>>
>> 皆様からのアドバイスを頂戴できれば幸いです.
>> 以上です.
>>
>>
>>
>>
>>
>>
>>
> 
> 
> 




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