🚗
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>
🖼 サムネイル表示:
💣 苦労したポイントとその解決方法
- 曲がり角でうまく動かない → 曲線データが少なかった
- モーターの反応が遅い → スレッド処理で並列化して対応
- Jetsonの初期設定エラー →
❗ 公式ドキュメントをじっくり読みながら、一つ一つ確認して解決しました
💬 最後に
最初は「本当に自動運転なんてできるのかな?」という気持ちでしたが、
自分でデータを集めて、モデルを学習させて、配線してコードを書いて…
そして ついにRCカーが自分の手を離れて動き出した瞬間、本当に嬉しかったです。
“AIが動いた”という実感が得られる体験は最高でした。
Discussion