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

FRC प्रोग्रामिंग लाइमलाइट लिब के साथ (WPILib Java और C++)

JavaDocs: https://limelightlib-wpijava-reference.limelightvision.io

उपयोग

यह एक सिंगल-फाइल लाइब्रेरी है। आपको केवल नवीनतम रिलीज़ (https://github.com/LimelightVision/limelightlib-wpijava/releases) से LimelightHelpers.java फ़ाइल को अपने Java प्रोजेक्ट के "robot" फ़ोल्डर में कॉपी करना होगा। आपको अपने लाइमलाइट्स के लिए कोई ऑब्जेक्ट बनाने की आवश्यकता नहीं है - लाइब्रेरी सरल और कार्यात्मक है जिससे उपयोग में आसानी और विश्वसनीयता अधिकतम होती है।

सफलता के लिए टिप्स

  • सरल शुरुआत करें! कई सफल FRC टीमें बुनियादी दृष्टिकोणों का प्रभावी ढंग से उपयोग करती हैं। उदाहरण के लिए, टीम 2056 ने 2024 में गेम पीस ट्रैकिंग के लिए न्यूरल नेटवर्क के बजाय मानक 90FPS कलर पाइपलाइन का उपयोग किया।
  • सोचें कि आपको वास्तव में क्या चाहिए: क्या आपको पूरे फील्ड का लोकलाइजेशन चाहिए, या क्या सिंपल टारगेट सेंटरिंग काम करेगी (जैसे, driveSpeed = result.getTx() * 0.03)?

मुख्य अवधारणाएँ

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

हर मेथड एक Limelight नाम पैरामीटर स्वीकार करता है। इसे खाली या null छोड़ दें "limelight" का उपयोग करने के लिए:

// बुनियादी लक्ष्यीकरण डेटा
double tx = LimelightHelpers.getTX(""); // क्रॉसहेयर से लक्ष्य तक क्षैतिज ऑफसेट डिग्री में
double ty = LimelightHelpers.getTY(""); // क्रॉसहेयर से लक्ष्य तक ऊर्ध्वाधर ऑफसेट डिग्री में
double ta = LimelightHelpers.getTA(""); // लक्ष्य क्षेत्र (छवि का 0% से 100%)
boolean hasTarget = LimelightHelpers.getTV(""); // क्या आपके पास एक वैध लक्ष्य है?

double txnc = LimelightHelpers.getTXNC(""); // प्रमुख पिक्सेल/बिंदु से लक्ष्य तक क्षैतिज ऑफसेट डिग्री में
double tync = LimelightHelpers.getTYNC(""); // प्रमुख पिक्सेल/बिंदु से लक्ष्य तक ऊर्ध्वाधर ऑफसेट डिग्री में

2. पाइपलाइन प्रबंधन

पाइपलाइन तुरंत-स्वैप करने योग्य प्रोग्राम की तरह हैं जो बदलते हैं कि Limelight छवियों को कैसे प्रोसेस करता है। आप वेब इंटरफेस में 10 अलग-अलग पाइपलाइन सेट कर सकते हैं:

// पाइपलाइन 0 पर स्विच करें
LimelightHelpers.setPipelineIndex("", 0);

3. LED नियंत्रण

उज्ज्वल प्रकाश LED वाले Limelights के लिए, आप विभिन्न स्थितियों के लिए LED को नियंत्रित कर सकते हैं:

// वर्तमान पाइपलाइन को LED नियंत्रित करने दें
LimelightHelpers.setLEDMode_PipelineControl("");

// LED को चालू/बंद/ब्लिंक करने के लिए मजबूर करें
LimelightHelpers.setLEDMode_ForceOn("");
LimelightHelpers.setLEDMode_ForceOff("");
LimelightHelpers.setLEDMode_ForceBlink("");

4. MegaTag के साथ फील्ड लोकलाइजेशन

(अधिक विवरण के लिए MegaTag दस्तावेज़ और Swerve Pose Estimation ट्यूटोरियल देखें।)

// आपके आवधिक फंक्शन में:
LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if (limelightMeasurement.tagCount >= 2) { // केवल तभी माप पर भरोसा करें जब हम कई टैग देखते हैं
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(0.7, 0.7, 9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds
);
}

5. MegaTag2 के साथ फील्ड लोकलाइजेशन

(अधिक विवरण के लिए MegaTag2 दस्तावेज़ और Swerve Pose Estimation ट्यूटोरियल देखें।)

MegaTag2 रोबोट ओरिएंटेशन डेटा को विज़न के साथ फ्यूज़ करके लोकलाइजेशन सटीकता को बढ़ाता है। जायरो डेटा प्रदान करके, आप MegaTag2 को लोकलाइजेशन समस्या को सीमित करने में मदद करते हैं और उत्कृष्ट परिणाम प्रदान करते हैं, भले ही केवल एक टैग दिखाई दे:

// सबसे पहले, Limelight को अपने रोबोट का वर्तमान ओरिएंटेशन बताएं
double robotYaw = m_gyro.getYaw();
LimelightHelpers.SetRobotOrientation("", robotYaw, 0.0, 0.0, 0.0, 0.0, 0.0);

// पोज़ एस्टिमेट प्राप्त करें
LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("");

// इसे अपने पोज़ एस्टिमेटर में जोड़ें
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.5, .5, 9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds
);

