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

सॉफ्टवेयर परिवर्तन लॉग और फीडबैक

ईमेल या Limelight Feedback Repo पर समस्याएं और फीचर अनुरोध सबमिट करें

Limelight OS 2025.1 (अंतिम रिलीज़ - 2/24/25 टेस्ट रिलीज़ - 2/18/25)

2/24/25 - 2025.1 टेस्ट रिलीज़ में आई कनेक्टिविटी समस्या को ठीक किया गया।

LL4 IMU अपडेट

  • बेहतर IMU सेंसर फ्यूजन
    • वाइब्रेशन और FRC-स्तर के इम्पैक्ट के तहत काफी बेहतर प्रदर्शन। फ्यूजन अप्रोच में बड़े बदलाव।
IMU अपडेट 2025.1

ऊपर की इमेज एक FRC रोबोट के साथ लगभग 5 मिनट के काफी तीव्र प्रैक्टिस सेशन का परिणाम दिखाती है। इस सेशन में, हमने निम्नलिखित की हेडिंग मापी:

  1. 2025.0 चलाने वाला Limelight 4 (llyawOLD)
  2. 2025.1 चलाने वाला Limelight 4 (llyaw)
  3. एक Pigeon 2.0

दोनों LL4 समान ओरिएंटेशन में माउंट किए गए हैं। 2025.1 चलाने वाले LL4 से समग्र सटीकता में भारी सुधार देखें

  • IMU Mode 3 - IMU_ASSIST_MT1 - आंतरिक IMU निरंतर हेडिंग सुधार के लिए फ़िल्टर किए गए MT1 yaw अनुमानों का उपयोग करेगा

  • IMU Mode 4 - IMU_ASSIST_EXTERNALIMU - आंतरिक IMU निरंतर हेडिंग सुधार के लिए बाहरी IMU का उपयोग करेगा

  • imuassistalpha_set NT Key जोड़ा गया (डिफ़ॉल्ट 0.001) - कॉम्प्लीमेंटरी फ़िल्टर अल्फा / स्ट्रेंथ। उच्च मान आंतरिक imu को असिस्ट सोर्स पर अधिक तेज़ी से कन्वर्ज करने का कारण बनेंगे

  • डिफ़ॉल्ट कम मान 0.001 पर सेट है क्योंकि अब हम आंतरिक IMU पर पहले से अधिक भरोसा करते हैं। असिस्ट मोड तेज़ मूवमेंट के दौरान आंतरिक IMU की रिस्पॉन्सिवनेस को नुकसान पहुंचाए बिना आंतरिक imu को चुने गए असिस्ट सोर्स की ओर बहुत धीरे से "खींचने" के लिए बनाए गए हैं।

LL4 थर्मल परफॉर्मेंस अपडेट

  • 'throttle_set' जोड़ा गया। हर N स्किप किए गए फ्रेम के बाद एक फ्रेम प्रोसेस करता है। उदाहरण पैटर्न:

    • throttle_set=1: [skip, process, skip, process]
    • throttle_set=2: [skip, skip, process, skip, skip, process]
  • स्किप किए गए फ्रेम के दौरान आउटपुट शून्य/रीसेट नहीं होते।

  • अपने LL4 के तापमान को प्रबंधित करने के लिए डिसेबल होने पर इसे उच्च संख्या (50-200) पर सेट करें।

  • वैकल्पिक रूप से, आप एक पाइपलाइन को व्यूफाइंडर के रूप में कॉन्फ़िगर कर सकते हैं और डिसेबल होने पर इस पाइपलाइन पर स्विच कर सकते हैं।

LL4 और LL3G के लिए नए FPS विकल्प

  • 60FPS, 55FPS, 45FPS, और 30FPS पर 1280x800 जोड़ा गया।
  • कम कैप्चर रेट का उपयोग करने से आप AC लाइटिंग के कारण इमेज ब्लूमिंग/ब्रीदिंग से बचने के लिए एक्सपोज़र टाइम बढ़ा सकते हैं।

REST API अपडेट

  • IMU Mode REST API जोड़ा गया - 'update-imumode'
  • Throttle REST API जोड़ा गया - 'update-throttle'
  • IMU ASSIST ALPHA REST API जोड़ा गया - 'update-imuassistalpha'

FMap अपडेट

  • FMap Json फ़ाइलें अब वैकल्पिक रूप से base64-एन्कोडेड SVG एम्बेड कर सकती हैं
  • FMap Json फ़ाइलें अब वैकल्पिक रूप से base64-एन्कोडेड PNG एम्बेड कर सकती हैं

ReefScape न्यूरल नेटवर्क अपलोड किए गए

  • B2 Hailo Model FRC2025 के लिए हमारा सबसे अच्छा प्रदर्शन करने वाला मॉडल है। इसे LL4 को बेहतर ढंग से समायोजित करने के लिए मोनोक्रोम इमेज पर प्रशिक्षित किया गया था।
Coral Model

LL3A अपडेट

  • 3A 2025 अपडेट के साथ पूरी तरह से समर्थित है

बगफिक्स

  • बिना आंतरिक IMU वाले Limelights imumode_set को अनदेखा करते हैं
  • Limelight 3s जिन्हें Limelight 3Gs में अपग्रेड किया गया है, वे बिल्ट-इन फैन का सही ढंग से उपयोग करेंगे
  • Hailo-आधारित Neural Detector पाइपलाइनों में क्रॉपिंग ठीक की गई
  • Hailo-आधारित AprilTag पाइपलाइनों में क्रॉपिंग ठीक की गई

Limelight OS 2025.0 (1/15/24)

