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

6 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 21時間 27分 前
登録日: 2009-06-23 14:31
[openrtm-users 01581] name service view にモジュールが表示されない

電気通信大学大学院の佐藤と申します.

複数台のホストに 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)に置き換える→う
まくいく.

皆様からのアドバイスを頂戴できれば幸いです.
以上です.

未定義
root
オフライン
Last seen: 21時間 27分 前
登録日: 2009-06-23 14:31
[openrtm-users 01582] name service view にモジュールが表示されない

佐藤様

静岡大の清水です。

役に立たないかもしれませんが、少し調べてみました。

> omniORB: ERROR -- A servant has been deleted that is
> still activated.

このメッセージがどういう時に出るのかomniORBの
ソースをgrepしました。

omniServant::~omniServant();
の中にこのメッセージがあります。
メッセージは、もしこのサーバントが具現化した
オブジェクトがまだ存在してれば、出るようです。

ということは、omniServantをデストラクトしている
処理がどこかで起こっていることになります。

omniServant <- ServantBase <- RefCountServantBase
という継承関係があるので、
RefCountServantBaseをデストラクトしている処理を
探せば良さそうです。

OpenRTM-aistでは、RefCountServantBaseを継承しているのは
、以下のクラスのようです(grep結果)
・CorbaPort
・ExecutionContextBase
・InPortCorbaCdrProvider
・ManagerServant
・OutPortCorbaCdrProvider
・PortBase
・RTObject_impl
・SdoConfiguration
・SdoOrganization

なので、この内のどれかのデストラクタが呼ばれている
ことになりますね。
どれが呼ばれているかは、RTMのログ等で解析できそうな
気がしますので、やってみてはどうでしょうか?

# もしかしたら、デストラクト処理はログに出ないかも
しれません。その場合は、自力で調べるしかないですね。

清水

root
オフライン
Last seen: 21時間 27分 前
登録日: 2009-06-23 14:31
[openrtm-users 01583] name service view にモジュールが表示されない

産総研 安藤です

以下を試してみていただけないでしょうか?

・hostA、hostBでともにrtc.confにcorba.endpoints を設定する。
・USBCameraMonitorのconfigurationでイメージサイズを正しく設定する。
 デフォルトでは320x240ですが、USBCameraAcquireComp側のサイズが例えば
640x480だったりしないでしょうか?
・ネームサービス起動batファイルのOMNIORB_USEHOSTNAMEを有効にし設定する
rtm-naming.bat内で、

rem set OMNIORB_USEHOSTNAME=localhost

となっているところをコメントインして、自ホストのIPアドレスを設定する

set OMNIORB_USEHOSTNAME=192.168.1.14

この例では、このネームサーバを動かすホストのIP 192.168.1.14 を設定しています。

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

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

> 電気通信大学大学院の佐藤と申します.
>
> 複数台のホストに 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)に置き換える→う
> まくいく.
>
>
> 皆様からのアドバイスを頂戴できれば幸いです.
> 以上です.
>
>
>
>
>
>
>

root
オフライン
Last seen: 21時間 27分 前
登録日: 2009-06-23 14:31
[openrtm-users 01584] name service view にモジュールが表示されない

安藤様

静岡大の清水です。

標記の件で一つ気になったのですが、やはりOpenRTM-aistは
Windows 64bitsには未対応なのでしょうか?

omniORBは「Windows 64bits対応」と公式に言っているので、
問題の原因はRTM側にあるのでは?と推測しています。

標記の件は、32bitsのWindows同士では問題ないとのことなの
で、
32bitsでも共通のネットワーク関連の問題ではなく、
64bits環境でのみ起こる問題ではないかと考えられます。

何か分かることがあれば教えて頂けると幸いです。

清水

root
オフライン
Last seen: 21時間 27分 前
登録日: 2009-06-23 14:31
[openrtm-users 01585] name service view にモジュールが表示されない

安藤です

> 静岡大の清水です。
>
> 標記の件で一つ気になったのですが、やはりOpenRTM-aistは
> Windows 64bitsには未対応なのでしょうか?
>
> omniORBは「Windows 64bits対応」と公式に言っているので、
> 問題の原因はRTM側にあるのでは?と推測しています。

こちらは、Windowsの64bit版のomniORBもOpenRTMもバイナリリリース
してないですし、今のところ検証もしていません。
#単純にomniORBがWindowsの64bitバイナリを配布してないからです、
#とおもって久しぶりにomniORBのサイトを見に行ったら64bit版がありましたね。

ただし、64bitWindows上で32bitバイナリを動かしてみたことはあります。
そのときは特に問題はなかったように思います。

今回のケースはおそらく64bit版Windows上で32bit版の
バイナリを動かしているのではないでしょうか?

ちなみに、Linuxの64bit版では問題なく動いているので、
OpenRTM自体が問題である可能性は低いと思います。
#OpenRTMのコードで32bit/64bitの違いで問題になるような
#ローレベルのコードはあまりないような気がします。

> 標記の件は、32bitsのWindows同士では問題ないとのことなの
> で、
> 32bitsでも共通のネットワーク関連の問題ではなく、
> 64bits環境でのみ起こる問題ではないかと考えられます。
> 何か分かることがあれば教えて頂けると幸いです。
>
> 清水
>

root
オフライン
Last seen: 21時間 27分 前
登録日: 2009-06-23 14:31
[openrtm-users 01586] name service view にモジュールが表示されない

清水さん,安藤さん

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

結論から申し上げますと,期待した結果が得られました.誠にありがとうございます.原因は,安藤
さんが暗に指摘されていたとおり,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)に置き換える→う
>> まくいく.
>>
>>
>> 皆様からのアドバイスを頂戴できれば幸いです.
>> 以上です.
>>
>>
>>
>>
>>
>>
>>
>
>
>

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

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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