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
- Control Hub Kurulum adımında kullandığınız aynı adı kullanarak Limelight3A'nızı başlatın.
- Web arayüzünü kullanarak yapılandırdığınız 10 pipeline'dan birini seçmek için pipelineSwitch()'i çağırın
- 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();
.
.
- En son LLResult nesnesini almak için otonom ve teleop döngülerinizde getLatestResult()'ı çağırın
- 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
- İ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());
}
}
- 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