6. विशेष AprilTag कार्यक्षमता

// बेहतर प्रदर्शन के लिए कस्टम क्रॉप विंडो सेट करें (प्रत्येक मान के लिए -1 से 1)
LimelightHelpers.setCropWindow("", -0.5, 0.5, -0.5, 0.5);


// रोबोट केंद्र के सापेक्ष कैमरा पोज़ बदलें (x आगे, y बाएं, z ऊपर, डिग्री)
LimelightHelpers.setCameraPose_RobotSpace("",
0.5, // आगे ऑफसेट (मीटर)
0.0, // साइड ऑफसेट (मीटर)
0.5, // ऊंचाई ऑफसेट (मीटर)
0.0, // रोल (डिग्री)
30.0, // पिच (डिग्री)
0.0 // यॉ (डिग्री)
);

// AprilTag ऑफसेट ट्रैकिंग पॉइंट सेट करें (मीटर)
LimelightHelpers.setFiducial3DOffset("",
0.0, // आगे ऑफसेट
0.0, // साइड ऑफसेट
0.5 // ऊंचाई ऑफसेट
);

// AprilTag डिटेक्शन कॉन्फ़िगर करें
LimelightHelpers.SetFiducialIDFiltersOverride("", new int[]{1, 2, 3, 4}); // केवल इन टैग आईडी को ट्रैक करें
LimelightHelpers.SetFiducialDownscalingOverride("", 2.0f); // बेहतर फ्रेमरेट और कम रेंज के लिए आधे रिज़ॉल्यूशन पर प्रोसेस करें

7. Python एकीकरण

कस्टम Python SnapScripts के साथ संवाद करें:

// Python को डेटा भेजें
double[] dataToSend = {1.0, 2.0, 3.0};
LimelightHelpers.setPythonScriptData("", dataToSend);

// Python से डेटा प्राप्त करें
double[] dataFromPython = LimelightHelpers.getPythonScriptData("");

8. NetworkTables से विस्तृत परिणाम प्राप्त करना (RawTargets)

अधिकतम प्रदर्शन के लिए, आप JSON पार्सिंग को बायपास करके सीधे NetworkTables से रॉ टारगेट डेटा एक्सेस कर सकते हैं:

