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

Manabu Saito saito @ jsk.t.u-tokyo.ac.jp
2011年 11月 21日 (月) 08:55:39 JST


ジェフ様

東京大学の斉藤です。
申し訳有りませんが、現在、実機上でRTCが動く環境がありませんので、
実機での結果は木曜日以降にメールで報告させていただきます。

以下はシミュレータの場合ですが、python/rtshell接続したポートの情報(rtcon -ll)です。

-DataOutPort: qOut
  dataport.data_type          TimedDoubleSeq
  dataport.dataflow_type      push,pull
  dataport.interface_type     corba_cdr
  dataport.subscription_type  flush,new,periodic
  port.port_type              DataOutPort
 -Connected to  /localhost/HrpsysSeqStateROSBridge0.rtc:rsangle
    Name                            qOut_rsangle
    ID                              fa477d4a-1734-4d5e-826f-82ce6847afbb
    dataport.publisher.push_policy  all
    dataport.subscription_type      new
    dataport.interface_type         corba_cdr
    dataport.data_type              TimedDoubleSeq
    dataport.dataflow_type          push
    dataport.serializer.cdr.endian  little,big

rtconコマンドで接続した場合です。ジェフ様の例と同じ接続状況です。

-DataOutPort: qOut
  dataport.data_type          TimedDoubleSeq
  dataport.dataflow_type      push,pull
  dataport.interface_type     corba_cdr
  dataport.subscription_type  flush,new,periodic
  port.port_type              DataOutPort
 -Connected to
/localhost/saito-laptop.host_cxt/manager.mgr/manager/HrpsysSeqStateROSBridge0.rtc:rsangle
    Name                            qOutrsangle
    ID                              87e0d997-a3c5-468e-97c1-38b035c39a78
    dataport.subscription_type      new
    dataport.interface_type         corba_cdr
    dataport.dataflow_type          push
    dataport.data_type              TimedDoubleSeq
    dataport.serializer.cdr.endian  little,big


2011年11月17日9:36 Geoffrey Biggs <geoffrey.biggs at aist.go.jp>:
> 斉藤様
>
> ジェフです。
>
> 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 at aist.go.jp>:
>>> 産総研 安藤です
>>> ちなみに、落ちるRTCはInPort側のRTCですか?OutPort側のRTCですか?また、RTCはどこで落ちているかお分かりになりますか?
>>>
>>>
>>> 2011年11月14日17:14 Manabu Saito<saito at 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 at jsk.t.u-tokyo.ac.jp
>>>> 〒113-8656 東京都文京区本郷7-3-1
>>>> 工学部二号館73A4(稲葉研究室) tel:03-5841-8360
>>>> _______________________________________________
>>>> openrtm-users mailing list
>>>> openrtm-users at openrtm.org
>>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>>>
>>>
>>>
>>>
>>> --
>>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>>>     統合知能研究グループ 主任研究員, 博士(工学)
>>>     〒305-8568 つくば市梅園1-1-1 中央第2
>>>     e-mail: n-ando at 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 at aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>>     OpenRTM-aist: http://www.openrtm.org
>>> _______________________________________________
>>> openrtm-users mailing list
>>> openrtm-users at openrtm.org
>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>>
>>
>>
>>
> _______________________________________________
> openrtm-users mailing list
> openrtm-users at openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users
>



-- 
斉藤 学 (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 メーリングリストの案内