LL4 सपोर्ट

  • Hailo ऑब्जेक्ट डिटेक्शन और Hailo-एक्सेलरेटेड AprilTags के लिए सपोर्ट जोड़ा गया
  • LL4 के आंतरिक IMU के लिए सपोर्ट जोड़ा गया।
  • "imumode_set" NT Key जोड़ा गया
    • 0 - बाहरी IMU का उपयोग करें, आंतरिक IMU को सीड न करें
    • 1 - बाहरी IMU का उपयोग करें, आंतरिक IMU को सीड करें
    • 2 - आंतरिक IMU का उपयोग करें

2025 फील्ड अपडेट

  • फील्ड चौड़ाई और फील्ड ऊंचाई अब .fmap फ़ाइलों का हिस्सा हैं
  • 2025 फील्ड से मिलान करने के लिए डिफ़ॉल्ट .fmap अपडेट किया गया
  • डिफ़ॉल्ट फील्ड इमेज अपडेट की गई
  • ऑनलाइन मैप बिल्डर अब आपको फील्ड चौड़ाई और फील्ड ऊंचाई कॉन्फ़िगर करने की अनुमति देता है
  • डाउनलोड पेज पर 2025 fmap लिंक अपडेट किया गया है।

बगफिक्स

  • "delete all snapshots" बटन ठीक किया गया

Limelight OS 2024.10.2 (10/28/24)

Python Snapscript फिक्स (क्रेडिट - FTC TEAM 23251 TRIPLE FAULT)

  • Control Hub के साथ Limelight3A का उपयोग करते समय Python आउटपुट अब फ्रीज नहीं होंगे
  • Python पाइपलाइनों के बीच स्विच करते समय Python आउटपुट अब फ्रीज नहीं होंगे

MT2 एज केस

https://github.com/LimelightVision/limelight-feedback/issues/23

  • रोबोट के बिना MT2 का परीक्षण करते समय, ज्यामितीय असंभवता उत्पन्न करना आसान है।
  • यह एज केस mt2 botpose को शून्य नहीं करता था - यह कैमरा पोज़ को शून्य करता था।
  • जब भी यह एज केस पता चलता है, रोबोट को अब (0,0,0) पर रखा जाता है

स्टैटिक IP एड्रेसिंग

https://github.com/LimelightVision/limelight-feedback/issues/25

  • IP एड्रेस सेटर में एक चेतावनी जोड़ी गई यदि एड्रेस .1-.10 या .20-.255 पर समाप्त होता है क्योंकि ये एड्रेस FMS या अन्य डिवाइस में हस्तक्षेप कर सकते हैं
  • 2024.10.1 में, UI कभी-कभी सुझाव देता था कि एक स्टैटिक IP कॉन्फ़िगर किया गया था जबकि एड्रेसिंग स्कीम "automatic" पर सेट थी

STDDevs NetworkTables

https://github.com/LimelightVision/limelight-feedback/issues/24

  • networktables में "stddevs" में mt1 और mt2 के लिए सभी stddevs शामिल हैं (double array, 12 एलिमेंट)

Model Upload एज केस

  • यदि एक classifier model को detector pipeline पर अपलोड किया जाता है, तो इमेज पर "check model" प्रदर्शित होगा
  • यदि एक detector model को classifier pipeline पर अपलोड किया जाता है, तो इमेज पर "check model" प्रदर्शित होगा

Limelight OS 2024.10.1 (9/15/24)

Limelight 3A अपडेट

  • डिफ़ॉल्ट कलर बैलेंस वैल्यू अपडेट की गईं
  • डिफ़ॉल्ट AprilTag साइज कॉन्फ़िगरेशन 101.6 mm पर अपडेट किया गया
  • डिफ़ॉल्ट वीडियो स्ट्रीम फ्रेमरेट 30FPS तक कम किया गया
  • स्ट्रीम बिटरेट कम करने के लिए वीडियो स्ट्रीम कम्प्रेशन थोड़ा बढ़ाया गया

AprilTag साइज चेतावनी

  • फील्ड स्पेस विज़ुअलाइज़र में एक चेतावनी जोड़ी गई यदि कॉन्फ़िगर किया गया AprilTag साइज अपलोड किए गए फील्ड मैप में साइज से मेल नहीं खाता।
उदाहरण बैनर

CameraPose_RobotSpace बगफिक्स

  • NetworkTables/LimelightLib/REST से UI के कॉन्फ़िगर किए गए Camera Pose को ओवरराइड करना फिर से ठीक से काम करता है।

Limelight OS 2024.10 (9/4/24)

FTC के लिए Limelight 3A सपोर्ट

  • Limelight3A पूरी तरह से समर्थित है
  • 3A FTC और FRC दोनों में उपयोग योग्य है

AprilTag मैप अपडेट

  • मैप एडिटर अब स्टैंडर्ड और डायमंड FTC मैप जनरेशन को सपोर्ट करता है
  • LLOS वेब इंटरफ़ेस अपलोड किए गए मैप के आधार पर स्वचालित रूप से सही फील्ड टाइप प्रदर्शित करेगा
  • टूल्स और इंटरफेस में सभी फील्ड विज़ुअलाइज़र अलायंस ज़ोन और ftc टाइल ग्रिड दिखाते हैं।
  • 3D विज़ुअलाइज़र परफॉर्मेंस में सुधार किया गया है।

ControlHub और RoboRio पर USB Limelight सपोर्ट।

  • FTC टीमें Control Hub पर एक सिंगल USB-सक्षम Limelight का उपयोग कर सकती हैं
  • FRC टीमें RoboRio पर 16 USB-सक्षम Limelights तक का उपयोग कर सकती हैं। USB limelights ईथरनेट limelights की तरह ही networktables को ऑटो-पॉपुलेट करते हैं।
    • मल्टीपल USB Limelights का उपयोग करने के लिए, प्रत्येक LL को एक यूनिक USB इंडेक्स और एक यूनिक hostname दें।