// रॉ AprilTag/Fiducial डेटा प्राप्त करें
RawFiducial[] fiducials = LimelightHelpers.getRawFiducials("");
for (RawFiducial fiducial : fiducials) {
int id = fiducial.id; // टैग आईडी
double txnc = fiducial.txnc; // X ऑफसेट (क्रॉसहेयर नहीं)
double tync = fiducial.tync; // Y ऑफसेट (क्रॉसहेयर नहीं)
double ta = fiducial.ta; // लक्ष्य क्षेत्र
double distToCamera = fiducial.distToCamera; // कैमरे से दूरी
double distToRobot = fiducial.distToRobot; // रोबोट से दूरी
double ambiguity = fiducial.ambiguity; // टैग पोज़ अस्पष्टता
}

// न्यूरल डिटेक्टर परिणाम प्राप्त करें
RawDetection[] detections = LimelightHelpers.getRawDetections("");
for (RawDetection detection : detections) {
int classID = detection.classId;
double txnc = detection.txnc;
double tync = detection.tync;
double ta = detection.ta;
// आवश्यकतानुसार कॉर्नर कोऑर्डिनेट्स एक्सेस करें
double corner0X = detection.corner0_X;
double corner0Y = detection.corner0_Y;
// ... कॉर्नर 1-3 इसी तरह उपलब्ध हैं
}

9. JSON से विस्तृत परिणाम प्राप्त करना (Results ऑब्जेक्ट)

Results ऑब्जेक्ट सभी Limelight डेटा प्रकारों तक व्यापक पहुंच प्रदान करता है। RoboRIO पर पार्स करने में 2 ms तक का समय लग सकता है, इसलिए हम FRC में इस दृष्टिकोण का उपयोग करने की सिफारिश नहीं करते हैं:

LimelightResults results = LimelightHelpers.getLatestResults("");
if (results.valid) {
// कलर/रेट्रोरिफ्लेक्टिव लक्ष्य
if (results.targets_Retro.length > 0) {
LimelightTarget_Retro target = results.targets_Retro[0];
double skew = target.ts; // लक्ष्य स्क्यू/रोटेशन
double shortSide = target.short_side; // पिक्सेल में सबसे छोटी साइड
double longSide = target.long_side; // पिक्सेल में सबसे लंबी साइड
Pose3d targetPose = target.getCameraPose_TargetSpace();
}

// AprilTags/Fiducials
if (results.targets_Fiducials.length > 0) {
LimelightTarget_Fiducial tag = results.targets_Fiducials[0];
double id = tag.fiducialID; // टैग आईडी
String family = tag.fiducialFamily; // टैग फैमिली (जैसे, "16h5")

// 3D पोज़ डेटा
Pose3d robotPoseField = tag.getRobotPose_FieldSpace(); // फील्ड स्पेस में रोबोट का पोज़
Pose3d cameraPoseTag = tag.getCameraPose_TargetSpace(); // टैग के सापेक्ष कैमरे का पोज़
Pose3d robotPoseTag = tag.getRobotPose_TargetSpace(); // टैग के सापेक्ष रोबोट का पोज़
Pose3d tagPoseCamera = tag.getTargetPose_CameraSpace(); // कैमरे के सापेक्ष टैग का पोज़
Pose3d tagPoseRobot = tag.getTargetPose_RobotSpace(); // रोबोट के सापेक्ष टैग का पोज़

// 2D लक्ष्यीकरण डेटा
double tx = tag.tx; // क्रॉसहेयर से क्षैतिज ऑफसेट
double ty = tag.ty; // क्रॉसहेयर से ऊर्ध्वाधर ऑफसेट
double ta = tag.ta; // लक्ष्य क्षेत्र (छवि का 0-100%)
}

// न्यूरल नेटवर्क डिटेक्शन
if (results.targets_Detector.length > 0) {
LimelightTarget_Detector detection = results.targets_Detector[0];
String className = detection.className;
double confidence = detection.confidence;
double area = detection.ta;
}

// क्लासिफायर परिणाम
if (results.targets_Classifier.length > 0) {
LimelightTarget_Classifier result = results.targets_Classifier[0];
String class_name = result.className;
double confidence = result.confidence;
int classID = (int)result.classID;
}

// बारकोड/QR कोड परिणाम
if (results.targets_Barcode.length > 0) {
LimelightTarget_Barcode barcode = results.targets_Barcode[0];
String data = barcode.data;
String family = barcode.family;
}
}

