मुख्य कंटेंट तक स्किप करें

FTC प्रोग्रामिंग त्वरित प्रारंभ

FTC में, आप अपने Limelight के साथ इंटरैक्ट करने के लिए Android Studio, OnBot Java, और Blockly का उपयोग कर सकते हैं।

अधिकांश एप्लिकेशन के लिए 10 से कम लाइनों का कोड आवश्यक होता है। यहां प्रक्रिया का एक त्वरित अवलोकन दिया गया है।

बुनियादी उपयोग

  1. अपने Limelight3A को उसी नाम से इनिशियलाइज़ करें जो आपने कंट्रोल हब सेटअप चरण के दौरान उपयोग किया था।
  2. वेब इंटरफ़ेस का उपयोग करके कॉन्फ़िगर किए गए 10 पाइपलाइनों में से एक का चयन करने के लिए pipelineSwitch() को कॉल करें।
  3. पृष्ठभूमि परिणाम पोलिंग को प्रति सेकंड 100 पोल पर शुरू करने के लिए start() को कॉल करें।
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);

/*
* डेटा के लिए पोलिंग शुरू करता है।
*/
limelight.start();
.
.
  1. नवीनतम LLResult ऑब्जेक्ट प्राप्त करने के लिए अपने स्वायत्त और टेलीऑप लूप में getLatestResult() को कॉल करें।
  2. अपने रोबोट का मार्गदर्शन करने के लिए LLResult के getTx(), getTy(), और getBotpose() का उपयोग करें।
    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());
.
.

उन्नत उपयोग

  1. उन्नत उपयोग-मामलों के लिए LLResult के getColorResults(), getFiducialResults(), आदि का उपयोग करने की आवश्यकता हो सकती है।
    // प्रत्येक पता लगाए गए लक्ष्य के लिए कुछ डेटा प्रिंट करें
if (result.isValid()) {
// फिड्यूशियल परिणामों तक पहुंचें
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());
}

// रंग परिणामों तक पहुंचें
List<LLResultTypes.ColorResult> colorResults = result.getColorResults();
for (LLResultTypes.ColorResult cr : colorResults) {
telemetry.addData("Color", "X: %.2f, Y: %.2f", cr.getTargetXDegrees(), cr.getTargetYDegrees());
}
}
  1. अधिकतम 3D स्थानीयकरण सटीकता के लिए, updateRobotOrientation() को कॉल करें और getBotPose_MT2() का उपयोग करें। MegaTag2 एक IMU-फ्यूज्ड रोबोट लोकलाइज़र है जो अस्पष्टता समस्या को हल करने के लिए imu का उपयोग करता है जो AprilTags जैसे सभी समतल लक्ष्यों के लिए मौलिक है।
    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();
.
.

अधिक जानकारी के लिए, FTC प्रोग्रामिंग पेज देखें।