USB कनेक्टिविटी अपग्रेड

  • MacOS अब इंटरनेट एक्सेस के लिए USB Ethernet Limelight इंटरफ़ेस का उपयोग नहीं करता
  • Windows अब इंटरनेट एक्सेस के लिए USB Ethernet Limelight इंटरफ़ेस का उपयोग करने का प्रयास नहीं करता

REST API अपडेट

  • update-robotorientation POST रिक्वेस्ट ठीक की गई।
  • MT2 अब NetworkTables के बिना पूरी तरह से एक्सेसिबल है।
  • एक बार update-robotorientation रूट का उपयोग करने के बाद, रीबूट तक NetworkTables ओरिएंटेशन अपडेट डिसेबल हो जाते हैं।

Limelight OS 2024.9.1 (7/7/24)

  • Map Builder Tool अब WPILib .json apriltag layouts को स्वीकार/कन्वर्ट करता है
  • Python Snapscripts में AprilTag3 जोड़ा गया (from apriltag import apriltag)
  • examples github repo में उदाहरण देखें
  • Windows पर USB कनेक्टिविटी गेटवे समस्या ठीक की गई।

mosaic screenshot:

Limelight OS 2024.9 (7/5/24)

MegaTag अपग्रेड

  • Limelight OS NetworkTables 4.0 में ट्रांज़िशन हो गया है

  • MegaTag2 अब roboRIO से टाइमस्टैम्प्ड IMU अपडेट प्राप्त करने के लिए NT4 के getAtomic() का उपयोग करता है।

  • इंटरपोलेशन करने से पहले हमारे टाइमस्टैम्प्ड इमेज फ्रेम दो सबसे प्रासंगिक IMU सैंपल से मैच किए जाते हैं।

  • LimelightLib में NT4 flush() जोड़ा गया है। Limelight OS के पुराने वर्शन में Flush() जोड़ने से आप 2024.9 परफॉर्मेंस के काफी करीब पहुंच जाएंगे, लेकिन NT4 सुनिश्चित करता है कि सटीकता हमेशा उच्च हो।

  • MT2 विज़ुअलाइज़र रोबोट में अब हरे बम्पर हैं, और MT1 का विज़ुअलाइज़र रोबोट पीले बम्पर का उपयोग करता है।

  • मेट्रिक्स अब कोलैप्सिबल हैं, और वर्चुअल रोबोट छिपाए जा सकते हैं।

  • निम्नलिखित वीडियो दिखाता है कि कैसे robot-side flush() के साथ 2024.9 का MegaTag 2 (हरा रोबोट) Flush() के बिना 2024.5 के MegaTag2 (लाल रोबोट) से अधिक मजबूत है

USB ID और नए USB IP एड्रेस

  • किसी भी सिस्टम पर मल्टीपल USB Limelights का उपयोग करने के लिए सेटिंग्स पेज में "USB ID" सेट करें।
  • आपके सिस्टम पर दिखाई देने वाला USB-Ethernet इंटरफ़ेस USB ID द्वारा निर्धारित IP एड्रेस का उपयोग करेगा
  • Linux/Android/Mac सिस्टम अब डिफ़ॉल्ट रूप से 172.29.0.0/24 सबनेट का उपयोग करेंगे
  • Windows सिस्टम अब डिफ़ॉल्ट रूप से 172.28.0.0/24 सबनेट का उपयोग करेंगे।
  • यदि USBID सेट है, तो Linux/Android/Mac के लिए सबनेट 172.29.(USBID).0/24 और Windows के लिए 172.28.(USBID).0/24 में बदल जाता है।
  • अब आप, उदाहरण के लिए, उनके hostnames और USB IDs को एडजस्ट करके एक सिंगल USB Hub से चार Limelight डिवाइस अटैच कर सकते हैं

CPU Neural classifiers

  • Google Coral के बिना neural classification सक्षम करने के लिए CPU .tflite classifier अपलोड करें। आप LL3 वेरिएंट पर 15-18 FPS की उम्मीद कर सकते हैं।
  • 2024.9 एक डिफ़ॉल्ट CPU classifier के साथ आता है।
  • इस फीचर को सक्षम करने के लिए classifier runtime को "CPU" पर सेट करें

CPU Neural detectors

  • Google Coral के बिना neural detection सक्षम करने के लिए CPU .tflite detector अपलोड करें। आप LL3 वेरिएंट पर 10 FPS की उम्मीद कर सकते हैं।
  • 2024.9 एक डिफ़ॉल्ट CPU detector के साथ आता है।
  • इस फीचर को सक्षम करने के लिए detector runtime को "CPU" पर सेट करें

Limelight OS 2024.8 (7/3/24)

  • json results object में python output (PythonOut), tx, ty, txnc, tync, ta जोड़ा गया
  • MT2 लेटेंसी कम्पेंसेशन में और सुधार किया गया

Limelight OS 2024.7 (5/21/24)

  • Linux 6.6 में अपग्रेड किया गया