10. स्नैपशॉट प्रबंधन

ऑफलाइन पाइपलाइन ट्यूनिंग के लिए स्नैपशॉट लें:

// बाद में वेब इंटरफेस में देखने के लिए स्नैपशॉट लें
LimelightHelpers.takeSnapshot("", "auto_shot_1");

11. विविध कार्यक्षमता

// स्ट्रीम मोड बदलें
LimelightHelpers.setStreamMode_Standard(""); // साइड-बाय-साइड स्ट्रीम
LimelightHelpers.setStreamMode_PiPMain(""); // कोने में सेकेंडरी स्ट्रीम
LimelightHelpers.setStreamMode_PiPSecondary(""); // कोने में प्राइमरी स्ट्रीम

LimelightHelpers स्टैटिक मेथड्स

टारगेट डेटा

public static boolean getTV(String limelightName)
public static double getTX(String limelightName)
public static double getTY(String limelightName)
public static double getTXNC(String limelightName)
public static double getTYNC(String limelightName)
public static double getTA(String limelightName)
public static double[] getT2DArray(String limelightName)
public static int getTargetCount(String limelightName)
public static RawFiducial[] getRawFiducials(String limelightName)
public static RawDetection[] getRawDetections(String limelightName)

न्यूरल नेटवर्क परिणाम

public static int getClassifierClassIndex(String limelightName)  
public static int getDetectorClassIndex(String limelightName)
public static String getClassifierClass(String limelightName)
public static String getDetectorClass(String limelightName)

पोज एस्टिमेशन

public static PoseEstimate getBotPoseEstimate_wpiBlue(String limelightName)
public static PoseEstimate getBotPoseEstimate_wpiRed(String limelightName)
public static PoseEstimate getBotPoseEstimate_wpiBlue_MegaTag2(String limelightName)
public static PoseEstimate getBotPoseEstimate_wpiRed_MegaTag2(String limelightName)

public static Pose3d getBotPose3d(String limelightName)
public static Pose3d getBotPose3d_wpiRed(String limelightName)
public static Pose3d getBotPose3d_wpiBlue(String limelightName)
public static Pose3d getBotPose3d_TargetSpace(String limelightName)
public static Pose3d getCameraPose3d_TargetSpace(String limelightName)
public static Pose3d getTargetPose3d_CameraSpace(String limelightName)
public static Pose3d getTargetPose3d_RobotSpace(String limelightName)
public static Pose3d getCameraPose3d_RobotSpace(String limelightName)

public static Pose2d getBotPose2d(String limelightName)
public static Pose2d getBotPose2d_wpiBlue(String limelightName)
public static Pose2d getBotPose2d_wpiRed(String limelightName)

public static double[] getBotPose(String limelightName)
public static double[] getBotPose_wpiRed(String limelightName)
public static double[] getBotPose_wpiBlue(String limelightName)
public static double[] getBotPose_TargetSpace(String limelightName)
public static double[] getCameraPose_TargetSpace(String limelightName)
public static double[] getTargetPose_CameraSpace(String limelightName)
public static double[] getTargetPose_RobotSpace(String limelightName)

कैमरा/पाइपलाइन कॉन्फिगरेशन

public static void setPipelineIndex(String limelightName, int pipelineIndex)
public static void setPriorityTagID(String limelightName, int ID)
public static double getCurrentPipelineIndex(String limelightName)
public static String getCurrentPipelineType(String limelightName)

public static void setLEDMode_PipelineControl(String limelightName)
public static void setLEDMode_ForceOff(String limelightName)
public static void setLEDMode_ForceBlink(String limelightName)
public static void setLEDMode_ForceOn(String limelightName)

public static void setStreamMode_Standard(String limelightName)
public static void setStreamMode_PiPMain(String limelightName)
public static void setStreamMode_PiPSecondary(String limelightName)

