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

JSON परिणाम विनिर्देश

Limelight का JSON परिणाम आउटपुट लक्ष्यीकरण परिणामों वाले संग्रहों का एक समूह है। रेट्रोरिफ्लेक्टिव, फिड्यूशियल, न्यूरल क्लासिफायर और न्यूरल डिटेक्टर परिणामों के लिए अलग-अलग संग्रह मौजूद हैं। JSON मानव-पठनीय है और किसी भी भाषा में किसी भी प्लेटफॉर्म पर पार्स करना आसान है, इसलिए यह अधिकांश उपयोग-मामलों के लिए एकदम सही है।

समान JSON परिणाम आउटपुट REST/HTTP, Websocket और NetworkTables API का उपयोग करके प्राप्त किया जा सकता है।

हमारे FRC लाइब्रेरीज के साथ इस JSON आउटपुट को पार्स करना अत्यंत आसान है।

Limelightlib में JSON डंप को LimelightResults ऑब्जेक्ट में पार्स करने की अंतर्निहित कार्यक्षमता है।

https://github.com/LimelightVision/limelightlib-wpijava

https://github.com/LimelightVision/limelightlib-wpicpp

प्रत्येक JSON परिणाम में निम्नलिखित प्रविष्टियाँ होती हैं:

कुंजी नाममान विवरण
tlलक्ष्यीकरण विलंबता (इस फ्रेम में ट्रैकिंग लूप द्वारा खपत किए गए मिलीसेकंड)
clकैप्चर विलंबता (मध्य पंक्ति के एक्सपोजर के अंत से ट्रैकिंग लूप की शुरुआत तक के मिलीसेकंड)
txक्रॉसहेयर से लक्ष्य तक क्षैतिज ऑफसेट (LL1: -27 डिग्री से 27 डिग्री / LL2: -29.8 से 29.8 डिग्री)
tyक्रॉसहेयर से लक्ष्य तक ऊर्ध्वाधर ऑफसेट (LL1: -20.5 डिग्री से 20.5 डिग्री / LL2: -24.85 से 24.85 डिग्री)
txncप्रिंसिपल पिक्सेल से लक्ष्य तक क्षैतिज ऑफसेट (डिग्री)
tyncप्रिंसिपल पिक्सेल से लक्ष्य तक ऊर्ध्वाधर ऑफसेट (डिग्री)
taलक्ष्य का अविकृत, सामान्यीकृत क्षेत्रफल (0-100)
PythonOutपायथन SnapScript पाइपलाइन से आउटपुट डेटा
stdev_mt1MT1 मानक विचलन [x, y, z, रोल, पिच, यॉ] (मीटर, डिग्री)
stdev_mt2MT2 मानक विचलन [x, y, z, रोल, पिच, यॉ] (मीटर, डिग्री)
pIDवर्तमान पाइपलाइन इंडेक्स
pTYPEवर्तमान पाइपलाइन प्रकार जैसे "pipe_color"
tsबूट से मिलीसेकंड में टाइमस्टैम्प
vवैधता संकेतक। 1 = वैध लक्ष्य, 0 = कोई वैध लक्ष्य नहीं
botposeबॉटपोज़ (मेगाटैग): x,y,z, रोल, पिच, यॉ (मीटर, डिग्री)
botpose_wpiredबॉटपोज़ (मेगाटैग, WPI रेड ड्राइवरस्टेशन): x,y,z, रोल, पिच, यॉ (मीटर, डिग्री)
botpose_wpiblueबॉटपोज़ (मेगाटैग, WPI ब्लू ड्राइवरस्टेशन): x,y,z, रोल, पिच, यॉ (मीटर, डिग्री)
botpose_orbबॉटपोज़ (मेगाटैग2): x,y,z, रोल, पिच, यॉ (मीटर, डिग्री)
botpose_orb_wpiredबॉटपोज़ (मेगाटैग2, WPI रेड ड्राइवरस्टेशन): x,y,z, रोल, पिच, यॉ (मीटर, डिग्री)
botpose_orb_wpiblueबॉटपोज़ (मेगाटैग2, WPI ब्लू ड्राइवरस्टेशन): x,y,z, रोल, पिच, यॉ (मीटर, डिग्री)
botpose_avgareaबॉटपोज़ की गणना के लिए उपयोग किए गए टैग का औसत क्षेत्रफल
botpose_avgdistबॉटपोज़ की गणना के लिए उपयोग किए गए टैग के बीच अधिकतम दूरी (मीटर)
botpose_spanबॉटपोज़ की गणना के लिए उपयोग किए गए टैग के बीच अधिकतम दूरी (मीटर)
botpose_tagcountबॉटपोज़ की गणना के लिए उपयोग किए गए टैग की संख्या
Retroरंग/रेट्रोरिफ्लेक्टिव पाइपलाइन परिणाम संग्रह
FiducialAprilTag पाइपलाइन परिणाम संग्रह
Detectorन्यूरल डिटेक्टर पाइपलाइन परिणाम संग्रह
Classifierक्लासिफायर पाइपलाइन परिणाम संग्रह
Barcodeबारकोड पाइपलाइन परिणाम संग्रह