बगफिक्स

  • vision pipeline conversion ठीक किया गया
  • calibration uploads, snapshot uploads, और nn uploads ठीक किए गए

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

  • pip install limelightlib-python
  • हमारी Python लाइब्रेरी आपको किसी भी प्लेटफॉर्म पर USB और Ethernet Limelights के साथ इंटरैक्ट करने की अनुमति देती है।
  • यह वेब UI इंटरैक्शन के बिना पूर्ण Limelight कॉन्फ़िगरेशन की अनुमति देती है।
  • पाइपलाइन, neural networks, field maps, आदि अपलोड करें
  • वैकल्पिक "flush to disk" विकल्प के साथ किसी भी pipeline parameter में रियलटाइम बदलाव करें
  • कस्टम python input data पोस्ट करें, robot orientation सेट करें, आदि।

MegaTag2 अपग्रेड

  • MegaTag2 Gyro लेटेंसी कम्पेंसेशन में सुधार किया गया है। जल्द ही और सुधारों की तलाश करें!
  • UI में "Gyro latency adjustment" स्लाइडर जोड़ा गया। MegaTag 2 लेटेंसी कम्पेंसेशन को मैन्युअली ट्यून करने के लिए, आप अपने रोबोट को स्पिन कर सकते हैं और स्लाइडर को तब तक एडजस्ट कर सकते हैं जब तक रोटेट करते समय लोकलाइज़ेशन रिजल्ट परफेक्ट न हों।

Standard Deviation मेट्रिक्स

  • 3D Field विज़ुअलाइज़र में अब x, y, और yaw के लिए MegaTag1 और Megatag2 standard deviations शामिल हैं।

नया "Focus" Pipeline टाइप

  • "focus" मोड में रहते हुए, आपके पास stream quality स्लाइडर और crop box स्लाइडर तक पहुंच होगी
  • "focus" स्कोर को अधिकतम करने के लिए लेंस को स्पिन करें।
  • यदि आपका कैमरा एक निश्चित स्थान पर है, तो इसमें एक मिनट से भी कम समय लगता है। हम एक निश्चित / माउंटेड Limelight के साथ फोकस करने की सलाह देते हैं।

नया "Barcodes" Pipeline टाइप

  • 1280x800 पर 50-60FPS मल्टी QR Code डिटेक्शन और डिकोडिंग
  • 1280x800 पर 50-60FPS मल्टी DataMatrix डिटेक्शन और डिकोडिंग
  • 1280x800 पर 30FPS मल्टी UPC, EAN, Code128, और PDF417
  • Barcode data strings "rawbarcodes" nt array में पोस्ट की जाती हैं।
  • Barcodes pipeline सभी 2D मेट्रिक्स जैसे tx, ty, ta, tcornxy, आदि को पॉपुलेट करेगी।

बिल्कुल नया REST API

  • https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
  • हमारा REST / HTTP API शुरू से फिर से बनाया गया है।
  • REST API वेब UI इंटरैक्शन के बिना पूर्ण Limelight कॉन्फ़िगरेशन की अनुमति देता है।
  • पाइपलाइन, neural networks, field maps, आदि अपलोड करें
  • वैकल्पिक "flush to disk" विकल्प के साथ किसी भी pipeline parameter में रियलटाइम बदलाव करें
  • python input data पोस्ट करें, robot orientation सेट करें, आदि।

UI से Camera Orientation सेटिंग हटाई गई (ब्रेकिंग चेंज)

  • इसे "stream orientation" विकल्प से बदल दिया गया है। कैलिब्रेशन और टारगेटिंग इस विकल्प से कभी प्रभावित नहीं होते।
  • नया विकल्प केवल स्ट्रीम को प्रभावित करता है। Upside-down, 90 Degree Clockwise, 90 Degree Counter-Clockwise, Horizontal Mirror, और Vertical Mirror
  • टीमों को अब रोटेटेड कैमरों का उपयोग करते समय आवश्यकतानुसार tx और ty को मैन्युअली इनवर्ट करना होगा।

GRIP सपोर्ट हटाया गया (ब्रेकिंग चेंज)

"Driver" ज़ीरो-प्रोसेसिंग मोड हटाया गया (ब्रेकिंग चेंज)

  • इसे "Viewfinder" pipeline टाइप से बदल दिया गया है

"Viewfinder" Pipeline टाइप जोड़ा गया

  • viewfinder pipeline न्यूनतम लेटेंसी के लिए सभी प्रोसेसिंग को डिसेबल करती है
  • यह टीमों को view-only मोड के लिए अपनी खुद की "Driver" पाइपलाइन डिज़ाइन करने की अनुमति देता है

Pipeline फ़ाइलें अब JSON फॉर्मेट का उपयोग करती हैं (ब्रेकिंग चेंज)

  • Pipelines अभी भी .vpr फ़ाइल एक्सटेंशन का उपयोग करती हैं
  • (कुछ मामलों में 2024.6 में टूटा हुआ) जब आप "upload" बटन का उपयोग करते हैं तो UI पाइपलाइनों को JSON में ऑटो-कन्वर्ट करेगा।
  • (पूरी तरह से कार्यात्मक) आप अपनी पाइपलाइनों को अपग्रेड करने के लिए https://tools.limelightvision.io/pipeline-upgrade का भी उपयोग कर सकते हैं

Calibration UX सुधार

  • Calibration सेटिंग्स अब कैश की जाती हैं। अब आपको हर बार कैलिब्रेट करते समय अपनी calibration सेटिंग्स दर्ज करने की आवश्यकता नहीं है।
  • डिफ़ॉल्ट calibration dictionary को Calib.io से अनुशंसित 800x600mm coarse board के साथ काम करने के लिए अपडेट किया गया है।

Calibration Mosaic

  • पहले, calibration images की गुणवत्ता निर्धारित करना कठिन था
  • calibration tab में अब "Download Calibration Mosaic" बटन है। mosaic आपको दिखाएगा कि प्रत्येक इमेज आपके calibration में क्या योगदान दे रही है।

mosaic screenshot:

"Centroid" टारगेटिंग रीजन

  • color pipelines के साथ object tracking में सुधार के लिए "Output" tab में Centroid targeting mode जोड़ा गया है

Dynamic 3D Offset (NT: fiducial_offset_set)

  • अब पाइपलाइन बदले बिना 3D Offset को एडजस्ट करना संभव है। यह उन स्थितियों के लिए उपयोगी है जिनमें आपके "aim point" को दूरी या अन्य गुणों के आधार पर बदलने की आवश्यकता होती है।

Modbus सपोर्ट जोड़ा गया

  • Limelight OS में अब inspection, logistics, और industrial applications के लिए एक always-on modbus server है
  • modbus register spec यहां देखें: https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
  • डिफ़ॉल्ट modbus server port UI के settings tab में बदला जा सकता है
  • modbus और snapscript python pipelines के माध्यम से, bi-directional communication के साथ पूरी तरह से कस्टम vision applications अब समर्थित हैं।

Custom NT server

  • settings tab में अब custom NT server के लिए एक एंट्री है।
  • यह एक नए वर्कफ़्लो को सक्षम करता है जिसमें PC पर चलने वाला glass NT server और USB पर कम्युनिकेट करने वाला Limelight 3G शामिल है।

Rawfiducial बदलाव

  • raw fiducials की "area" वैल्यू अब एक calibrated, normalized वैल्यू है जो ~0-1 तक होती है

सभी NetworkTables और JSON बदलाव

  • NT getpipetype जोड़ा गया - वर्तमान pipeline type string प्राप्त करें (जैसे pipe_color, pipe_fiducial)

  • NT tcclass जोड़ा गया - Classifier pipeline detected class name

  • NT tdclass जोड़ा गया - Detector pipeline detected class name

  • गारंटीड atomic 2d targeting के लिए NT t2d जोड़ा गया - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]

  • NT tlong, tshort, thor, tvert, और ts हटाए गए

  • NT 'crosshairs' array जोड़ा गया [cx0,cy0,cx1,cy1]

  • NT cx0, cy0, cx1, और cy1 हटाए गए

  • NT rawbarcodes जोड़ा गया - barcode data की NT String Array। 32 entries तक।

  • सभी "raw" arrays अब 32 targets तक की अनुमति देते हैं (8 से बढ़ाकर)

  • fiducial_offset_set dynamic 3d Offset setter जोड़ा गया

  • json top-level result में "pType" जोड़ा गया

  • json top-level result में "stdev_mt1" और "stdev_mt2" जोड़ा गया (x,y,z,roll,pitch,yaw) (meters, degrees)

अन्य फ़ाइल फॉर्मेट और JSON Dumps में बदलाव

  • calibration file format को सरल बनाया गया है। पुराने calibrations अपलोड करने पर नए फॉर्मेट में ऑटो-कन्वर्ट हो जाते हैं
  • Results और Status JSON dumps से nesting की एक लेयर हटाई गई है

बगफिक्स

  • पहले, यदि Neural pipeline एक्टिव होने पर Google Coral अनप्लग किया जाता था, तो pipeline स्थायी रूप से "color/retro" मोड में रिवर्ट हो जाती थी
    • अब, इमेज पर "CHECK CORAL" या "CHECK MODEL" प्रिंट होगा। pipeline type कभी नहीं बदलेगा
  • पहले, fiducial ID filter से सफलतापूर्वक पास होने वाले tags कभी-कभी हरे outline के बजाय लाल outline के साथ ड्रॉ होते थे। यह visualization समस्या ठीक कर दी गई है।
  • Apriltag pipelines tcornxy NT array को पॉपुलेट करती हैं
  • Apriltag pipelines अब min-max area slider का पूरी तरह से सम्मान करती हैं। पहले, AprilTag pipelines Tag Area के आधार पर 2D results को फ़िल्टर करती थीं, लेकिन 3D / Localization Results को नहीं।

Limelight OS 2024.5.0 (4/9/24)

  • Linux 6.1 में अपग्रेड

कैमरा स्टैक अपडेट

  • Limelight3G पर कैमरा पेरिफेरल लॉक-अप को ठीक करने के लिए पूरे कैमरा स्टैक को अपडेट किया गया है।
    • लक्षणों में शामिल हैं
  • इस अपडेट को लागू करने के बाद एक्सपोज़र और गेन सेटिंग्स को फिर से ट्यून करना सुनिश्चित करें।

डायनामिक डाउनस्केलिंग

  • टीमें अब वर्तमान पाइपलाइन की डाउनस्केल सेटिंग को ओवरराइड करने के लिए "fiducial_downscale_set" सेट कर सकती हैं
  • 0:UI कंट्रोल, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
  • 0.0 (UI कंट्रोल), 1.0, 1.5, 2.0, 3.0, 4.0 के साथ नए Helpers मेथड का उपयोग करें
  • यह एक जीरो-ओवरहेड ऑपरेशन है।
  • डायनामिक डाउनस्केल और डायनामिक क्रॉप को मिलाकर, टीमें कई पाइपलाइनों को मैनेज किए बिना FPS को अधिकतम कर सकती हैं

MegaTag2 सुधार

  • MT2 अब किसी भी Limelight ओरिएंटेशन में काम करता है, जिसमें 90 डिग्री और -90 डिग्री रोल वाले "पोर्ट्रेट" मोड शामिल हैं