public static void setCropWindow(String limelightName, double cropXMin, double cropXMax, double cropYMin, double cropYMax)
public static void setCameraPose_RobotSpace(String limelightName, double forward, double side, double up, double roll, double pitch, double yaw)

उन्नत AprilTag/फिड्यूशल सेटिंग्स

public static void setFiducial3DOffset(String limelightName, double offsetX, double offsetY, double offsetZ)
public static void SetRobotOrientation(String limelightName, double yaw, double yawRate, double pitch, double pitchRate, double roll, double rollRate)
public static void SetFiducialIDFiltersOverride(String limelightName, int[] validIDs)
public static void SetFiducialDownscalingOverride(String limelightName, float downscale)

परिणाम और डेटा एक्सेस

public static double getLatency_Pipeline(String limelightName)
public static double getLatency_Capture(String limelightName)
public static double[] getTargetColor(String limelightName)
public static double getFiducialID(String limelightName)
public static String getNeuralClassID(String limelightName)
public static String[] getRawBarcodeData(String limelightName)
public static String getJSONDump(String limelightName)
public static LimelightResults getLatestResults(String limelightName)

पायथन स्क्रिप्ट इंटरफेस

public static void setPythonScriptData(String limelightName, double[] outgoingPythonData)
public static double[] getPythonScriptData(String limelightName)

उपयोगिता मेथड्स

public static CompletableFuture<Boolean> takeSnapshot(String tableName, String snapshotName)
public static NetworkTable getLimelightNTTable(String tableName)
public static NetworkTableEntry getLimelightNTTableEntry(String tableName, String entryName)
public static double getLimelightNTDouble(String tableName, String entryName)
public static void setLimelightNTDouble(String tableName, String entryName, double val)
public static void setLimelightNTDoubleArray(String tableName, String entryName, double[] val)
public static double[] getLimelightNTDoubleArray(String tableName, String entryName)
public static String getLimelightNTString(String tableName, String entryName)
public static URL getLimelightURLString(String tableName, String request)

कोर क्लासेज

PoseEstimate

एक 3D पोज एस्टिमेट का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • Pose2d pose - अनुमानित पोज
  • double timestampSeconds - अनुमान का टाइमस्टैम्प
  • double latency - प्रोसेसिंग लेटेंसी
  • int tagCount - उपयोग किए गए टैग्स की संख्या
  • double tagSpan - पहचाने गए टैग्स के बीच का स्पैन
  • double avgTagDist - टैग्स तक औसत दूरी
  • double avgTagArea - टैग्स का औसत क्षेत्रफल
  • RawFiducial[] rawFiducials - रॉ फिड्यूशल डिटेक्शन्स
  • boolean isMegaTag2 - क्या यह MegaTag2 रिजल्ट है

(NetworkTables-derived) RawFiducial

रॉ AprilTag/फिड्यूशल डिटेक्शन डेटा का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • int id - AprilTag ID नंबर
  • double txnc - कैमरा केंद्र से क्षैतिज ऑफसेट (डिग्री में)
  • double tync - कैमरा केंद्र से ऊर्ध्वाधर ऑफसेट (डिग्री में)
  • double ta - टारगेट एरिया (इमेज का 0-100%)
  • double distToCamera - कैमरा से टारगेट तक की दूरी (मीटर में)
  • double distToRobot - रोबोट से टारगेट तक की दूरी (मीटर में)
  • double ambiguity - AprilTag पोज एम्बिग्युइटी स्कोर

(NetworkTables-derived) RawDetection

