壁情報管理
マイクロマウスは、与えられた迷路の、スタートからゴールまでの所要時間を競う。
その最初の段階として、迷路の正確な地図を作る必要がある。
そもそも、これが難しい。
競技時間は限られているので、なるべく早く見て回りたいのだけれど、あまり急ぐと、あるはずの壁を見落としてしまったりする。
センサの再現性を上げたり、壁判定のアルゴリズムを工夫したりして対応しようとするのだけれど、結局は判定の閾値の調整になってしまい、シビアな調整の繰り返しになる。
特にスラローム探査を行っていると、どうしても発生する走行ラインのずれで、壁からの位置関係や向角度がバラつき、壁有無の判定をさらに難しくする。
壁からの距離そのものだけでなく、時間的な変化のパターンも使って見るのだが、それでもすべてのパターンをカバーできないようだ。
例えばエッジの取れない180度ターンが続いた場合などが厳しい。
------
そこで、判定が微妙な場合、壁情報をいきなり内部の配列に書き込むのではなく、いったん保留にしておく。
壁判定用のデータを取り込んだ後、走行のための姿勢や位置の補正が行われたときに、その時の修正量で補正をかけ、さかのぼって判定するようにしてみる。
場合によっては、スラローム探査が一旦停止したりするが、壁を読み間違えたまま進んでいくよりはマシだと思う。
------
6x4の調整用迷路で走らせてみる。
見た目には特に変わったようには見えないけれど、フル迷路で試してみたいところだ。
しかし、なかなか機会が無い....
次のフル迷路は、いきなり大会の場になりそうだ。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)


最近のコメント