🧪 新しいチュートリアルを公開中 — ロボットアームからセンサーまで
コンテンツへスキップ
この製品を購入公式ストア公式サイト

応用機能とトラッキング ​

ストアで購入

本章では、システムの自動トラッキング機能(カラートラッキング、顔トラッキング、QR コードトラッキング)と、ターゲットロック機構およびパラメータチューニングについて詳しく説明します。


自動トラッキングモードの概要 ​

システムは 3 つの自動トラッキングモードに対応しています:

  1. カラートラッキング:指定した色の物体をトラッキングします
  2. 顔トラッキング:顔をトラッキングします
  3. QR コードトラッキング:QR コードをトラッキングします

カラートラッキング ​

色の選択 ​

システムは複数の色のトラッキングに対応しています:

  • 赤
  • 緑
  • 青 プログラム内では、キー操作で色を切り替えられます:
  • X:赤を選択
  • Y:緑を選択
  • Z:青を選択

カラートラッキングの使用手順 ​

  1. C を押してジンバルに接続します
  2. 2 を押してカラートラッキングモードに入ります
  3. ターゲットとなる色の物体を画面中央に置きます
  4. T を押してターゲットをロックします
  5. ターゲットを移動させ、ジンバルの追従効果を観察します

シンプルなカラートラッキングの例 ​

シンプルなカラートラッキングのサンプルプログラムを使用することもできます:

python
python examples/04_color_track_simple.py --camera 0 --port COM3 --color red

このプログラムは最も基本的なカラートラッキング機能を提供しており、学習に適しています。


顔トラッキング ​

顔トラッキングの原理 ​

システムは OpenCV の Haar カスケード分類器を使用して顔検出を行います。顔が検出されると、システムはターゲット位置を自動的に計算し、ジンバルを制御して追従させます。

顔トラッキングの使用手順 ​

  1. C を押してジンバルに接続します
  2. 1 を押して顔トラッキングモードに入ります
  3. 顔を画面中央に合わせます
  4. T を押してターゲットをロックします
  5. 顔を動かすと、ジンバルが自動的に追従します

顔検出の成功率を高めるためのヒント ​

  • 照明を十分に確保し、逆光を避ける
  • 顔をカメラに正面向きにする
  • 適切な距離を保つ(1〜3 メートルを推奨)
  • 複数の顔が映る状況を避けるか、ロック機構を使用してトラッキング対象を固定する

QR コードトラッキング ​

QR コードトラッキングモードは、OpenCV の QRCodeDetector を利用して QR コードの認識と位置特定を行います。使用方法は前述の 2 つのトラッキングモードと同様です:

  1. ジンバルに接続し、QR コードトラッキングモードに入ります
  2. QR コードを画面中央に置き、T を押してロックします
  3. QR コードを移動させ、ジンバルの追従効果を観察します

ターゲットロック機構 ​

ロックの役割 ​

ターゲットロック機構はシステムの重要な機能であり、以下の役割があります:

  • ロック時のターゲットの中心位置とサイズを記録する
  • 複数のターゲットが出現した場合、ロックポイントに最も近いターゲットを優先的に選択する
  • ターゲットが頻繁に切り替わるのを防ぎ、トラッキングの安定性を維持する

ロックの手順 ​

  1. ターゲット物体を画面中央に置きます
  2. T を押してロックします
  3. ロックに成功すると、システムはロック時と最も類似したターゲットを優先的にトラッキングします
  4. S を押すとロックを解除し、トラッキングを停止できます

ロック時の選択ロジック ​

システムはロック後のターゲット選択において、2 つの要素を総合的に考慮します:

  • 距離:ターゲット中心とロックポイントとの距離(重み 70%)
  • サイズ:ターゲットサイズがロック時とどの程度類似しているか(重み 30%)
  • システムは総合スコアが最も高いターゲットを選択してトラッキングします

トラッキング制御パラメータのチューニング ​

src/trackers/tracking_controller.py には、以下の調整可能なパラメータがあります:

パラメータ名デフォルト値説明
kp_pan0.08左右トラッキングの比例ゲイン
kp_tilt0.12上下トラッキングの比例ゲイン
dead_zone30デッドゾーン範囲(ピクセル)。この範囲内ではジンバルを動かしません
min_move_interval0.15最小移動間隔(秒)。ジンバルの動作頻度を制限します

パラメータの調整方法 ​

  • トラッキングが遅い:kp_pan と kp_tilt を大きくする
  • トラッキングが敏感すぎて振動する:kp_pan と kp_tilt を小さくするか、min_move_interval を大きくするか、dead_zone を大きくする
  • 頻繁な微調整で振動する:dead_zone を大きくする
  • 方向が逆:calculate_move メソッド内の delta_pan または delta_tilt の符号を反転する

トラッキングの完全な使用例 ​

以下は完全な使用手順の例です:

  1. プログラムを起動します:
python
python examples/auto_tracking_demo.py --camera 0 --port COM3 --color red
  1. C を押してジンバルに接続します
  2. 2 を押してカラートラッキングモードを選択します
  3. 赤い物体を画面中央に置きます
  4. T を押してターゲットをロックします
  5. 物体を移動させ、ジンバルの追従効果を観察します
  6. 緑に切り替える場合は、Y を押した後に再度 T を押してロックします
  7. S を押してトラッキングを停止し、R を押して中央に戻します
  8. Q を押して終了します

発展的な開発のヒント ​

機能をカスタマイズしたり、二次開発を行ったりする場合は、以下を参考にしてください:

  • src/sc_servo.py:サーボ通信の低レベル層
  • src/gimbal.py:ジンバル制御
  • src/trackers/tracking_controller.py:トラッキングコントローラー
  • src/detectors/:各種ターゲット検出器