こんにちは、しおたにです。
1/27(月)に社内マイクロマウス大会が開かれました。
その様子をお伝えします。
今回の迷路です。(スタートは右下)
迷路作成者曰く袋小路を一切使わないコースにしたとのこと。
私が袋小路調整に力を入れていたのを知っての所業です…これは負けられません。
まぁどんな迷路がきても対応できるよう調整してきたつもりです。
1走目
練習していたコースに比べると直線が多いしこれはイケる!と思ってました。開始20秒くらいまでは…
やられました
調整通り順調にスラローム探索が始まり安心していたのですが、途中でリタイア。原因は後ほど。
2走目
練習で散々走っており、特に持病のような不具合もなかったのでこれはスラローム探索プログラムの実装ミスによるものだと感じ、次善策であった超信地旋回での探索を選択しました。
この選択は功を奏し、無事にゴール。
3走目
袋小路での処理が誤っているようでしたが、最短走行中には袋小路は出てこないので、スラローム走行を選択。
こちらは練習通りゴールしてくれました。タイムは14秒47
↓記録です。
リタイアの原因
前回紹介したように袋小路では壁補正をして折り返すようにしたわけですが、一つ“穴”があったようです。
仮想的な壁
探索中、ゴールに進める経路がない領域は仮想的に壁を作って通らないようにするのですが、この際に前壁がない袋小路が出来上がることがあります。
仮想的な壁による袋小路では当然前壁による補正はできません。
そして、前壁がない状態での処理を書いていなかったので大幅に位置がズレるようになっていました。これが直接の原因です。
一例がこちら
前壁があるとき↓
前壁がないとき↓
前壁がない状態とその場で止まるようになっていたため、袋小路区画の入り口時点で引き返してしまいます(下図)。当然半区画近くズレるわけですからスラロームなんかは成功しません。
今回はちょうど前壁がない袋小路ができる迷路だったのでこの“穴”にはまったわけです。
完走した感想
最短走行はできましたが、的確に穴を突かれたのが非常に悔しい。考慮すべき迷路構造を洗い出してから実装するべきでした。
あと壁判定を可視化したにもかかわらず、リタイア時の判定状況は見えなかったのも残念でした。
ただ、次善策(超信地旋回の探索)を用意し、誤りなく実行できたことは素直に嬉しかったです。今後も用意しておきます。
↑また、スラロームによる走行でゴール出来たのでPi:Co研修修了となったようです(あまり実感がない)。
このため、次回から自作マウス研修に切り替わります。
Pi:Coに追加したかった機能は自作マウスの方に反映させていきたいと思いますので今後ともよろしくお願いいたします。
今回はここまで。