रंग/रेट्रोरिफ्लेक्टिव परिणाम

"Retro" सरणी में निम्नलिखित संरचना वाली प्रविष्टियाँ होती हैं:

कुंजी नाममान विवरण
t6c_tssolvepnp द्वारा गणना किए गए लक्ष्य स्थान में कैमरा की स्थिति (x,y,z,rx,ry,rz)
t6r_fssolvepnp द्वारा गणना किए गए फील्ड स्थान में रोबोट की स्थिति (x,y,z,rx,ry,rz)
t6r_tssolvepnp द्वारा गणना किए गए लक्ष्य स्थान में रोबोट की स्थिति (x,y,z,rx,ry,rz)
t6t_cssolvepnp द्वारा गणना किए गए कैमरा स्थान में लक्ष्य की स्थिति (x,y,z,rx,ry,rz)
t6t_rssolvepnp द्वारा गणना किए गए रोबोट स्थान में लक्ष्य की स्थिति (x,y,z,rx,ry,rz)
taछवि के प्रतिशत के रूप में लक्ष्य का आकार (0-1)
txक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tx_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
txpक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tyक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ty_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
typक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ptsकोने सरणी (पिक्सेल) [x0,y0,x1,y1.....]. आउटपुट टैब में सक्षम होना चाहिए
रंग / रेट्रोरिफ्लेक्टिव पाइपलाइन के लिए उदाहरण JSON
{
"Barcode": [],
"Classifier": [],
"Detector": [],
"Fiducial": [],
"PythonOut": [],
"Retro": [
{
"pts": [],
"t6c_ts": [],
"t6r_fs": [],
"t6r_ts": [],
"t6t_cs": [],
"t6t_rs": [],
"ta": 0.00531171215698123,
"tx": -4.535492777705656,
"tx_nocross": -4.428826910553056,
"txp": 542.53076171875,
"ty": -1.1722867231218714,
"ty_nocross": -0.09285491974145543,
"typ": 504.5538635253906
},
{
"pts": [],
"t6c_ts": [],
"t6r_fs": [],
"t6r_ts": [],
"t6t_cs": [],
"t6t_rs": [],
"ta": 0.005779948551207781,
"tx": 8.465099348209478,
"tx_nocross": 8.571765215362078,
"txp": 822.1087036132812,
"ty": -2.524207730360601,
"ty_nocross": -1.444775926980185,
"typ": 533.6112060546875
},
],
"botpose": [
0,
0,
0,
0,
0,
0
],
"botpose_avgarea": 0,
"botpose_avgdist": 0,
"botpose_orb": [
0,
0,
0,
0,
0,
0
],
"botpose_orb_wpiblue": [
0,
0,
0,
0,
0,
0
],
"botpose_orb_wpired": [
0,
0,
0,
0,
0,
0
],
"botpose_span": 0,
"botpose_tagcount": 0,
"botpose_wpiblue": [
0,
0,
0,
0,
0,
0
],
"botpose_wpired": [
0,
0,
0,
0,
0,
0
],
"cl": 37.619998931884766,
"focus_metric": 0,
"pID": 0,
"pTYPE": "pipe_color",
"stdev_mt1": [
0,
0,
0,
0,
0,
0
],
"stdev_mt2": [
0,
0,
0,
0,
0,
0
],
"t6c_rs": [
0,
0,
0,
0,
0,
0
],
"ta": 0.39156023412942886,
"tl": 22.64053726196289,
"ts": 215248.979204,
"tx": -4.3848327488723555,
"txnc": -4.278166881719756,
"ty": -1.1144596937982527,
"tync": -0.035027890417836716,
"v": 1
}

