Ana içeriğe geç

FTC Programlama Hızlı Başlangıç

Temel FTC Örneği: FTC Örneği

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. Control Hub Kurulum adımında kullandığınız aynı adı kullanarak Limelight3A'nızı başlatın.
  2. Web arayüzünü kullanarak yapılandırdığınız 10 pipeline'dan birini seçmek için pipelineSwitch()'i çağırın
  3. Saniyede 100 yoklama ile arka plan sonuçları yoklamasını başlatmak için start()'ı ç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()'ı ç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, Family: %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("Color", "X: %.2f, Y: %.2f", cr.getTargetXDegrees(), cr.getTargetYDegrees());
}
}
  1. Maksimum 3D lokalizasyon doğruluğu için, updateRobotOrientation()'ı çağırın ve getBotPose_MT2()'yi kullanın. MegaTag2, AprilTags gibi düzlemsel hedeflerin tümünde temel olan belirsizlik problemini çözmek için imu'yu kullanan IMU-Füzyonlu bir robot lokalizörüdür.
    while (opModeIsActive()) {
YawPitchRollAngles orientation = imu.getRobotYawPitchRollAngles();

telemetry.addData("Yaw (Z)", "%.2f Deg. (Heading)", 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