はじめに
はじめまして。チーム MoruGold の Yukki_Moru です。
本記事では、専門外の学生チームが「自動運転AIチャレンジ」に挑み、決勝まで到達したプロセスをまとめます。自動運転の高度な理論に詳しくなくても、開発の進め方次第で戦えることをお伝えできればと思っています。
参加のきっかけ
大会を知ったのは、締切当日。検討時間はほぼゼロでしたが、大会 HP を見て「面白そう」という直感だけで参加を決定。メンバーはいずれも自動運転とは別分野の研究・開発に従事しています。
方針
実は、自動運転についての比較的高度な理論の知見や技術知識がなくても、この大会で戦うことができます。これらの不足については、回転率(試行の速さ)と手数(同時並行の数)で補う、というシンプルな指針を最初に置きました。以降の施策はすべてこの指針に紐づきます。
独自ツール「CSV Editor」
予選の序盤でタイム改善に大きく貢献したのが、独自開発した「CSV Editor」です。走行経路(座標・速度など)の可視化と編集に特化したエディタを実装しました。手作業では難しい経路調整を直感的に行えるようにし、予選序盤のタイム短縮に寄与しました。

手作業で経路を調整していると、しばしば経路は歪な形となってしまいます。この課題を緩和させるために、SciPyを利用して、スプライン補間による経路調節機能を実装しました。
効率的な調整環境の構築
シミュレータにおいては、1施行におおよそ5分程度を要します。手作業での経路改善をするにあたっては、開発の「回転率」を上げることが最優先だと考えました。そこで、環境下で Docker コンテナを複数立ち上げ、パラメータ差分を同時評価できる環境を構築しました。
Optuna でパラメータ探索の自動化
本大会における AI においては、数多くの調整可能パラメータがあります。専門的な知見を持たない私たちが人力で最適値を探すのは非効率です。そこで、ハイパーパラメータ自動最適化フレームワーク「Optuna」を活用し、事前に決定した経路で、最もタイムが短くなるようなパラメータを探索させました。
予選
上記の回し方で、学生部門4位で通過。決勝進出が決まりました。
特に序盤は「編集ツール+並列評価」の効果が大きく、Optunaによるパラメータ探索は1秒単位の争いであった終盤に効果が見られました。
走行練習会での課題
決勝進出後の走行練習会では、ピットからサーキットコースに入るまでの経路を管理する csv と、サーキットコースに入ってからの経路を管理する csv を分けて、サーキットコース上においてのある座標に近づいた時点で利用する csv を自動で切り替えるシステムを採用していました。
しかし、大会1ヶ月前に開催された走行練習会では、このシステムが上手く動作せず、与えられた30分の練習時間で1周もできないまま時間を終わらせてしまうこととなってしまいました。
「これはまずい」と感じた私たちは、限られた時間でシステムを根本から見直し、csv の自動切り替えを利用しない方針で、新しく経路を最適化を行い、決勝に向けて調整を繰り返しました。
決勝

決勝当日は、まるで狙ったかのように雨模様。コースが滑りやすく、非常に難しいコンディションでした。
実際、私たちのマシンもヘアピンカーブでスリップが多発し、苦戦を強いられました。
しかしながら、走行練習会の反省を活かし、事前に様々なパラメータのセットを持っておくことで、実際に走っているところをみて、パラメータセットを人手で変更することで、最終的には完走し、学生部門5位という結果を得ることができました。
最後に
自動運転AIチャレンジは、専門知識がなくても「開発力」と「熱意」で勝負できる、素晴らしい大会でした。当初は「まずは無事に一周できますように…!」と願っていましたが、結果的に1日目・2日目ともに何周かサーキットを走り切ることができ、最高の経験ができました。
来年の参加を検討している皆さん、少しでも興味があれば、参加を迷うその気持ち、とてもよく分かります。でも、その一歩が最高の未来に繋がっているかもしれません!ぜひ参加をしてみてください!
運営・スポンサーの皆様へ
このような刺激的な素晴らしい大会を開催・支援してくださった運営およびスポンサーの皆様には、感謝しかありません。本当にありがとうございました。