AprilTag/Fiducial परिणाम

"Fiducial" सरणी में निम्नलिखित संरचना वाली प्रविष्टियाँ होती हैं:

कुंजी नाममान विवरण
fidFiducial टैग आईडी
famFiducial परिवार (16H5C, 25H9C, 36H11C, आदि)
ptsव्यक्तिगत कोने के बिंदुओं को लौटाता है। सक्षम होना चाहिए।
skewवर्तमान में अप्रयुक्त
t6c_tsइस fiducial द्वारा गणना की गई लक्ष्य स्थान में कैमरा की स्थिति (x,y,z,पिच,याव,रोल) (मीटर, डिग्री)
t6r_fsइस fiducial द्वारा गणना की गई फील्ड स्थान में रोबोट की स्थिति (x,y,z,पिच,याव,रोल) (मीटर, डिग्री)
t6r_fs_orbइस fiducial द्वारा गणना की गई फील्ड स्थान में रोबोट की स्थिति (Megatag2) (x,y,z,पिच,याव,रोल) (मीटर, डिग्री)
t6r_tsइस fiducial द्वारा गणना की गई लक्ष्य स्थान में रोबोट की स्थिति (x,y,z,पिच,याव,रोल) (मीटर, डिग्री)
t6t_csइस fiducial द्वारा गणना की गई कैमरा स्थान में लक्ष्य की स्थिति (x,y,z,पिच,याव,रोल) (मीटर, डिग्री)
t6t_rsइस fiducial द्वारा गणना की गई रोबोट स्थान में लक्ष्य की स्थिति (x,y,z,पिच,याव,रोल) (मीटर, डिग्री)
taछवि के प्रतिशत के रूप में लक्ष्य का आकार (0-1)
txक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tx_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
txpक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tyक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ty_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
typक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ptsकोने सरणी (पिक्सेल) [x0,y0,x1,y1.....]. आउटपुट टैब में सक्षम होना चाहिए
AprilTag पाइपलाइन के लिए उदाहरण JSON
{
"Classifier": [],
"Detector": [],
"Fiducial": [
{
"fID": 2,
"fam": "16H5C",
"pts": [],
"skew": [],
"t6c_ts": [
0.33247368976801916,
-0.05672695778305914,
-2.5042031405987144,
-4.680849607956358,
-5.171154989721864,
4.528697946312339
],
"t6r_fs": [
4.738896418276903,
-1.5926603672041666,
0.5194469577830592,
4.522658587661256,
4.258580454853879,
5.5236539893713275
],
"t6r_ts": [
0.33247368976801916,
-0.05672695778305914,
-2.5042031405987144,
-4.680849607956358,
-5.171154989721864,
4.528697946312339
],
"t6t_cs": [
-0.09991902572799474,
-0.1234042720218289,
2.5218203039582496,
4.278368708252767,
5.508508005282244,
-4.1112864453027775
],
"t6t_rs": [
-0.09991902572799474,
-0.1234042720218289,
2.5218203039582496,
4.278368708252767,
5.508508005282244,
-4.1112864453027775
],
"ta": 0.005711808800697327,
"tx": -2.0525293350219727,
"txp": 149.4874725341797,
"ty": 2.7294836044311523,
"typ": 107.14710235595703
}
],
"Retro": [],
"pID": 0,
"tl": 19.78130340576172,
"ts": 3284447.910569,
"v": 1
}

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

