AIToday
自動運転AIコーディングQiita 機械学習掲載日時: 2026年10月4日 1:00

PyTorchとArduino UNOで自作するE2E自動運転ミニカー

LINEで送る
PyTorchとArduino UNOで自作するE2E自動運転ミニカー

3つのポイント

  1. 何が起きたか

    PC上のPyTorch CNN(NVIDIA PilotNetの縮小版)がカメラ画像を前・左・右・停止の命令に変換し、BluetoothでArduino UNOに送る手のひらサイズの車を著者が製作。

  2. なぜ重要か

    スマホをカメラ、PCをAI SoC、Arduinoを車両制御MCUに見立てた構成は実車と同じで、2つのフェイルセーフをAIから切り離しており、安全設計は玩具以外にも応用できそうだ。

  3. 注目点

    学習モデルが実際に車線を維持できるかはデータのバランス次第。ラベルは前進が大半を占め、検証精度が高くても曲がれない車を隠しかねない。

誰に効くか小型自律走行車を作るメイカーやロボティクス愛好家、そしてPCとマイコンの分担と独立したフェイルセーフの配線方法に関心を持つ組み込みエンジニアにとって、部品代数千円で再現できるリファレンスとなる。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

このシステムは市販車と同じように役割を分ける。重いAI処理はPC(車載AI SoCの代役)で動かし、マイコン(Arduino UNO、車両制御MCUの代役)がモーターを駆動する。両者の接続は車載CANやEthernetではなく、HC-05モジュール経由のBluetoothだ。コードはPythonファイル4つとArduinoスケッチ1つで構成され、モデルはNVIDIAのPilotNetを縮小したもので、前進・左・右の3つの動作のいずれかを出力する。

記事の大半は著者が遭遇した落とし穴の説明に割かれている。遅延はカメラ、Wi-Fi、推論、Bluetooth、Arduinoの各接続点で積み重なり、見落としやすい原因が2つある。OpenCVが古いフレームをバッファリングすることと、超音波センサーのブロッキング呼び出しpulseIn()だ。デフォルトのタイムアウトのままだと制御ループ全体が止まりうるため、短縮が必要となる。pulseInのタイムアウトは25msに設定されている。著者はまた、データ収集時と走行時で部屋の照明が変わるとモデルの精度が落ちること、学習時のColorJitterが効果的であることも指摘している。

ここで重要なのは、この玩具そのものよりも、それが示すパターンだ。AIの判断を遅延のあるリンク経由で物理的なモーターに伝えると、車が手のひらサイズでも実車サイズでも同じ構造的な難しさが表面化する。著者が掲げる原則は、AIから独立した下位マイコンにフェイルセーフを置くというもので、これはどちらにも当てはまる。これを再現する人にとって鍵となるのは、収集した走行データの品質とバランスだろう。モデルは高い精度を示しながら、カーブを曲がれないことがあるからだ。記事によれば部品代は数千円だという。

よくある質問
車の暴走を防ぐ安全機能は何か?
Arduino UNOにはAIから独立した2つのフェイルセーフがある。HC-SR04超音波センサーが20cm以内に何かを検知すると強制停止し、0.3秒間命令が届かない場合も停止する(ウォッチドッグ)。
このプロジェクトはどのハードウェアを使うか?
Arduino UNO R3、PC(GPUがあると学習が速い)、IP Webcamアプリを入れたスマートフォン、HC-SR04超音波センサー、HC-05 Bluetoothモジュール、L298Nモータードライバと2つのDCモーター(単3電池4本で給電)を使用する。
Qiita 機械学習元記事を読む
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へSplice CEO、AI文書が対話を壊すと警告