[openrtm-users 02403] RTCTreeの呼び出し条件

kumagai @ tjcc.tohoku-gakuin.ac.jp kumagai @ tjcc.tohoku-gakuin.ac.jp
2012年 1月 29日 (日) 19:29:51 JST


東北学院大学の熊谷でございます。

先ほどとは別件の、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でもなにか別のトラブルを起こしているのか、情報いただければ
幸いです。



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