======================================================================== プロジェクト概要 (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` を参照する.