"rawdetections" nt array

  • [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
  • कॉर्नर कैलिब्रेशन लागू किए बिना पिक्सेल-स्पेस में हैं

Erode/Dilate अपडेट

  • कलर पाइपलाइनें अब 10 स्टेप्स तक dilation और 10 स्टेप्स तक erosion को सपोर्ट करती हैं
  • कलर पाइपलाइनों में अब dilation और erosion स्टेप्स के क्रम को उलटने के लिए "reverse morpho" विकल्प है

LimelightLib 1.6 (4/9/24)

  • void SetFiducialDownscalingOverride(float downscale) जोड़ा गया

पाइपलाइन कंट्रोल के लिए 0 सेट करें, या अपनी पाइपलाइन की डाउनस्केल सेटिंग को ओवरराइड करने के लिए निम्नलिखित में से एक: 1, 1.5, 2, 3, 4

  • RawFiducial[] GetRawFiducials() जोड़ा गया
  • RawDetection[] GetRawDetections() जोड़ा गया

Limelight OS 2024.4.0 (4/3/24)

इस अपडेट के लिए विचार देने वाली सभी टीमों का धन्यवाद।

Megatag 2

Megatag 2 एक ambiguity-free localizer है। इसमें Megatag1 की तुलना में उच्च सटीकता और उच्च precision है, और इसे निम्नलिखित आवश्यकताओं के साथ बनाया गया था:

  • pose ambiguity समस्या को समाप्त करें और image/corner noise के खिलाफ robustness बढ़ाएं।
  • एक या अधिक टैग दिए जाने पर, किसी भी perspective से उत्कृष्ट pose estimates प्रदान करें।
  • भौतिक AprilTag प्लेसमेंट अशुद्धियों के खिलाफ robustness बढ़ाएं
  • अच्छे pose estimation परिणामों के लिए आवश्यक robot-side filtering की मात्रा कम करें

इस अत्यधिक ambiguous single-tag केस में MegaTag2 (लाल रोबोट) और Megatag (नीला रोबोट) के बीच अंतर देखें:

Megatag2 के लिए आपको एक नए method call के साथ अपने रोबोट की heading सेट करनी होगी। यहाँ एक पूर्ण उदाहरण है:

      LimelightHelpers.SetRobotOrientation("limelight", m_poseEstimator.getEstimatedPosition().getRotation().getDegrees(), 0, 0, 0, 0, 0);
LimelightHelpers.PoseEstimate mt2 = LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
if(Math.abs(m_gyro.getRate()) > 720) // यदि हमारी angular velocity 720 डिग्री प्रति सेकंड से अधिक है, तो vision updates को अनदेखा करें
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.6,.6,9999999));
m_poseEstimator.addVisionMeasurement(
mt2.pose,
mt2.timestampSeconds);
}

Megatag2 एक single tag दिए जाने पर किसी भी दूरी पर उत्कृष्ट, ambiguity-free परिणाम प्रदान करता है। इसका मतलब है कि केवल उन टैग्स पर ध्यान केंद्रित करना पूरी तरह से व्यवहार्य है जो प्रासंगिक हैं और आपकी वांछित प्लेसमेंट टॉलरेंस के भीतर हैं। यदि कोई टैग सही स्थान पर नहीं है या अप्रासंगिक है, तो इसे नई dynamic filter सुविधा के साथ फ़िल्टर करें।

Dynamic Apriltag Filtering

  • क्योंकि MegaTag2 को जितने संभव हो उतने AprilTags जमा करने की जरूरत नहीं है, आप सुरक्षित रूप से अच्छी तरह से रखे गए और प्रासंगिक टैग्स के लिए फ़िल्टर कर सकते हैं:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

MegaTag2 में ट्रांज़िशन

Megatag2 को ठीक से काम करने के लिए आपके रोबोट की heading की आवश्यकता है। 0 डिग्री, 360 डिग्री, 720 डिग्री, आदि की heading का मतलब है कि आपका रोबोट red alliance wall की ओर मुख किए हुए है। यह वही convention है जो PathPlanner, Chorero, Botpose, और Botpose_wpiblue में उपयोग किया जाता है।

एक बार जब आपने अपने कोड में SetRobotOrientation() जोड़ दिया, तो built-in 3D visualizer की जाँच करें। करीब की दूरी पर, Megatag2 और Megatag1 को बिल्कुल नहीं तो करीब से मेल खाना चाहिए। लंबी दूरी पर, Megatag 2 (लाल रोबोट) Megatag1 (नीला रोबोट) की तुलना में अधिक सटीक और अधिक स्थिर होना चाहिए।

एक बार जब built-in visualizer अच्छे परिणाम दिखा रहा है, तो आप autonomous period के दौरान अपने रोबोट को गाइड करने के लिए सुरक्षित रूप से Megatag2 का उपयोग कर सकते हैं।

हम केवल एक "max angular velocity" फ़िल्टर जोड़ने की सलाह देते हैं। आप पा सकते हैं कि उच्च angular velocities पर, आपके pose estimates थोड़े कम भरोसेमंद हो जाते हैं।

examples repo में इस फ़िल्टर के साथ एक Megatag2 उदाहरण है।

    if(Math.abs(m_gyro.getRate()) > 720) // यदि हमारी angular velocity 720 डिग्री प्रति सेकंड से अधिक है, तो vision updates को अनदेखा करें
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (4/3/24)

जोड़ा गया

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (3/20/24)

इस अपडेट के लिए विचार देने वाली सभी टीमों का धन्यवाद।

उच्च-Precision Single Tag Solver

MegaTag के single tag 3D solver में सुधार किया गया है। यह लंबी दूरी पर पहले की तुलना में कहीं अधिक स्थिर है।

