[openrtm-users 02314] リアルタイム処理を行うRTCのDataportへの接続で起こる問題の調査方法

Manabu Saito saito @ jsk.t.u-tokyo.ac.jp
2011年 11月 14日 (月) 17:14:16 JST


OpenRTM-usersの皆様

はじめまして、東京大学の斉藤と申します。

OpenHRP3を利用したシミュレーション環境内ロボットと通信していた自作RTCを
実際のロボットで動かした際に、ロボット側RTCとの通信が出来なくなるということが起こりました。
この現象について、subscription_typeがデフォルトのflushのままだと
リアルタイム側に問題が起こるということを詳しい方から聞き、newにして接続することで解決しました.
(データの送信を別スレッドで行う必要があるようです)

RTSystemEditorをつかって手動でつなげる場合は,これでうまくいくのですが,
rtshellでsubscription_typeをnewにしたデータポートの接続をすると、
どうやらRTCがクラッシュしているようなのですが、
どのように問題を調査すればいいかの指針を皆様に伺いたく存じます。

抜粋すると以下のようなスクリプトになっており、これで接続ができていないようです。
(svn co https://rtm-ros-robotics.googlecode.com/svn/trunk/rtmros_common/openrtm/scripts
の rtmlaunch.py)

   props = {'dataport.subscription_type': 'new'}
   options = optparse.Values({'verbose': False, 'id': '', 'name':None,
'properties': props})
   rtcon.connect_ports(source_path, source_full_path,
dest_path,dest_full_path, options, tree=None)

一方jythonのインタフェースを利用した接続スクリプトを書くと動きました。
(svn co https://rtm-ros-robotics.googlecode.com/svn/trunk/rtmros_commonの
hrpsys/bin/hrpsyspyを実行し、hrpsys_ros_bridge/scripts のhrpsys-bridge-connect.pyをロード)

   connectPorts(findRTC(node1).port(port1),findRTC(node2).port(port2),
subscription='new')

Dataportの接続について知識不足なこともあり、リアルタイムの問題ともrtshellの問題とも切り分けられておりません。
なにか似たような現象などをご存知の方は、お教えいただきたく思います。

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

-- 
斉藤 学 (Saito, Manabu)
東京大学 情報理工学系研究科 創造情報学専攻 修士2年
mobile:090-3768-2158  e-mail:saito at jsk.t.u-tokyo.ac.jp
〒113-8656 東京都文京区本郷7-3-1
工学部二号館73A4(稲葉研究室) tel:03-5841-8360


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