========================================================================
ディレクトリ構成 (Directory Structure)
========================================================================
1. 概要 (Overview)
------------------------------------------------------------------------
1-0. 目的
自律走行システムのソースコードのディレクトリ構成を定義する.
ディレクトリ構成を変更した場合は本ドキュメントも更新すること.
1-1. 状態の表記
・(未実装): 今後作成予定のファイル.
・表記なし: 実装済み,またはディレクトリ.
2. ディレクトリ構成 (Directory Structure)
------------------------------------------------------------------------
2-1. 全体構成
RobotCar/
├── CLAUDE.md
├── requirements_pc.txt
├── requirements_pi.txt
├── deploy.sh Pi への転送スクリプト
├── .env.example 環境変数テンプレート
├── pd_params.json パラメータ保存ファイル(.gitignore)
├── docs/ ドキュメント
├── src/ 自律走行用ソースコード
│ ├── common/ 共通設定(PC・Pi 両方で使用)
│ ├── pc/ PC 側
│ └── pi/ Pi 側
└── src_old/ 旧コード(参照用)
2-2. src/common/
common/
├── config.py
└── json_utils.py JSON 読み書き共通ユーティリティ
・PC・Pi 間で共有する設定値・ユーティリティを定義する.
・config.py: ネットワーク設定,画像フォーマット,通信設定等.
・json_utils.py: JSON ファイル読み書きとパラメータディレクトリの定義.
2-3. src/pc/
pc/
├── main.py エントリーポイント
├── review.py データ仕分け GUI エントリーポイント
├── gui/ GUI 関連
│ └── main_window.py メインウィンドウ
├── comm/ 通信関連
│ └── zmq_client.py ZMQ 送受信
├── data/ 学習データ収集・仕分け
│ ├── collector.py 二値画像のラベル付き保存
│ └── reviewer.py 仕分けレビュー GUI
├── steering/ 操舵量計算(独立モジュール)
│ ├── base.py 共通インターフェース
│ ├── pd_control.py PD 制御の実装
│ ├── pursuit_control.py 2点パシュート制御の実装
│ ├── ts_pd_control.py Theil-Sen PD 制御の実装
│ ├── param_store.py プリセット保存・読み込み
│ └── auto_params.py パラメータ自動保存・復元
└── vision/ 画像処理
├── line_detector.py 線検出 API(データクラス・手法ディスパッチ)
├── fitting.py 直線・曲線近似(Theil-Sen・RANSAC・外れ値除去)
├── morphology.py 形態学的処理ユーティリティ
├── overlay.py デバッグオーバーレイ描画
└── detectors/ 検出手法の実装
├── current.py 現行(CLAHE + 固定閾値)
├── blackhat.py 案A(Black-hat 中心)
├── dual_norm.py 案B(二重正規化)
├── robust.py 案C(最高ロバスト)
└── valley.py 案D(谷検出+追跡)
2-4. src/pi/
pi/
├── main.py エントリーポイント
├── comm/ 通信関連
│ └── zmq_client.py ZMQ 送受信
├── camera/ カメラ関連
│ └── capture.py フレーム取得
└── motor/ モーター関連
└── driver.py TB6612FNG 制御