ししかわです。
9/15(日)マイクロマウス北陸信越地区大会に出場しました。
東日本地区大会に続き2度目の大会参加です。
前回の大会で一度完走しているため、今回は「最短走行を成功させること」が目標です。
前回、探索走行中に壁を誤認識したためにマップが壊れてしまい、最短走行で壁に正面衝突するミスをしていました。その対策として、今回は壁認識のしきい値もしっかり調整し、試走会では「迷路のマップが正しく作れているか」の確認を重点的に行いました。
結果は、
- 1走目の探索走行で迷路を完走し、タイムは43.362秒でした。
- 残りの4回は最短走行で挑みましたが、すべて失敗しました。
ということで、完走はしたものの目標達成ならずでした…
今回の最短走行失敗の原因は「床の段差」です。
画像は今回の大会で使われた迷路です。ゴールへたどり着く経路は何通りかありますが、私の探索アルゴリズムでは南側のルートを最短と認識しました。
すると画像中の黄色い丸のポイントで矢印の方向へ加速をするのですが、ここはちょうど床板の継ぎ目にあたります(x7->x8)。ここに僅かな段差が生まれています。
ちょうど段差があるところで加速しようとしたために、タイヤがスリップして想定した距離を進みません。その結果、次の曲がり角で壁にぶつかりました。
この段差、先輩方に「段差にやられました」というと「あ〜わかる」という反応をいただけるくらいには、あるあるな失敗原因のようです。
大会規定では「壁および床面には1mm程度の隙間あるいは段差が生じることがある。」という文面でしっかりルール化されていますので、多少の段差があっても確実に走れるような制御が必要です。
前回の壁の誤認識といい、今回のスリップといい、練習では気づかなかった原因で失敗してしまいました。失敗が起きてから「なるほどそういうのもあるのか〜勉強になるな〜」ではお粗末なので、起きうるトラブルをもっと調べてあらかじめ対策を建てないとですね…。
2度出場してみて、大会の上位ランカーの走りを見ると「速く走ること」に目が行きがちですが、競技の本質はむしろ自律性、頑健性にあるのだと実感しています。実際、今回の特別賞は「壁にぶつかるなどして迷っても自己位置推定で経路に復帰できる」という機能を実装した方が受賞されていました。実世界のいろいろなエラー(機械、電気、ソフトウェアはてはヒューマンエラーまで…)に立ち向かうのは一筋縄では行かないですが、一つずつ乗り越えていきたいと思います。
次回は東北地区大会(10/13)です。まだ時間があるのでプログラムを見直しつつ、今度こそ確実に最短走行を成功させます!