========================================================================
プロジェクト概要 (Project Overview)
========================================================================
1. プロジェクト概要 (Project Overview)
------------------------------------------------------------------------
1-0. 目的
カメラを搭載したロボットカーを自律走行させることを目的とする.
人間が操作することなく,カメラ画像のみを用いてコース上の黒線を
認識し,コースアウトせずに走り切るシステムを構築する.
1-1. 最終目標
・走行目標: 黒い1本線が描かれたコースを,コースアウトせずに完走する.
・速度目標: コースアウトしない範囲で,できるだけ速く1周を完走する.
・制御方式: カメラ画像を用いた画像処理によるライントレース走行.
・操作: 人間による操作は不要(完全自律走行).
1-2. コース条件
・ライン色: 黒(周囲は白)
・ライン形状: 1本線
2. ハードウェア構成 (Hardware Configuration)
------------------------------------------------------------------------
2-1. 使用機器
・メインコンピュータ: Raspberry Pi
・カメラ: Raspberry Pi カメラモジュール
・モータードライバ: TB6612FNG
・モーター: 左右各1基(計2基)
・センサー: カメラのみ(ラインセンサー等は使用しない)
2-2. 機器構成
・カメラ取り付け位置: 車体前方
・カメラ向き: 真下(路面の黒線を真上から撮影)
・駆動方式: 差動2輪駆動
- 左右モーターの回転速度差によって直進・旋回を制御する.
3. システム概要 (System Overview)
------------------------------------------------------------------------
3-1. 処理の大まかな流れ
1. カメラで路面を撮影する.
2. 画像処理により,黒線の位置・向きを認識する.
3. 認識結果をもとに,操舵量(throttle / steer)を計算する.
4. 計算結果を左右モーターへ出力し,車体を制御する.
5. 上記を繰り返すことで,ライン上を継続走行する.
3-2. 操舵量計算の方針
・偏差の算出: カメラ画像から黒線の位置を検出し,
画像中心からのずれを偏差として用いる.
・操舵: 偏差に基づく制御で操舵量を決定する.
複数の制御手法を GUI から切り替えて使用できる.
・速度: カーブの度合いに応じて動的に調整する(カーブ減速,直線加速).
※ 制御手法・計算方法・パラメータの詳細は
`TECH_01_操舵量計算仕様.txt` を参照する.
3-3. 実行環境
・制御ループ(カメラ取得→画像処理→操舵計算→モーター制御)は
Pi 内で完結させ,通信遅延の影響を排除する.
・PC はモニタリング GUI・パラメータ調整・手動操作を担当する.
※ Pi と PC の役割分担・通信の詳細は
`TECH_02_システム構成仕様.txt` を参照する.