JSON डिफ़ॉल्ट रूप से अक्षम (Breaking Change)

  • Shuffleboard जैसे auto-subscribing dashboards का उपयोग करने वाली टीमों के लिए bandwidth उपयोग को कम करने के लिए JSON को डिफ़ॉल्ट रूप से अक्षम कर दिया गया है।
  • इससे RoboRIO NT लोड और CPU उपयोग भी कम होना चाहिए।
  • output tab में प्रति-पाइपलाइन json को फिर से सक्षम करें।
  • इस अपडेट में ऐसे बदलाव शामिल हैं जो और भी अधिक टीमों को pose estimation के लिए JSON से दूर जाने की अनुमति देनी चाहिए।

Undistorted Area (Breaking Change)

किसी भी target के area की गणना करने से पहले corners को undistort किया जाता है।

botpose, botpose_wpiblue, और botpose_wpired में Per-Fiducial Metrics शामिल करें

[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (meters), averageDistance (meters), averageArea (percentage of image), (tags) ]

megatag localization द्वारा उपयोग किए गए प्रत्येक tag के लिए, उपरोक्त arrays में अब (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity) शामिल है

Ambiguity 0-1 की रेंज में एक नया metric है जो tag के वर्तमान perspective की ambiguity को इंगित करता है। .9 से अधिक tag ambiguities वाले Single-tag-updates को शायद reject किया जाना चाहिए।

"rawtargets" और "rawfiducials" nt arrays (Breaking Change)

  • rawtargets - प्रति target (txnc,tync,ta)
  • rawfiducials - प्रति target (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)
  • पिछली rawtargets NT entries (tx0,ty0, आदि) को हटा दिया गया है।

Bugfixes

  • यदि priorityID नहीं मिला है तो सभी single-tag 3D जानकारी को शून्य करें। पहले, जब priorityTag नहीं मिला था तो केवल Tx, Ta, Ty, और Tv को शून्य किया जाता था
  • यदि केवल दृश्यमान tag को UI की "ID Filters" सुविधाओं द्वारा फ़िल्टर किया गया है तो botpose को शून्य करें। पहले, यदि केवल दृश्यमान tag एक फ़िल्टर किया गया tag था तो botposes (0,0,0) के बजाय field के केंद्र में रीसेट हो जाते थे;
  • 2024.2 कुछ दुर्लभ instances में कुछ networktables entries में NANs पोस्ट करता था। यह अब नहीं होगा।

LimelightLib 1.4 (3/21/24)

  • 2024.3.4 Raw Fiducials के लिए support जोड़ा गया। PoseEstimates में अब rawFiducials का एक array शामिल है जिसमें id, txnc, tync, ta, distanceToCamera, distanceToRobot, और ambiguity शामिल हैं

Limelight Hardware Manager 1.4 (3/18/24)

Bugfix

खोजे गए USB Limelights को दो आंशिक entries के बजाय एक single entry के रूप में ठीक से प्रदर्शित किया जाता है।


Limelight OS 2024.2.2 (3/17/24)

Bugfix

TX और TY NT entries में crosshair का ठीक से सम्मान करते हैं।


Limelight OS 2024.2 (3/8/24)

Json (tx_nocross, ty_nocross) और NT (txnc, tync) के साथ Zero-Crosshair targeting

यदि आप custom intrinsics calibration के साथ tx/ty targeting का उपयोग कर रहे हैं, तो आप संभवतः अभी भी camera-to-camera variation देख रहे हैं क्योंकि Limelight crosshair कैमरे के principal pixel के साथ aligned नहीं है। जिन टीमों को अधिक tx/ty accuracy की आवश्यकता है, वे या तो crosshair को principal pixel से मिलान करने के लिए configure कर सकती हैं, या इन नए metrics का उपयोग कर सकती हैं।

tx/ty में संभावित breaking change

इस सीज़न में पहले एक bug पेश किया गया था जिसने विशेष रूप से json में tx, ty, और tx + ty के लिए custom calibration को तोड़ दिया। Limelight OS कई मामलों में default calibrations पर वापस आ रहा था।

Calibration Upgrades

Calibration अब लगभग तात्कालिक है, चाहे कितनी भी images capture की गई हों। हमने कुछ परिस्थितियों में लगभग 30 से अधिक images होने के कारण होने वाले crash को भी ठीक किया है।

हम paper targets की 15-20 images के साथ लगभग 1 pixel का reprojection error और हमारे high-quality calib.io targets के साथ .3 pixels का error लगातार प्राप्त कर रहे हैं।

Fiducial Filters UI Fix

Fiducial filter textbox अब किसी भी संख्या में filters स्वीकार करता है।

Misc

Apriltag Generator 165.1 mm tags के साथ scaling को रोकने के लिए "no border" पर डिफ़ॉल्ट करता है।


Limelight OS 2024.1.1 (2/24/24)

  • priorityID को ठीक किया गया

Limelight OS 2024.1 (2/24/24)

HW Metrics (networktables में hw key, /status GET request)

Calibration Improvement

  • उस crash को ठीक किया गया जो तब हो सकता था जब एक calibration image में बिल्कुल एक valid detection हो। web ui feedback में सुधार।

Robot Localization Improvement (tag count और अधिक)

  • सभी networktables botpose arrays (botpose, botpose_wpiblue, और botpose_wpired) में अब Tag Count, Tag Span (meters), Average Distance (meters), और Average Area (percentage of image) शामिल हैं

  • ये metrics उन tags के साथ compute किए जाते हैं जो uploaded field map में शामिल हैं। Custom और/या mobile AprilTags इन metrics को प्रभावित नहीं करेंगे।

  • device calibration और इस botpose array upgrade के साथ, हमें विश्वास नहीं है कि इस वर्ष अधिकांश use-cases के लिए JSON आवश्यक है।

  • JSON dump में अब सुविधा के लिए botpose_avgarea, botpose_avgdist, botpose_span, और botpose_tagcount शामिल हैं।

