Ana içeriğe geç

FTC Programlama Hızlı Başlangıç

FTC'de, Limelight'ınızla etkileşim kurmak için Android Studio, OnBot Java ve Blockly'yi kullanabilirsiniz.

Çoğu uygulama 10 satırdan az kod gerektirir. İşte sürecin hızlı bir genel bakışı.

Temel Kullanım

  1. Limelight3A'nızı Control Hub Kurulumu adımında kullandığınız aynı adı kullanarak başlatın.
  2. Web arayüzünü kullanarak yapılandırdığınız 10 pipeline'dan birini seçmek için pipelineSwitch() fonksiyonunu çağırın.
  3. Saniyede 100 yoklama ile arka plan sonuçları yoklamasını başlatmak için start() fonksiyonunu çağırın.
public class Teleop extends LinearOpMode {

private Limelight3A limelight;

@Override
public void runOpMode() throws InterruptedException
{
limelight = hardwareMap.get(Limelight3A.class, "limelight");

telemetry.setMsTransmissionInterval(11);

limelight.pipelineSwitch(0);

/*
* Veri yoklamasını başlatır.
*/
limelight.start();
.
.
  1. En son LLResult nesnesini almak için otonom ve teleop döngülerinizde getLatestResult() fonksiyonunu çağırın.
  2. Robotunuzu yönlendirmek için LLResult'ın getTx(), getTy() ve getBotpose() fonksiyonlarını kullanın.
    while (opModeIsActive()) {
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose();
telemetry.addData("tx", result.getTx());
telemetry.addData("ty", result.getTy());
telemetry.addData("Botpose", botpose.toString());
.
.

İleri Düzey Kullanım

  1. İleri düzey kullanım durumları, LLResult'ın getColorResults(), getFiducialResults() vb. fonksiyonlarının kullanılmasını gerektirebilir.
    // algılanan her hedef için bazı verileri yazdır
if (result.isValid()) {
// Fiducial sonuçlarına eriş
List<LLResultTypes.FiducialResult> fiducialResults = result.getFiducialResults();
for (LLResultTypes.FiducialResult fr : fiducialResults) {
telemetry.addData("Fiducial", "ID: %d, Aile: %s, X: %.2f, Y: %.2f", fr.getFiducialId(), fr.getFamily(),fr.getTargetXDegrees(), fr.getTargetYDegrees());
}

// Renk sonuçlarına eriş
List<LLResultTypes.ColorResult> colorResults = result.getColorResults();
for (LLResultTypes.ColorResult cr : colorResults) {
telemetry.addData("Renk", "X: %.2f, Y: %.2f", cr.getTargetXDegrees(), cr.getTargetYDegrees());
}
}
  1. Maksimum 3D lokalizasyon doğruluğu için updateRobotOrientation() fonksiyonunu çağırın ve getBotPose_MT2() fonksiyonunu kullanın. MegaTag2, AprilTags gibi tüm düzlemsel hedefler için temel olan belirsizlik problemini çözmek için IMU'yu kullanan bir IMU-Füzyon robot lokalizörüdür.
    while (opModeIsActive()) {
YawPitchRollAngles orientation = imu.getRobotYawPitchRollAngles();

telemetry.addData("Yaw (Z)", "%.2f Derece (Yön)", orientation.getYaw(AngleUnit.DEGREES));

limelight.updateRobotOrientation(orientation.getYaw(AngleUnit.DEGREES));
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose_MT2();
.
.

Daha fazla bilgi için FTC Programlama sayfasına bakın.