大域経路ファイルとウェイポイント番号の描画
もうちょっとGPSとオドメトリと地磁気センサのセンサフュージョンをもうちょっと研究したいところだが、自己位置推定ばかりに時間を取られている訳にはいかないので、自律移動の準備に取り掛かる。
- 自己位置推定が強力(誤差±50cmぐらい)で、ナビゲーションが弱い
- 自己位置推定が弱く(誤差±3mぐらい)て、ナビゲーションが強い
だと、ナビゲーションが強い方がよい気がする。
ということで、去年かいた大域経路ファイル(ルートファイル)を久しぶりに開こうと思ったら、リファクタリングしたせいでファイルフォーマットが変わっていて読めなかった。去年はあわててバイナリファイルのルートファイルにしてしまったので、今日は、XMLファイルに変更。これでフォーマットが多少変わっても読めたり、テキストエディタで修正できる。
といっても、C#だとシリアライズもデシリアライズも1行で済む。超楽ちん。
あと、demuraさんのGUIをみてウェイポイント番号が表示されていたので、自分も大域経路エディタで、ウェイポイント番号を表示できるようにした。
上図、ウェイポイント番号の表示機能を追加した大域経路エディタ
ここで、AibiUIの大域経路エディタ機能の紹介。
- 大域経路ファイルの読み込み・保存(XMLファイル)
- 左クリックでウェイポイント追加
- ウェイポイントを左ボタンドラッグでウェイポイントの移動
- 経路の線分上をCtrl+左クリックで、線分上にウェイポイントの挿入
- ウェイポイントを右クリックで、そのウェイポイントの削除
- 中ボタンドラッグ(またはShift+左ボタンドラッグ)でパン(ビューの平行移動)
- ホイールでズーム
そんな感じ。将来、ウェイポイントにプロパティ等をつけるときは、現在、右クリックで削除になっているところを、コンテキストメニューの表示に変える予定。
大域経路エディタ機能以外は、
- 走行モード
- リモコンモード:ジョイパッドで走行し、ログを取る
- 半自律モード:ジョイパッドでボタンを押している間だけ自律走行
- 自律モード:完全自律
- ログ再生モード
- GPSの軌跡表示(水色)
- オドメトリの軌跡表示(オレンジ)
- オドメトリ+磁気センサの軌跡表示(緑)
- 現在位置をスライダーで変更できる(アニメーションする)
- 表示機能(走行モード、ログ再生モード共有)
- 設定系
- 使っていない系
- ICPスキャンマッチによる方向の補正(平行移動成分は実現できていない、計算量が多く少しリアルタイムに間に合っていない)
- マイコンにプログラムを自動送信(去年は、H8-3069でRAM2MあったためFlashROMではなくRAMにプログラムを置いていた)
そんな感じ。
あと必要だと思うのが、
- 最終的な自己位置同定したときの軌跡の表示
- 自己位置+全LRF点列の合成(地図作成)
- 途中のウェイポイントからの再開機能
- ウェイポイントごと、または、パス(ウェイポイントとウェイポイントを結ぶ線分)ごとのプロパティの設定
- 重要な障害物回避、ナビゲーションの強化
一応、去年のナビゲーションのコードがあるが、去年は全然時間がなくて試験で来ていないので、そこからやるかな〜。
つくばチャレンジ2009まで、あと27日!時間がない!
#Windows7が到着。HDDバックアップ中。面倒。。