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

Geoffrey Biggs geoffrey.biggs @ aist.go.jp
2011年 11月 17日 (木) 09:36:35 JST


斉藤様

ジェフです。

subscription_typeの問題について、こちらでrtshellを手動で
subscription_typeをnewにできると確認しました。rtmlaunchを使った後、rtcat
-ll でコネクタのsubscription_typeは何の値かの確認をお願いします。後、手
動でrtconで接続したらどの値になるかの確認をお願い致します。例えば:

$ rtcon ConsoleIn0.rtc:out ConsoleOut0.rtc:in -p
dataport.subscription_type=new

$ rtcat -ll ConsoleIn0.rtc:out
-DataOutPort: out
  dataport.data_type          IDL:RTC/TimedLong:1.0
  dataport.dataflow_type      push,pull
  dataport.interface_type     corba_cdr
  dataport.subscription_type  flush,new,periodic
  port.port_type              DataOutPort
 -Connected to  /localhost/kenroke.host_cxt/ConsoleOut0.rtc:in
    Name                            outin
    ID                              1936167d-3ab4-4c73-a876-ab2a38c46d65
    dataport.subscription_type      new
    dataport.interface_type         corba_cdr
    dataport.dataflow_type          push
    dataport.data_type              IDL:RTC/TimedLong:1.0
    dataport.serializer.cdr.endian  little,big

クラッシュの問題は、LinuxやOSXの場合ならgdbでコンポーネントを実行して、
クラッシュしたら「bt」というコマンドでbacktraceを取ってみてください。
backtraceでどこにクラッシュしたかが見えます。

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


On 17/11/11 01:37, Manabu Saito wrote:
> 東京大学の斉藤です。
> ご返信いただきありがとうございます。
> 
> 落ちるRTCは送信側/OutPort側のRTCですが、どこで落ちているかはわかっておりません。
> それを調べるのが一番にすべきことでした...
> 
> ただ、受信側には接続できていれば得られる出力が一度もないまま、
> SystemEditorでは灰色表示のゾンビコンポーネントとなっておりました。
> 
> 2011年11月17日0:30 Ando Noriaki<n-ando @ aist.go.jp>:
>> 産総研 安藤です
>> ちなみに、落ちるRTCはInPort側のRTCですか?OutPort側のRTCですか?また、RTCはどこで落ちているかお分かりになりますか?
>>
>>
>> 2011年11月14日17:14 Manabu Saito<saito @ jsk.t.u-tokyo.ac.jp>:
>>> 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 @ jsk.t.u-tokyo.ac.jp
>>> 〒113-8656 東京都文京区本郷7-3-1
>>> 工学部二号館73A4(稲葉研究室) tel:03-5841-8360
>>> _______________________________________________
>>> openrtm-users mailing list
>>> openrtm-users @ openrtm.org
>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>>
>>
>>
>>
>> --
>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>>     統合知能研究グループ 主任研究員, 博士(工学)
>>     〒305-8568 つくば市梅園1-1-1 中央第2
>>     e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>     OpenRTM-aist: http://www.openrtm.org
>>
>> Noriaki Ando, Ph.D.
>>     Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
>>     AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
>>     e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>     OpenRTM-aist: http://www.openrtm.org
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users @ openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
> 
> 
> 


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