かみやんの技術者ブログ

主にプログラムの話です

ログ可視化の強化

先週の「AibiUI公開」のエントリの最後に、AI部(局所移動判断部)の思考ルーティンの詳細の表示機能を付けるか。と書いたが、その報告。
走行軌跡だが、現在、1)オドメトリ、2)コンパスオドメトリ、3)統合オドメトリ、4)GPSの4つの表示機能がある。が、今まで、スライダーを動かしたときにロボットの位置が表示されるのは、オドメトリのみであった。つくばチャレンジ2009大会前に実装すべきだったが、間に合っていなかったので今ごろ実装。4つの軌跡上に現在のロボット位置を描画するようにした。

ロボットが3台と、GPS位置(黄緑のロボットの下に水色の丸に黒の十字)が表示されるようになった。今まで、オドメトリリストとLRFリストの結合がクラス設計上、密結合できもちわるかったので、中立的なクラスとしてTimeLineクラスと、TimeLinePointクラスをつくり、そこに各イベント(オドメトリ情報が来た、LRFデータが来た、地磁気データが来た、GPS情報がが来た、AIの思考ルーティンログが来た)を追加して、スライダーバーを移動させたときにイベント通知でリスナーに伝えてアニメーションするようにした。これで新しいセンサを追加したときや、新しい自己位置同定ロジックを考えたときにすばやく追加できる。
で、AIログをみられるようにした訳だが、思ったよりも情報が少なく大して参考にならなかった。しかし、今回の改良で下記のことが分かった。

  • 1)トライアルスタート地点で前の出走者を待っている間に統合オドメトリがGPSに引っ張られて移動していた。
    • →自律走行スタートボタンを押すまでGPSを統合すべきでなかった
  • 2)室内の自律走行ではスムーズだったのに、屋外ではやけに蛇行するなと思っていたが、地磁気センサー(TDS01V)の値に遅れがあった。
    • →遅れたデータでフィードバック制御するため蛇行。遅れるのはハードウェア的な問題か、ソフトウェア的な問題か不明。

トライアルで、スタート地点の出口の左側に引っかかりなかなか出られなかった原因は、上記2つのようである。1)は修正は1分でできる。2)はどうしようか。
現在、「 (オドメトリの併進成分+地磁気センサ)+GPS を統合オドメトリ」としているが、これを「((オドメトリの旋回成分+地磁気センサ)+オドメトリの併進成分)+GPS)」にしようか。つまり、旋回成分はいったん応答が早いオドメトリを使い、絶対方位が取れる地磁気センサに1秒ぐらいかけて寄せる。そうすると応答の早さと絶対方位の両方のメリットが得られる気がする。これもログの分析で効果があるかみてみるか。
AIログ出力ももう少し強化が必要だな。特にウェイポイントの位置をロボットからの相対位置で記録するようにしよう。

という訳で今日も、ログの可視化の強化をするか。