かみやんの技術者ブログ

主にプログラムの話です

ログ可視化の強化 その2

昨日のエントリ「ログ可視化の強化」の続き。

今まで、LRF(Top-URG)の描画をオドメトリに統合して表示していたが、

  • オドメトリに統合表示
  • コンパスオドメトリに統合表示
  • 統合オドメトリに統合表示

の3択をGUIのメニューに追加した。

どの軌跡が一番、真の自己位置・姿勢に近いかを判断するのにLRFの統合表示は重要。これを表示してアニメーション(ロボットを移動)させると、一発で推定位置・姿勢がずれているかわかる。これで、コンパスオドメトリの方向に遅延があることに気付いた。
その他、

  • 自律走行前の待機中に統合オドメトリが移動してしまう問題の修正
  • ログに大域移動経路が保存されていないためログと経路の関係が不明になるため、ログの中にも大域移動経路XMLを出力とその読み込み機能を追加
  • コンパスの方向と統合オドメトリの方向がずれている不具合の修正(表示上の問題で軌跡には影響なかった)
  • ロボットの初期位置を最初に取得できたGPS位置にしていたが、大域移動経路がロードされているときはウェイポイント0に位置し、ウェイポイント1の方位を向けるよう変更
  • 移動経路決定ルーティンが、100msごとによばれるはずが、リモートコントロール→自律走行に切り替えたときのみ100msになっていて、いきなり自律走行させた時が50msになっていた不具合の修正(トライアル2回目の失敗の原因はこれっぽい)
  • GUI右側にプルダウンリスト「Remote」「Semi-Auto」「Autonomous」を追加(demuraさんのGUIを見習って)

などなど改良orデバッグをしていた(ただし、実機での試験はまだ)。トライアルのログを分析していると色々わかって面白い。

まだ重要なバグとして、統合オドメトリを大域移動経路に追従させているつもりが、コンパスオドメトリが大域移動経路に追従している不具合の修正が残っている。
あと、改良したいのが、障害物回避で現在、ステートレスでハンドルを切っているがこれだとあまり賢いロジックが入れられないので、局地移動経路を作るように変更したい。
あと、移動経路決定ルーティンのログの強化と可視化あたりか。
AibiUIまわりだけでもやりたいことが山ほどあるな。