かみやんの技術者ブログ

主にプログラムの話です

大域経路ファイルとウェイポイント番号の描画

もうちょっとGPSとオドメトリと地磁気センサのセンサフュージョンをもうちょっと研究したいところだが、自己位置推定ばかりに時間を取られている訳にはいかないので、自律移動の準備に取り掛かる。

  1. 自己位置推定が強力(誤差±50cmぐらい)で、ナビゲーションが弱い
  2. 自己位置推定が弱く(誤差±3mぐらい)て、ナビゲーションが強い

だと、ナビゲーションが強い方がよい気がする。

ということで、去年かいた大域経路ファイル(ルートファイル)を久しぶりに開こうと思ったら、リファクタリングしたせいでファイルフォーマットが変わっていて読めなかった。去年はあわててバイナリファイルのルートファイルにしてしまったので、今日は、XMLファイルに変更。これでフォーマットが多少変わっても読めたり、テキストエディタで修正できる。
といっても、C#だとシリアライズもデシリアライズも1行で済む。超楽ちん。

あと、demuraさんのGUIをみてウェイポイント番号が表示されていたので、自分も大域経路エディタで、ウェイポイント番号を表示できるようにした。

上図、ウェイポイント番号の表示機能を追加した大域経路エディタ

ここで、AibiUIの大域経路エディタ機能の紹介。

  • 大域経路ファイルの読み込み・保存(XMLファイル)
  • 左クリックでウェイポイント追加
  • ウェイポイントを左ボタンドラッグでウェイポイントの移動
  • 経路の線分上をCtrl+左クリックで、線分上にウェイポイントの挿入
  • ウェイポイントを右クリックで、そのウェイポイントの削除
  • 中ボタンドラッグ(またはShift+左ボタンドラッグ)でパン(ビューの平行移動)
  • ホイールでズーム

そんな感じ。将来、ウェイポイントにプロパティ等をつけるときは、現在、右クリックで削除になっているところを、コンテキストメニューの表示に変える予定。

大域経路エディタ機能以外は、

  • 走行モード
    • リモコンモード:ジョイパッドで走行し、ログを取る
    • 半自律モード:ジョイパッドでボタンを押している間だけ自律走行
    • 自律モード:完全自律
  • ログ再生モード
    • GPSの軌跡表示(水色)
    • オドメトリの軌跡表示(オレンジ)
    • オドメトリ+磁気センサの軌跡表示(緑)
    • 現在位置をスライダーで変更できる(アニメーションする)
  • 表示機能(走行モード、ログ再生モード共有)
    • 現在位置でのLRFのレーザー表示(表示タイプとして、放射線型、点、ポリライン、簡易壁判別ポリラインの4つ)
    • オドメトリの自己方向の表示(オレンジの矢印)
    • 磁気センサの自己方位の表示(緑の矢印)
    • 総走行距離の表示(画面右上)
    • バッテリ電圧の表示
    • GPSのHDOPと衛星数の表示
    • Google Static Maps APIでダウンロードした地図画像の合成表示
    • 「N番ウェイポイント通過」や「LRFエラー」など音声で通知
  • 設定系
    • 地磁気センサ(TDS01V)のキャリブレーション(円の中心を求める(X,Yのオフセット))
    • 地磁気センサの方位オフセットとY成分スケールの調整
    • ログファイルからCSVに変換(Excelでグラフを作成できるように)
    • Google Static Maps APIで地図画像をダウンロード
    • シリアル通信で、マイコン(SH7125)、LRF(Top-URG)、GPS地磁気センサ(TDS01V)への接続。COMポートの記憶。仮想COMポート名の列挙。
  • 使っていない系
    • ICPスキャンマッチによる方向の補正(平行移動成分は実現できていない、計算量が多く少しリアルタイムに間に合っていない)
    • マイコンにプログラムを自動送信(去年は、H8-3069でRAM2MあったためFlashROMではなくRAMにプログラムを置いていた)

そんな感じ。
あと必要だと思うのが、

  • 最終的な自己位置同定したときの軌跡の表示
  • 自己位置+全LRF点列の合成(地図作成)
  • 途中のウェイポイントからの再開機能
  • ウェイポイントごと、または、パス(ウェイポイントとウェイポイントを結ぶ線分)ごとのプロパティの設定
  • 重要な障害物回避、ナビゲーションの強化

一応、去年のナビゲーションのコードがあるが、去年は全然時間がなくて試験で来ていないので、そこからやるかな〜。

つくばチャレンジ2009まで、あと27日!時間がない!

Windows7が到着。HDDバックアップ中。面倒。。