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

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-(チーム番号)-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-(チーム番号)-FRC.local:5811 が limelight-left.local:5801 に転送されるようになります

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

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

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

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

  • 可能な限り低い露出を使用し、フィールドの照明やLEDの反射が画像から除去されるまでブラックレベルオフセットを上げる。
  • ターゲットから遠く離れ、角度をつけた状態でしきい値処理をテストする。
  • 2019.7の「スマートスペックル除去」を使用して、不要な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キーを使用します。これによりストリームの帯域幅が大幅に削減されます。
  • ストリーミングが運転に不可欠でない場合は、設定ページでストリームレートを「低」に設定します。
  • 2019.7で導入された160x120ストリームオプションを使用します。

トラブルシューティング

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