[openrtm-users 02404] Re: RTCHokuyoAISTのActivate失敗

Geoffrey Biggs geoffrey.biggs @ aist.go.jp
2012年 1月 30日 (月) 09:58:22 JST


熊谷様

ジェフです。

On 29/01/12 15:11, kumagai @ tjcc.tohoku-gakuin.ac.jp wrote:
> 東北学院大学の熊谷と申します。
> 
> RTCHokuyoAistのActivateに(うまくいくときもありますが)失敗しています。
> なにか、コツのようなものがあれば、教えていただきたく、メイルをお送り
> します。
> 
> ・Windows XP SP3(32bit9 および Windows7(64bit)
> ・OpenRTM-aist 1.1 (C++, Python)
> ・URG-04LX-UG01
> 環境で
> http://gbiggs.github.com/rtchokuyoaist/index_j.html
> からダウンロードした、Windows用のRTCHokuyoAIST(とHokuyoAIST、Flexiport
> から取り出したhokuyoaist.dll, flexiport.dllを同一フォルダに)を
> 添付のような rtc.conf および rtchokuyoaist.conf で使用しました。
> (COMポートはteratermで開いてVVコマンドに応答があることまで確認)
> 
> #蛇足:rtchokuyoaist.confを読み込むため、サンプルのrtc.confでは
> #Sensor.RTCHokuyoAist.config_file: rtchokuyoaist.conf となっていますが
> #Sensor.RTCHokuyoAIST.config_file: rtchokuyoaist.conf にしないと
> #(Aist→AIST)読み込まれません

情報ありがとうございます。ソースで直しました。

> このとき、(RTSEで)ActivateでErrorが出ることが多く、verbose=1にして、
> 画面の表示をログしました→添付ファイル
> 操作手順:
> ・URG-04LXをUSBポートに接続
> ・RTCHokuyoAistを実行
> ・RTSEでActivate

私はURGでテストした時(もう結構前ですけど)、以下の問題は時々出ました。
原因はいつもバーファーにデータが残っていたことでした。例えばコンポーネン
トを綺麗に終了させなくてまたコンポーネントを機動してactivateしようとした
ら、残っているデータで機動手続きが邪魔になりました。レーザーを切断してま
た接続したら直しました。(ところで今URGでテストしたら数回問題なし機動で
きました。)

しかし熊谷様が見たように毎回起こることはおかしくて、別の問題でしょう。

> 気になること1:rtchokuyo_verbose.txt
> ・通信は成立していて、初期化段階でこけているようです。
> ・このNGモードでは、verbose=1にしない場合は、
>   Error setting up laser: <半角カナ> →rtchokuyo_verbose.txtの372行
>   Error shutting down laser: 同387
>  だけが表示されます。>rtchokuyoaist内のopen_laser()あたり?
> ・このエラーが起きた場合は、ポートが開いたままになるようです。

カナが出ていることは多分例外の問題です。バイナリーの間で例外を使うことは
正しくなくて、おかげでエラーストリングが取れません。rtc.cppの102行に
e.desc_code()とe.error_type()も出力したら何のエラーかが見えます。

> 気になること2:
> ・別のNGモードでは
>  Sensor::hokuyoaist::Sensor::open() Creating and opening port using options: type=serial,device=COM4,timeout=1
>  Sensor::hokuyoaist::Sensor::set_power() Turning laser off.
>  というエラーになることもあります。
>  ※単にポートが開けなかったときにこのエラーになる気配

以上のエラーはよくポートが存在しない時に見ます。レーザーに電源を入れると
少し機動時間があって、その前にコンポーネントをActivateしようとしたらエ
ラーになります。

> 気になること3:rtchokuyo_verbose2.txt
> ・最初のNGに似たケースで rtchokuyo_verbose2.txt のように、そこそこ
>  短く、半角カナの交じったエラーがでて、かつ、最後がclsoe connectionになる。
>  Reset→再アクティベートで表示は変わるものの、やはりNG
>  ※このとき、URGの機種検出もできていない気配。

以上のエラーはバーファーに残っているデータが邪魔になっているということです。

> なお、デバイスマネージャの確認では
> ・16550互換のFIFOバッファを使用、受信14、送信16
> ・シリアル系デバイスをつなぐと悪さをすることで有名?なMicrosoft Ball Point
>  なマウスデバイスは検出されず
> です。
> 
> なんとなく、RTCのエラーと言うよりは、HokuyoAISTの中のトラブルのよう
> ですが、お伺いいたしたく存じます。
> よろしくお願いいたします。

問題はRTCに関係ありません。何かのコミュニケーション問題です。解決するた
めに、して欲しいことがあります:

- hokuyoaist_exampleで同じ問題が出ることを確認してください。
- hokuyoaist_exampleのソースにexample.cppの47行の値を以下のように変更し
て実行してください:
    "type=seriallog,device=COM4,timeout=1,debug=3"
こうしたらかなり出力情報が増えます。問題があった時の方を添付でリストに
送ってください。port.logwとport.logrというファイルも出されます。それも
送ってください。

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


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