AprilTagのトラッキング
AprilTagは標準的な "tx"、"ty"、"ta" の値を使用してトラッキングされます。カラー/再帰反射ト ラッキングロボットからAprilTagsにアップグレードする際にコードの変更は必要ありません。 フィールド空間とターゲット空間の3Dトラッキングには "botpose" と "campose" も使用できます。
複数のタグを使用する高度な用途では、JSON結果ダンプを使用できます。
FRC AprilTagsのクイックスタート
-
Input タブ - "Pipeline Type" を "Fiducial Markers" に変更
-
Input タブ - 3Dトラッキングには利用可能な最高解像度を使用し、純粋な2Dトラッキングには640x480を使用
-
Standard タブ - "family" が "AprilTag Classic 36h11" に設定されていることを確認
-
Input タブ - "Black Level" をゼロに設定
-
Input タブ - "Gain" を15に設定
-
Input タブ - モーションブラーによる動作中のトラッキング損失を減らすため、露出を下げる。トラッキングの信頼性が低下し始めたら調整を止める。暗い会場では露出を上げる必要があるかもしれません。
-
Standard タブ - フレームレートを上げたい場合は、"Detector Downscale" を増やす
-
3Dトラッキングと2D tx/tyトラッキングを同時に使用したい場合は、networktables上でプライオリティTagIDを設定し、2Dトラッキング用の優先タグを設定します。
-
"歯車"アイコンをクリックし、チーム番号が設定され、静的IPが設定されていることを確認します。
-
対応する設定を変更した場合は、"Change Team Number" と "Change IP Settings" をクリックします。ロボットの電源を入れ直してください。
-
これで完了です!networktablesから "tx" と "ty" を使用してください。"getting started" ページのコードサンプルをコピーしてください。
ヒント
理想的なトラッキングのために、以下を考慮してください:
- タグはできるだけ平らである必要があります。
- Limelightはタグの高さより上か下に取り付け、ターゲットが中心になるように上下に角度をつける必要があります。カメラの視点からターゲットができるだけ台形に見えるようにします。タグの反転を避けたい場合は、カメラがタグに完全に「正面」から向き合わないようにします。
AprilTagトラッキングには以下の変数間の相互作用があります:
- キャプチャ解像度を上げると、常に3D精度が向上し、3D安定性が向上します。これにより、ほとんどの視点からの曖昧性による反転も減少します。通常、検出範囲も増加します。ただし、パイプラインのフレームレートは低下します。
- Detector Downscaleを上げると、常にパイプラインのフレームレートが向上します。有効範囲は減少しますが、場合によってはその影響は無視できる程度です。3D精度、3D安定性、デコード精度には影響しません。
- 露出を下げると、常にモーションブラーへの耐性が向上します。これは実際に簡単に観察できます。ただし、検出範囲が減少する可能性があります。
- 画像の明るさとコントラストを下げると、一般的にパイプラインのフレームレートが向上し、検出範囲が減少します。
- センサーゲインを上げると、露出を上げずに明るさを上げることができます。ただし、3D安定性とトラッキング安定性が低下する可能性があります。
Input タブ
Input タブには、処理パイプラインに渡される前の生のカメラ画像を変更するコントロールがあります。詳細については、"再帰反射/カラーパイプラインの構築" ページを参照してください。
AprilTagsをトラッキングするには:
- "Pipeline Type" を "Fiducial Markers" に変更
- "Black Level" をゼロに設定
この時点で、センサーゲインと露出時間のバランスを取ることが重要です。モーションブラーを最小限に抑えるため、できるだけ小さい露出でタグを見ることができるようにしたいです。 これには通常、高いセンサーゲイン設定が必要です。単純な2Dトラッキングの場合、 センサーゲインを最大にし、ターゲットが十分にトラッキングされるまで露出をゼロから上げていくことがよく推奨されます。トラッキングが機能しない場合は、"Standard" タブで正しいファミリーが選択されていることを確認してください。