メインコンテンツまでスキップ

FRC ベストプラクティス

イベント準備チェックリスト

  • すべてのパイプラインをプログラミングラップトップにダウンロードしバックアップを取る。
  • 最新のLimelightイメージのコピーをプログラミングラップトップにダウンロードする。
  • パイプラインとそのインデックスのリストを記録する。
    • 1 - デュアルターゲット ロー
    • 2 - デュアルターゲット ハイカーゴ
  • LLに接続するすべての電源とイーサネットケーブルにストレインリリーフを追加する。
  • すべての接続部分のホットグルー固定を検討する。
  • 練習中や大会中はウェブブラウザではなく、ダッシュボード(Smartdashboard, Shuffleboard)を使用してストリームを表示する。デフォルトのウェブコントロールには突発的な切断後の自動再接続機能がありませんが、SmartDashboardとShuffleboardにはデフォルトで自動再接続機能が組み込まれています。
  • イベント時のイーサネット接続を可能にし、2番目のラジオポートを避けるため、ロボットにネットワークスイッチを追加する。Brainboxes SW-005 5ポートスイッチを推奨します。
  • より線のCat6ケーブルを使用する。フラットなイーサネットケーブルは使用しない。
  • 2番目のラジオポートは使用しない。可能な限りすべてのデバイスをネットワークスイッチ経由で接続する。
  • USBでロボットに接続している際のLimelight通信を可能にするため、ポートフォワーディングを設定する。
    • ポート5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807をフォワードする
    import edu.wpi.first.wpiutil.net.PortForwarder;
@Override
public void robotInit()
{
// ポートフォワーディングの設定はロボットコードで1回だけ行うようにしてください。
// これらの関数呼び出しを周期的な関数内に配置しないでください
for (int port = 5800; port <= 5809; port++) {
PortForwarder.add(port, "limelight.local", port);
}
}

http://roborio-(teamnum)-FRC.local:5801 は limelight.local:5801 にフォワードされます

2台目のLimelightを追加するには、異なるローカルポートセットを使用します。最初のPortForwarder.add()引数の「+10」に注目してください:


for (int port = 5800; port <= 5809; port++) {
PortForwarder.add(port+10, "limelight-left.local", port);
}

http://roborio-(teamnum)-FRC.local:5811 は limelight-left.local:5801 にフォワードされます

ポートフォワーディングを有効にすると、http://roborio-(teamnum)-FRC.local:5801 でLimelightの設定ページにアクセスできます。例えば、チーム2928の場合は http://roborio-2928-FRC.local:5801 を使用します。

イベント中のキャリブレーション

  • フィールド上の各ターゲットにロボットを移動させる。
    • しきい値処理が適切に機能していることを確認する。この過程で「threshold」ビュー(画像ストリームの下にある)に切り替える。
    • ターゲットの近くと遠くにロボットを移動させ、十字線が適切にキャリブレーションされていることを確認する。
    • ターゲットから遠い位置で、ロボットを左右約30度回転させ、他のターゲットが誤って追跡されないことを確認する。
    • より詳しいチューニングのヒントは下記のチューニングセクションを参照。
    • 他のフィールド/アリーナ要素が誤って追跡されていないことを確認する。アリーナの照明を拾ってしまう場合は、面積とアスペクト比フィルターを確認する。
    • すべてのターゲットと誤追跡のスナップショットを撮影する。これらを使用してピットでパイプラインを調整できる。

パイプラインのチューニング

  • 可能な限り低い露出を使用し、フィールドライトとLEDの反射が画像から除去されるまでブラックレベルオフセットを上げる。
  • ターゲットから遠く離れ、角度をつけた状態でしきい値処理をテストする。
  • 2019.7の「Smart Speckle Rejection」を使用して不要なLED反射をフィルタリングする。

フィールドに接続する前に

  • ラップトップに静的IPを設定する。
    • IP: 10.TE.AM.5
    • サブネットマスク: 255.0.0.0
    • ゲートウェイ: 10.TE.AM.1
  • RIOに静的IPを設定する。
    • IP: "10.TE.AM.2"
    • サブネットマスク: 255.255.255.0 ** - ここの違いに注意**
    • ゲートウェイ: 10.TE.AM.1
  • 複数使用する場合、Limelightにユニークなホスト名を設定する。
  • Limelightにユニークな静的IP設定を行う。
    • 常に「.11」アドレスから開始して上に進む。(10.9.87.11など)
    • 他のアドレスを使用するとFMSに接続した際にユニットが正常に機能しない可能性があります。
    • IP: "10.TE.AM.11"
    • サブネットマスク: 255.255.255.0
    • ゲートウェイ: "10.TE.AM.1"

注意:ゼロを含むチーム番号の場合は特に注意が必要:

  • チーム916は10.9.16.xxを使用
  • チーム9106は10.91.6.xxを使用
  • チーム9016は10.90.16.xxを使用

追加情報: https://docs.wpilib.org/en/stable/docs/networking/networking-introduction/ip-configurations.html

試合前チェックリスト

  • Limelightに接続するすべての電源とイーサネットケーブルを確認する。
  • すべての電気接続部の緩みと配線の損傷を確認する。
  • すべての取り付けネジ/結束バンド/テープを確認する。
  • 常にESD対策を遵守する。

帯域幅

  • 一部のチームは2台のLimelightと2台のUSBカメラを使用しながら、帯域幅制限を十分に下回っています。帯域幅を削減するには以下の手順に従ってください。
  • ドライバーモードの代わりに「ドライバー」パイプラインを作成する。ストリーム帯域幅を減らすため露出を下げる。
  • USBカメラを使用している場合は、「stream」NTキーを使用してピクチャーインピクチャーモードを有効にする。これによりストリーム帯域幅が大幅に削減される。
  • ストリーミングが運転に重要でない場合は、設定ページでストリームレートを「low」に設定する。
  • 2019.7で導入された160x120ストリームオプションを使用する。

トラブルシューティング

  • ウェブブラウザでIP:5800にアクセスを試みる。これにより問題の根本原因を特定できる。
  • ダッシュボードを再起動する
  • コンピュータを再起動する
  • フィールドがリセットされた場合はロボットを再起動する
  • 破損したイーサネットケーブルは断続的なネットワーク問題の原因となる可能性がある。
  • フィールドでは常に静的IP設定を使用する。