"डिटेक्टर" सरणी में निम्नलिखित संरचना वाली प्रविष्टियाँ होती हैं:

कुंजी नाममान विवरण
classमानव-पठनीय वर्ग नाम स्ट्रिंग
classIDवर्गID पूर्णांक
confभविष्यवाणी का विश्वास
ptsव्यक्तिगत कोने बिंदु [x,y] पिक्सेल में एक सरणी के रूप में। केंद्र-शून्य, दाएं और नीचे सकारात्मक। सक्षम होना चाहिए।
taछवि के प्रतिशत (0-1) के रूप में लक्ष्य का आकार
txक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tx_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
txpक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tyक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ty_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
typक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ptsकोने सरणी (पिक्सेल) [x0,y0,x1,y1.....]. आउटपुट टैब में सक्षम होना चाहिए
डिटेक्टर पाइपलाइन के लिए उदाहरण JSON
{
"Classifier": [],
"Detector": [
{
"class": "person",
"classID": 0,
"conf": 0.83984375,
"pts": [],
"ta": 0.2608712911605835,
"tx": -2.45949649810791,
"txp": 147.5,
"ty": -10.066887855529785,
"typ": 165.5
}
],
"Fiducial": [],
"Retro": [],
"pID": 0,
"tl": 63.50614547729492,
"ts": 4932985.266867,
"v": 1
}

न्यूरल वर्गीकरण परिणाम

"Classifier" सरणी में निम्नलिखित संरचना वाली प्रविष्टियाँ होती हैं:

कुंजी नाममान विवरण
classमानव-पठनीय वर्ग नाम स्ट्रिंग
classIDवर्गID पूर्णांक
confभविष्यवाणी का विश्वास
वर्गीकरण पाइपलाइन के लिए उदाहरण JSON
{
"Classifier": [
{
"class": "digital clock",
"classID": 531,
"conf": 0.16796875
}
],
"Detector": [],
"Fiducial": [],
"Retro": [],
"pID": 0,
"tl": 16.704740524291992,
"ts": 4751332.7542280005,
"v": 1
}

बारकोड परिणाम

"Barcode" सरणी में निम्नलिखित संरचना वाली प्रविष्टियाँ होती हैं:

कुंजी नाममान विवरण
famबारकोड परिवार जैसे "qr"
dataस्ट्रिंग के रूप में डिकोड किया गया बारकोड डेटा
taछवि के प्रतिशत के रूप में लक्ष्य का आकार (0-1)
txक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tx_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
txpक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का X-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
tyक्रॉसहेयर के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ty_nocrossप्रमुख पिक्सेल के सापेक्ष डिग्री में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-दाएं, केंद्र-शून्य
typक्रॉसहेयर के सापेक्ष पिक्सेल में लक्ष्य के केंद्र का Y-निर्देशांक। सकारात्मक-नीचे, केंद्र-शून्य
ptsकोने सरणी (पिक्सेल) [x0,y0,x1,y1.....]. आउटपुट टैब में सक्षम होना चाहिए
बारकोड पाइपलाइन के लिए उदाहरण JSON
{
"Barcode": [
{
"fam": "QR",
"data": "Hello, World!",
"txp": 150.5,
"typ": 120.75,
"tx": -2.5,
"ty": 1.8,
"tx_nocross": -2.3,
"ty_nocross": 2.0,
"ta": 0.05,
"pts": [[140, 110], [160, 110], [160, 130], [140, 130]]
}
],
"Classifier": [],
"Detector": [],
"Fiducial": [],
"Retro": [],
"pID": 0,
"tl": 15.2,
"ts": 4751332.7542280005,
"v": 1
}