AprilTagのトラッキング
AprilTagは標準的な "tx"、"ty"、"ta" の値を使用してトラッキングされます。カラー/再帰反射トラッキングロボットをAprilTagにアップグレードするのに、コードの変更は必要ありません。 フィールド空間とターゲット空間の3Dトラッキングには、"botpose" と "campose" も使用できます。
複数のタグを使用する 高度な用途では、JSON結果ダンプを使用できます。
FRC AprilTagのクイックスタート
-
入力タブ - "パイプラインタイプ"を"フィデューシャルマーカー"に変更
-
入力タブ - 3Dトラッキングには利用可能な最高解像度を使用し、純粋な2Dトラッキングには640x480を使用
-
標準タブ - "ファミリー"が"AprilTag Classic 36h11"に設定されていることを確認
-
入力タブ - "ブラックレベル"をゼロに設定
-
入力タブ - "ゲイン"を15に設定
-
入力タブ - モーションブラーによる動作中のトラッキング損失を減らすために露出を減らす。トラッキングの信頼性が低下し始めたら減らすのを止める。薄暗いイベントでは露出を増やす必要があるかもしれません。
-
標準タブ - フレームレートを上げたい場合は、"検出器ダウンスケール"を増やす
-
3Dトラッキングと2D tx/tyトラッキングを同時に使用したい場合は、ネットワークテーブル経由でプライオリティタグIDを設定し、2Dトラッキングに適したタグを設定します。
-
"歯車"アイコンをクリックし、チーム番号が設定され、静的IPが構成されていることを確認します。
-
対応する設定を変更した場合は、"チーム番号の変更"と"IP設定の変更"をクリックします。ロボットの電源を入 れ直します。
-
これで完了です!ネットワークテーブルから "tx" と "ty" を使用してください。"はじめに"ページのコードサンプルをコピーしてください。
ヒント
理想的なトラッキングのために、以下を考慮してください:
- タグはできるだけ平らであるべきです。
- Limelightはタグの高さより上か下に取り付け、ターゲットが中心に来るように上下に角度をつけてください。カメラの視点からターゲットができるだけ台形に見えるようにします。タグの反転を避けたい場合は、カメラがタグに完全に"正面"から向き合わないようにしてください。
AprilTagトラッキングには以下の変数間の相互作用があります:
- キャプチャ解像度を上げると、常に3D精度が向上し、3D安定性が向上します。これにより、ほとんどの視点からの曖昧さの反転の割合も減少します。通常、範囲も広がります。これによりパイプラインのフレームレートは低下します。
- 検出器のダウンスケールを上げると、常にパイプラインのフレームレートが向上します。有効範囲は減少しますが、場合によってはその影響は無視できるかもしれません。3D精度、3D安定性、デコード精度には影響しません。
- 露出を減らすと、常にモーションブラーへの耐性が向上します。これは実際に簡単に観察できます。範囲が狭くなる可能性があります。
- 画像の明るさとコントラストを下げると、一般的にパイプライ ンのフレームレートが向上し、範囲が狭くなります。
- センサーゲインを上げると、露出を増やさずに明るさを上げることができます。3D安定性が低下し、トラッキングの安定性が低下する可能性があります。
入力タブ
入力タブには、生のカメラ画像を処理パイプラインに渡す前に変更するためのコントロールがあります。詳細については、"再帰反射/カラーパイプラインの構築"ページを参照してください。
AprilTagをトラッキングするには:
- "パイプラインタイプ"を"フィデューシャルマーカー"に変更
- "ブラックレベル"をゼロに設定
この時点で、センサーゲインと露出時間のバランスを取ることが重要です。モーションブラーを最小限に抑えるために、可能な限り小さい露出でタグを見ることができるようにしたいです。 これは通常、高いセンサーゲイン設定を必要とします。単純な2Dトラッキングの場合、 センサーゲインを最大にし、ゼロから露出を上げてターゲットが十分にトラッキングされるまで調整することがよくあります。トラッキングがうまくいかない場合は、"標準"タブで正しいファミリーが選択されていることを確認してください。
標準タブ
ファミ リー
フィデューシャル/AprilTagのファミリータイプを選択します。FRCの場合、"AprilTag Classic 36h11"を選択する必要があります。
マーカーサイズ
ロボットが遭遇するタグの予想サイズをmm単位で設定します。FRCの場合、これは165.1に設定する必要があります(2023年のタグの場合は152.4)。
検出器ダウンスケール
この数値を上げると、大幅なパフォーマンス向上が得られます。これにより範囲が狭くなることもありますが、通常そのコストは最小限です。
IDフィルター
IDフィルターを使用すると、関心のあるタグを正確に指定できます。ほとんどのFRCチームの場合、各パイプラインは正確に1つのタグIDをトラッキングするように設定する必要があります。 これはカンマ区切りの数字のリストです(例:「0,1」)。この機能は、大多数の誤検出を排除するために重要です。
クロッピング
クロッピングは画像からコンテンツを削除し、大幅なパフォーマンス向上を実現します。試合中に動的にクロップするには、NT "crop" キーを使用します。
マルチターゲットのソートとグループ化
これにより、標準的な再帰反射パイプラインで見られる正確なグループ化機能が可能になります。ほとんどのゲームでは、変更する唯一の機能は "エリア" フィルターで、これにより小さなタグをフィルタリングできます。