[openrtm-users 02405] Re: RTCTreeの呼び出し条件

Geoffrey Biggs geoffrey.biggs @ aist.go.jp
2012年 1月 30日 (月) 10:04:27 JST


熊谷様

ジェフです。

On 29/01/12 19:29, kumagai @ tjcc.tohoku-gakuin.ac.jp wrote:
> 東北学院大学の熊谷でございます。
> 
> 先ほどとは別件の、RTC treeに関する質問です。
> Python版 (OpenRTM-aist 1.1) でコンポーネントを作り、そのコンポーネント
> 自身で関連するコンポーネントのアクティベートとポート間接続をしようと、
> rtshellのコードを参考に(ほぼそのままコピー)して、関数を書きました。
> 
> 単独のコードでは動作したので、別途作成して動作を確認していたコンポー
> ネントに組み込んだところ、ゾンビ化しました。
> おそらく、なにかが干渉したのだと思います。
> 
> 具体的には、
> mgr=OpenRTM_aist.Maneger.init(sys.argv)
> mgr.setModuleInitProc(...)
> mgr.activateManager()
> mgr.runManager(True)<- non-blocking
> time.sleep(2)
> ActivateComponent(他のコンポーネント) :自前の関数呼び出し
> 
> ActivateComponent内:
> comppath,compport = rtctree.path.parse_path(コンポーネントパス)
> tree=rtctree.tree.RTCTree(paths=comppath, filter=[comppath])
>  :
> 
> で、parse_pathの呼び出しまでは問題なし、RTCTreeを呼ぶと、それまで
> 動いていたコンポーネントがゾンビ化することが確認できました。
> ゾンビ化したことで、自分自身のアクティベートと自分のポート接続は
> できませんが、他のコンポーネントに関わるアクティベートと接続は
> そのままできました。
> 
> デバッグ中のコンポーネントを起動したところで勝手に全部つないで動くように
> したいという、ずぼら、をするためにrtshellを参考にしてrtctreeを呼んで
> みたのですが、そもそもコンポーネントのソースから呼ぶこと自体がNGなのか、
> それはOKでもなにか別のトラブルを起こしているのか、情報いただければ
> 幸いです。

rtctree.tree.RTCTree()を呼ぶ時、rtctreeはコンポーネントから色々な情報を
認めます。コンポーネントがゾンビーになる(つまりクラッシュした)というこ
とはコンポーネントが何かのCORBAコールで失敗している可能性が高いです。そ
のコンポーネントのrtc.confにlog_levelをPARANOIDにして、出力されたログ
ファイルを見たらどこでクラッシュしているかが分かるかもしれません。添付で
送って頂けませんか。

よろしくお願いいたします。


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