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を転送する
- Java
- C++
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 に転送されるようになります
#include <wpi/PortForwarder.h>
void Robot::RobotInit
{
for (int port = 5800; port <= 5809; port++)
{
wpi::PortForwarder::GetInstance().Add(port, "limelight-left.local", port);
}
}
http://roborio-(チーム番号)-FRC.local:5801 が limelight.local:5801 に転送されるようになります
2台目のLimelightを追加するには、異なるローカルポートのセットを使用します。最初のPortForwarder::add()引数の"+10"に注目してください:
for (int port = 5800; port <= 5809; port++)
{
wpi::PortForwarder::GetInstance().Add(port+10, "limelight.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度回転させ、他のターゲットが誤って追跡されないことを確認する。
- さらなるチューニングのヒントについては、以下のチューニングセクションを参照してください。
- 他のフィールド/アリーナ要素が誤って追跡されていないことを確認する。アリーナの照明を拾ってしまう場合は、面積とアスペクト比のフィルターを確認する。
- すべてのターゲットと誤った追跡のスナップショットを撮る。これらを使用して、ピットでパイプラインを調整できます。