自作RCカー(Raspberry Pi)での走行・データ収集と、PCでの学習を一連で行う学習用プロジェクト。PC側で学習したモデルをラズパイへ転送し、推論・操舵を行います。学習用の自作CNNライブラリも同梱しています。
- car-app: ラズパイ上でカメラ・ジョイスティック・モーター制御を行う走行アプリ
- pc-app: 走行データの学習パイプライン(モデル学習・転送)
- cnn: NumPyベースの自作CNNライブラリ
- Python 3.11以上
- パッケージ管理: uv
- 実行/タスク: make
- pc-app: Apple Silicon Mac で開発
- car-app: Debian bookworm(Raspberry Pi)で開発
- ホストPCとラズパイ両方に、
git clone - ラズパイで走行・記録(
cd car-app) - PCで学習(
cd pc-app) - 学習済みモデルをラズパイへ転送(pc-app → car-app)pc-appにて
make pull / push - 推論走行(
make autopilot in car-app)
cd car-app
- 起動:
make run - オートパイロット:
make autopilot - 記録モード:
make record
- X: オートパイロット ON/OFF
- B: 記録 ON/OFF
- Y: 終了(例外でループ終了)
- 左スティック X: ステアリング
- RT: スロットル
- 記録データ:
car-app/data/session_<timestamp>/- 画像:
image/*.jpg - ラベル:
records.csv
- 画像:
- 推論モデル:
car-app/output/(config.json,params.pkl)
cd pc-app
- インストール:
make installまたはuv sync - 学習:
make train - ラズパイから取得:
make pull - ラズパイへ転送:
make push
学習結果は pc-app/weights_bin/ に出力されます(params.pkl, config.json)。
- NumPyのみで実装された学習用CNN
- 形状デバッグログ対応(
LOG_LEVEL=DEBUG) - SGD/Adam対応
ssh -A team40@team40.local-Aでフォワーディングを有効にし、ラズパイからGitHubへコミット可能- VS Code の SSH 機能を使うと便利