रॉ न्यूरल नेटवर्क डिटेक्शन डेटा का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • int classId - न्यूरल नेटवर्क क्लास ID
  • double txnc - कैमरा केंद्र से क्षैतिज ऑफसेट (डिग्री में)
  • double tync - कैमरा केंद्र से ऊर्ध्वाधर ऑफसेट (डिग्री में)
  • double ta - टारगेट एरिया (इमेज का 0-100%)
  • double corner0_X - पहले कोने का X कोऑर्डिनेट
  • double corner0_Y - पहले कोने का Y कोऑर्डिनेट
  • double corner1_X - दूसरे कोने का X कोऑर्डिनेट
  • double corner1_Y - दूसरे कोने का Y कोऑर्डिनेट
  • double corner2_X - तीसरे कोने का X कोऑर्डिनेट
  • double corner2_Y - तीसरे कोने का Y कोऑर्डिनेट
  • double corner3_X - चौथे कोने का X कोऑर्डिनेट
  • double corner3_Y - चौथे कोने का Y कोऑर्डिनेट

(JSON-derived) LimelightResults

लाइमलाइट के JSON आउटपुट से सभी परिणामों को शामिल करता है

पब्लिक प्रॉपर्टीज:

  • String error - एरर मैसेज (यदि कोई हो)
  • double pipelineID - वर्तमान पाइपलाइन इंडेक्स
  • double latency_pipeline - पाइपलाइन प्रोसेसिंग लेटेंसी (ms)
  • double latency_capture - इमेज कैप्चर लेटेंसी (ms)
  • double latency_jsonParse - JSON पार्सिंग लेटेंसी (ms)
  • double timestamp_LIMELIGHT_publish - डेटा प्रकाशित होने का टाइमस्टैम्प
  • double timestamp_RIOFPGA_capture - RoboRIO FPGA द्वारा डेटा कैप्चर करने का टाइमस्टैम्प
  • boolean valid - क्या टारगेट वैलिड है
  • double[] botpose - फील्ड स्पेस में रोबोट पोज
  • double[] botpose_wpired - WPILib रेड अलायंस स्पेस में रोबोट पोज
  • double[] botpose_wpiblue - WPILib ब्लू अलायंस स्पेस में रोबोट पोज
  • double botpose_tagcount - पोज एस्टिमेशन के लिए उपयोग किए गए टैग्स की संख्या
  • double botpose_span - पहचाने गए टैग्स के बीच का स्पैन
  • double botpose_avgdist - पहचाने गए टैग्स तक औसत दूरी
  • double botpose_avgarea - पहचाने गए टैग्स का औसत एरिया
  • double[] camerapose_robotspace - रोबोट के सापेक्ष कैमरा पोज
  • LimelightTarget_Retro[] targets_Retro - रेट्रोरिफ्लेक्टिव टारगेट्स का एरे
  • LimelightTarget_Fiducial[] targets_Fiducials - AprilTag टारगेट्स का एरे
  • LimelightTarget_Classifier[] targets_Classifier - क्लासिफायर रिजल्ट्स का एरे
  • LimelightTarget_Detector[] targets_Detector - डिटेक्टर रिजल्ट्स का एरे
  • LimelightTarget_Barcode[] targets_Barcode - बारकोड रिजल्ट्स का एरे

पब्लिक मेथड्स:

  • Pose3d getBotPose3d()
  • Pose3d getBotPose3d_wpiRed()
  • Pose3d getBotPose3d_wpiBlue()
  • Pose2d getBotPose2d()
  • Pose2d getBotPose2d_wpiRed()
  • Pose2d getBotPose2d_wpiBlue()

(JSON-derived) LimelightTarget_Retro

कलर/रेट्रोरिफ्लेक्टिव टारगेट रिजल्ट का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • double ta - टारगेट एरिया (इमेज का 0-100%)
  • double tx - क्रॉसहेयर से टारगेट तक क्षैतिज ऑफसेट (-29.8 से 29.8 डिग्री)
  • double ty - क्रॉसहेयर से टारगेट तक ऊर्ध्वाधर ऑफसेट (-24.85 से 24.85 डिग्री)
  • double tx_pixels - पिक्सेल में क्षैतिज ऑफसेट
  • double ty_pixels - पिक्सेल में ऊर्ध्वाधर ऑफसेट
  • double tx_nocrosshair - कैमरा केंद्र से क्षैतिज ऑफसेट
  • double ty_nocrosshair - कैमरा केंद्र से ऊर्ध्वाधर ऑफसेट
  • double ts - टारगेट स्क्यू या रोटेशन (-90 से 0 डिग्री)