[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]

नई सुविधा: Priority ID (NT Key priorityid)

  • यदि आपका रोबोट odometry-based features और tx/ty-based features दोनों का उपयोग करता है, तो आपने शायद निम्नलिखित UX समस्या का सामना किया है:

  • इस अपडेट से पहले, tx/ty targeting के लिए preferred tag ID को आसानी से switch करने का कोई तरीका नहीं था।

  • जबकि UI में एक ID filter है, यह

    • dynamic नहीं है
    • megaTag localization से tags को हटाता है।
  • इसका मतलब था कि टीमें कई pipelines बना रही थीं: एक 3D localization के लिए, और एक प्रति tx/ty tag (blue-side shooting के लिए tag 7 के साथ एक pipeline, blue-side amping के लिए tag 6 के साथ एक, आदि)।

  • नई priority ID सुविधा (NT Key priorityid) आपको अपने Limelight को बताने की अनुमति देती है "सभी tag detection, filtering, और sorting पूर्ण होने के बाद, उस tag पर ध्यान केंद्रित करें जो priority ID से मेल खाता है।"

  • यह किसी भी तरह से localization को प्रभावित नहीं करता है, और यह केवल JSON results में tags के क्रम को थोड़ा बदलता है।

  • यदि आपकी priority id -1 नहीं है, तो tx/ty/ta 0 return करेगा जब तक कि चुना गया tag दृश्यमान न हो।

Misc

  • 3D apriltag pipeline में dual-target mode का उपयोग करते समय स्क्रीन पर "x" को ठीक किया गया
  • REST API को neural network label uploads (/uploadlabels) के साथ विस्तारित किया गया
  • /status json में device nickname शामिल करें

LimelightLib 1.3

  • LimelightLib (Java और CPP) को localization को पहले से कहीं अधिक आसान बनाने के लिए अपडेट किया गया है।
  LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if(limelightMeasurement.tagCount >= 2)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.7,.7,9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds);
}


टीमों के लिए नए संसाधन

Limelight Feedback और Issue Tracker: https://github.com/LimelightVision/limelight-feedback/issues

Examples Repo: https://github.com/LimelightVision/limelight-examples

Swerve के साथ Aiming और Ranging Example: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging

MegaTag Localization Example: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation

हाल के contributors jasondaming, Gold876, JosephTLockwood, Andrew Gasser, और virtuald को धन्यवाद


Limelight 2024 Updates (2/6/24)

Limelight Documentation Upgrade

  • documentation को setup process को streamline करने के लिए फिर से लिखा गया है

Limelight AprilTag Generator

  • https://tools.limelightvision.io/ में अब पहला-ever online AprilTag generator है।
  • एक printable PDF generate करने के लिए अपना paper size, marker size, और tag IDs चुनें।
  • Safari इस समय tags को ठीक से display नहीं कर सकता है।

Limelight Map Builder

  • https://tools.limelightvision.io/map-builder
  • अब आप एक intuitive UI के साथ custom AprilTag maps बना सकते हैं।
  • default family और tag size को 2024 field से मिलान करने के लिए अपडेट किया गया है।

नया Hardware Manager

  • Finder Tool अब Limelight Hardware Manager है
  • इसे scratch से फिर से लिखा गया है। यह अब reliably Limelights का पता लगाता है, अधिक उपयोगी diagnostic जानकारी प्रदान करता है, और ठीक से काम करने के लिए restarts की आवश्यकता नहीं है।
  • इसे अभी downloads page से प्राप्त करें notebook screenshot:

अपने खुद के Neural Networks Train करें

  • आप RoboFlow, Limelight Detector Training Notebook, और हमारे नए tutorial के साथ मुफ्त में अपने खुद के detection models train कर सकते हैं

notebook screenshot:

2024 AprilTag Map और Note Detector

  • map और detector model को downloads page और latest Limelight OS image में जोड़ा गया है।

Limelight OS 2024.0 (2/6/24)

ChArUco Calibration Fixes

  • हमारे ChArUco detector की subpixel accuracy बढ़ाई गई है। clipboard targets और 20 images के साथ 1-2 pixels का reprojection error अब प्राप्त करने योग्य है।
  • एक ही camera और एक ही target का उपयोग करते हुए, 2023.6 ने 20 pixels का RPE प्राप्त किया, और 2024.0 ने 1.14 pixels का RPE प्राप्त किया।
  • Input fields अब letters और special characters स्वीकार नहीं करते हैं। यह crash की संभावना को समाप्त करता है।

Out-Of-The-Box Megatag Accuracy Improvement

  • इस अपडेट से पहले, Limelight का internal Megatag map generator .fmap file द्वारा प्रदान किए गए tag sizes के बजाय UI के tag size slider को reference करता था।
  • Megatag अब fmap files में configured tag sizes का सम्मान करता है और size slider को अनदेखा करता है।
  • यदि आपका size slider 165.1 mm पर सेट नहीं किया गया है, तो आप localization accuracy में तत्काल सुधार देखेंगे

Performance Upgrades और Bugfixes

  • उच्च FPS AprilTag pipelines
  • Field-Space Visualizer के performance में काफी सुधार किया गया है।

Bugfixes

  • 3D visualizers में Apriltags कभी-कभी गलत या corrupted tag images के साथ draw किए जाते थे। Tags अब हमेशा सही ढंग से display होते हैं।
  • "v" / tv / "valid" अब केवल "1" return करेगा यदि valid detections हैं। पहले, tv हमेशा "1" था