FTC Java & Blockly プログラミングガイド
(Blocklyのスクリーンショットは近日公開予定!)
FTCプログラミングクイックスタートを必ず読んでください。
FTC Limelight Javadoc: Javadoc
基本的なFTCの例: FTCサンプル
完全な例のリポジトリ: Limelight FTC 例リポジトリ
成功のためのヒント
- まずは簡単なことから始めましょう。FRCでは、最高のソフトウェアチームはしばしば最もシンプルなアプローチを使用することを学びました。例えば、FRCチーム2056は2024年に、ゲームピースを追跡するために神経ネットワークの代わりに標準的な90FPSカラーパイプラインを 使用しました。
プログラミングを始める際に考えるべき質問の例を挙げます:テレオペレーション中に、フィールド上のロボットの位置を知る必要がありますか?それとも、特定のタグにクロスヘアが中央に来るまで横方向に移動するだけで良いですか(strafeSpeed = result.getTx()*.03)?
主要な概念
1. 初期化
ロボットコードでLimelight3Aをセットアップする必要があります。
import com.qualcomm.hardware.limelightvision.LLResult;
import com.qualcomm.hardware.limelightvision.LLResultTypes;
import com.qualcomm.hardware.limelightvision.LLStatus;
import com.qualcomm.hardware.limelightvision.Limelight3A;
Limelight3A limelight;
@Override
public void init() {
limelight = hardwareMap.get(Limelight3A.class, "limelight");
limelight.setPollRateHz(100); // Limelightからデータを要求する頻度を設定します(1秒間に100回)
limelight.start(); // Limelightに検出を開始するよう指示します!
}
2. パイプライン管理
パイプラインは、Limelightが世界をどのように見るかを変更する、小さくて即座に切り替え可能なプログラムのようなものです。Limelightのウェブインターフェースで、それぞれ異なるタスク用に10種類のパイプラインを設定できます。以下はパイプラインを切り替える方法です:
limelight.pipelineSwitch(0); // パイプライン番号0に切り替え
これは発行後忘れる(fire-and-forget)タイプの命令です。Limelightはミリ秒単位でパイプラインを変更しますが、コードはこれを待たずに続行します。現在のパイプラインインデックスを確認したい場合は、
result.getPipelineIndex()
を呼び出します。
次のセクションでLLResultオブジェクトの取得方法について学びましょう。