この記事は、「マイクロマウス Advent Calendar 2022 - Adventar」の4日目の記事です。
お久しぶりです。半田(しろめ)の人です。昨日は、なおフィスさんの「マウスのシステム構成の紹介」でした。
今年は、今までの自分のスパゲッティなコードを整理していこうという目標もあり、整理していったのでとても参考になるお話でした。まだ、整理が足りてない(考え方に問題あり)のでこのブログや本などを参考に整理していきたいです。
あと、10月の講習会ありがとうございました。おかげでちゃんと吸引マウスになりました。
挨拶
今回はマイクロマウス全日本学生大会に参加させていただきました(2019年から3年振りに)
運営の方々、ありがとうございました。
学生大会では様々な団体の方と話すことができ、とても楽しかったです。
どの団体も無事に活動しているみたいで良かったです。ただ、やっぱり団体としての力が弱まっていたり、技術伝承が上手くいってなく、開発に苦労している方々が多くいる印象でした。
今後は、学生同士もっとイベントをやって盛り上げていってほしいなと思ってます。
全日本大会終わったあとぐらいに学生主催の大会や交流会ができたらいいな...なんて考えてます。(タイマーないけど)
とりあえず自分はギリギリまで持ってる技術を伝え切りたいなと思ってます。
結果報告
Mice全体の結果
まず、後輩の結果ですが
後輩①→不連続の走行で距離がうまく一致せずに衝突...
後輩②→キレイにオートスタートで5走走りきって特別賞(+5位)
後輩③→迷路アルゴリズムでバックするときに毎回尻当てするコードで前壁ない状態でそれをやってしまい、衝突...
後輩④→爆速マウスとして直進速度上げて、ターン速度上げて1桁台の秒数に縮めて4位
でした。
後輩2人を完走させられなかったのは本当に悔しいですね。草の根に出るらしいので頑張ってほしいです。正直、直前期とかは自分のことで手一杯で後輩のこともまともに見れなくて申し訳ないです。某Gさんは大学の後輩を全員完走に持ってきて凄いと思いました。(是非、秘訣を...聞き忘れた...)
自分の結果
最後に自分の結果ですが、クラシック部門で優勝することができました!
東日本で完走してマウスと呼べるようになってからやっと吸引マウスと呼べる速度になりました。
アドバイスや応援してくださったMiceの先輩方、ありがとうございました。
東日本から学生大会までやったこと
東日本のときは直進速度2.5m/s、加速度15m/s^2、ターン速度1.2m/sでかなり遅いマウスでそれなら吸引なしで行けるとMiceのOBから煽られてしまいました。(吸引なしだと直進速度2m/s、加速度10m/s^2、ターン速度0.8m/sぐらいが限界でした)
そこで頑張って、直進速度3~3.5m/s、加速度15m/s^2、ターン速度1.6m/sまで自力で頑張ったんですけど
ターン速度上げたけど全く安定しない。この辺がハードの限界な気がする(ソフトのせいかもしれんけど)。直進とターン速度上げたし、3年前と違って吸引マウスと呼んでいいレベルにはなった。 pic.twitter.com/y3gf178rhF
— しろめ@半田ディザスターの人 (@Shirome_crow) 2022年10月12日
返信にまだいけるもう少し...とか言われて怖かったです...
講習会では直進速度4m/s、加速度22m/s^2、ターン速度1.6~1.8m/sは出ると言われていたのでそれを目指していました。
本日はなおフィスさん(@starknighthood)に大学に来ていただいて講習を聞きました!
— しろめ@半田ディザスターの人 (@Shirome_crow) 2022年10月15日
今後の安定性向上や速度向上のノウハウを聞くことができました。
ありがとうございました!
ギリ吸引マウスと認められましたが、まだまだ安定性が足りないので今日学んだことを組み込んでいきたいです。 pic.twitter.com/6ma8l64v9L
しかし、今回は台湾の方々が直進速度4~5m/s、加速度20m/s^2、ターン速度1.7m/sでダイクストラ法使ってますとテクニカルシートに記載があり、爆速にしないと入賞すらできないので?という危機感から今までのパラメータとアルゴリズムを工夫(バグ)しました。
バグポイント①
長い斜めを走ってくれないのでダイクストラ法を導入したこと(コストは直進のみいじって各ターンはなし)
足立法で最短経路導出してたせいで長い斜めを走ってくれなかったから走ってくれるようにダイクストラ法擬きを実装した(重みは他の人を参考に適当)。それっぽい pic.twitter.com/0EOiJcLd5b
— しろめ@半田ディザスターの人 (@Shirome_crow) 2022年11月21日
バグポイント②
ダイクストラ法で計算した最短経路を上のマスをゴール座標にした探索(ダイクストラ法は計算が重いので距離ずれしないのに対策を考える予定(止まるなど))
頭悪そうって言われたゾーンです。 pic.twitter.com/UcHrMU1AYk
— しろめ@半田ディザスターの人 (@Shirome_crow) 2022年11月24日
賢い探索のはずです...でも頭悪そうですね。多分、常に最短経路算出してるので2つのルートが拮抗してるのと往復しまくるバグが生成されそうな予感がします...
バグポイント③
高速域でエンコーダが信じられないので加速度センサを用いた補正したこと
バグポイント④
新しい探索が時間かかったら怖いので探索開始から3分半経過したら強制的に停止させるようにしたこと
バグポイント⑤
今回は直進速度4.5~5m/s、加速度22~24m/s^2、ターン速度2m/s(大回り90や45outは2.2ぐらいにしてたかも)のmaxパラメータで明らかに性能を超えてる可能性のあるターンを作成に注力し、ターン速度1.6m/sを全く調整しなかったこと
結果、1部の上位勢とは勝負できませんでしたが台湾の方々に勝つことができました。
本当に致命的なバグがでなくてよかったです。
最後に
今回のだめだった点は
台湾の方々と経路が違っていたこと
ピニオンが滑ってモータをロックしてる?っぽい現象で直進が1.3倍ぐらいに伸びる現象があったこと
ターン速度が合っている?と上位勢に言われたので追従しているのかわからないこと(ログは追従してる)
です。まだまだ不安定なのでそこを強化していきたいです。
まぁ、そろそろ、研究に力を入れないとやばそうなんで、ちょっと研究します。
ここでパラメータを公開しているのは、後輩の目標設定用です。正直にパラメータ考えるときに誰も公開してないので私みたいな初心者は目標が定まりにくかったです。正直、このマウスも速いのか...って疑問になることが多いです。とりあえず、いろんなパラメータを示したのでこれを目標に頑張ってもらえるといいなと思っています。
明日は、そらさんの「学生大会の感想」です。開発RTAから優勝RTAは流石です。何をどうしたらこんなことができるのでしょうか。どのような開発スケジュールを組んでいたのか楽しみです。
次は全日本で出る予定なのでよろしくお願いいたします。ポイント上位ですが上位勢の方々と比べると遅いマウスですができる限り頑張ります。