🚗

Jetson Nanoで自動運転RCカーを作ってみた話

に公開

🚗 Jetson Nanoで自動運転RCカーを作ってみた話


🎯 プロジェクト概要

Jetson Nanoを活用し、実際のRCカーにディープラーニングモデルを搭載して自動運転を実現しました。
カメラで撮影した映像をもとにステアリング角度を予測し、モーターを制御することで自律走行を行う仕組みです。

👉 発表資料: (例:GitHubやNotionリンク)
👉 実際の走行動画は以下に直接埋め込んでいます👇


⚙️ 使用した技術スタック

  • Jetson Nano (GPU)
  • DCモーター、サーボモーター、L298Nモータードライバー
  • Webカメラ(OpenCVで映像取得)
  • Python 3.8
  • PyTorch(CNNモデル:PilotNet)
  • OpenCV、NumPy、torchvision

🛠 ハードウェア構成

  • RCカーの組み立て
  • Jetson Nanoにモータードライバーおよびサーボモーターを接続
  • GPIO制御によるステアリング・速度の調整
  • カメラを取り付け、映像データを収集

🎞️ データ収集と前処理

  • 解像度: 1280x720 / FPS: 30
  • 保存形式: JPEG画像 + JSONラベル
  • 5種類のステアリング角度(30°, 60°, 90°, 120°, 150°)でラベル付け
  • OpenCV + スレッド処理でフレームを収集
  • 前処理: 200x66リサイズ、正規化、CHW変換

🧠 モデル学習 (PilotNet)

  • 軽量なCNN構造
  • フレームワーク: PyTorch
  • 最終モデル: pilotnet_model_optimized.pth
  • Validation Loss: 0.2107
  • データ分割: 学習70% / 検証20% / テスト10%

📈 自律走行の映像

以下は学習済みモデルによってRCカーが実際に自律走行している様子です👇

🎬 実際の走行動画(YouTube埋め込み):

<iframe width="100%" height="360" src="https://www.youtube.com/embed/【여기에_Youtube_영상ID】" frameborder="0" allowfullscreen></iframe>

🖼 サムネイル表示:

RCカー走行サムネイル


💣 苦労したポイントとその解決方法

  • 曲がり角でうまく動かない → 曲線データが少なかった
  • モーターの反応が遅い → スレッド処理で並列化して対応
  • Jetsonの初期設定エラー →
    公式ドキュメントをじっくり読みながら、一つ一つ確認して解決しました

💬 最後に

最初は「本当に自動運転なんてできるのかな?」という気持ちでしたが、
自分でデータを集めて、モデルを学習させて、配線してコードを書いて…
そして ついにRCカーが自分の手を離れて動き出した瞬間、本当に嬉しかったです。

“AIが動いた”という実感が得られる体験は最高でした。


Discussion