पब्लिक मेथड्स:

  • Pose3d getCameraPose_TargetSpace()
  • Pose3d getRobotPose_FieldSpace()
  • Pose3d getRobotPose_TargetSpace()
  • Pose3d getTargetPose_CameraSpace()
  • Pose3d getTargetPose_RobotSpace()
  • Pose2d getCameraPose_TargetSpace2D()
  • Pose2d getRobotPose_FieldSpace2D()
  • Pose2d getRobotPose_TargetSpace2D()
  • Pose2d getTargetPose_CameraSpace2D()
  • Pose2d getTargetPose_RobotSpace2D()

(JSON-derived) LimelightTarget_Fiducial

AprilTag/फिड्यूशल टारगेट रिजल्ट का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • double fiducialID - AprilTag ID नंबर
  • String fiducialFamily - AprilTag फैमिली टाइप
  • LimelightTarget_Retro से सभी प्रॉपर्टीज

पब्लिक मेथड्स:

  • LimelightTarget_Retro से सभी मेथड्स

(JSON-derived) LimelightTarget_Barcode

बारकोड टारगेट रिजल्ट का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • String family - बारकोड फैमिली टाइप (जैसे "QR", "DataMatrix")
  • String data - डिकोडेड बारकोड डेटा कंटेंट
  • double tx_pixels - पिक्सेल में क्षैतिज ऑफसेट
  • double ty_pixels - पिक्सेल में ऊर्ध्वाधर ऑफसेट
  • double tx - क्रॉसहेयर से क्षैतिज ऑफसेट
  • double ty - क्रॉसहेयर से ऊर्ध्वाधर ऑफसेट
  • double tx_nocrosshair - कैमरा केंद्र से क्षैतिज ऑफसेट
  • double ty_nocrosshair - कैमरा केंद्र से ऊर्ध्वाधर ऑफसेट
  • double ta - टारगेट एरिया
  • double[][] corners - कोने के कोऑर्डिनेट्स

पब्लिक मेथड्स:

  • String getFamily()

(JSON-derived) LimelightTarget_Classifier

न्यूरल क्लासिफायर पाइपलाइन रिजल्ट का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • String className - पहचाना गया क्लास नाम
  • double classID - पहचाना गया क्लास ID नंबर
  • double confidence - डिटेक्शन कॉन्फिडेंस (0-100%)
  • double zone - डिटेक्शन ज़ोन
  • double tx - क्रॉसहेयर से क्षैतिज ऑफसेट
  • double ty - क्रॉसहेयर से ऊर्ध्वाधर ऑफसेट
  • double txp - पिक्सेल में क्षैतिज ऑफसेट
  • double typ - पिक्सेल में ऊर्ध्वाधर ऑफसेट

(JSON-derived) LimelightTarget_Detector

न्यूरल डिटेक्टर पाइपलाइन रिजल्ट का प्रतिनिधित्व करता है

पब्लिक प्रॉपर्टीज:

  • String className - पहचाना गया क्लास नाम
  • double classID - पहचाना गया क्लास ID नंबर
  • double confidence - डिटेक्शन कॉन्फिडेंस (0-100%)
  • double ta - टारगेट एरिया
  • double tx - क्रॉसहेयर से क्षैतिज ऑफसेट
  • double ty - क्रॉसहेयर से ऊर्ध्वाधर ऑफसेट
  • double txp - पिक्सेल में क्षैतिज ऑफसेट
  • double typ - पिक्सेल में ऊर्ध्वाधर ऑफसेट
  • double tx_nocrosshair - कैमरा केंद्र से क्षैतिज ऑफसेट
  • double ty_nocrosshair - कैमरा केंद्र से ऊर्ध्वाधर ऑफसेट