【要約】自動運転ミニカーバトル参加体験記 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発チームは、限られた期間内でハードウェアとソフトウェアを統合する際に、以下の問題に直面した。
- ・開発着手の遅れ:チームの連携不足により、試行錯誤の時間が不足した。
- ・技術選定の不一致:単純なコースに対し、模倣学習という重い手法を選んだ。
- ・リソースの制約:ラズパイ5への電力不足や、計算リソースの限界に直面した。
- ・保守性の低下:コードが肥大化し、本番直前のデバッグが困難になった。
// Approach
参加者は、画像から直接モーター制御信号を予測する「模倣学習」を採用した。
- ・モデル構築:CNNを用いたEnd-to-Endモデルを構築した。
- ・データ収集:人間の操作画像とPWM値をペアで記録した。
- ・推論の高速化:ONNX形式へ変換し、ONNX Runtimeで20FPSを実現した。
- ・電源設計:制御系と駆動系の電源を分離し、電圧降下を防いだ。
// Result
開発チームは、予選4位、決勝4位という成績を収めた。
- ・定量的な成果:ONNX化により、ラズパイ5上で20FPSを安定して実現した。
- ・技術的成果:模倣学習による自動運転のプロトタイプ構築に成功した。
- ・今後の展望:画像の前処理改善や、Jetson等の高性能ハードウェアの検討が挙げられる。
Senior Engineer Insight
> 現場視点では、技術選定の「適材適所」が最大の教訓だ。単純なコースに対し、模倣学習はオーバーエンジニアリングであり、開発コストとリスクを増大させた。また、エッジデバイスでの推論において、ONNXによる最適化は必須だが、根本的な計算リソース(Jetsonの検討)や電源設計の重要性を再認識させる。プロトタイプ開発では、まずルールベースで動かし、徐々に高度化する段階的アプローチが、納期と品質のバランスを取る上で肝要である。