מפרט תוצאות JSON
פלט תוצאות ה-JSON של Limelight הוא אוסף של מערכים המכילים תוצאות מיקוד. קיימים מערכים נפרדים עבור תוצאות רטרו-רפלקטיביות, פידוציאליות, מסווג נוירוני וגלאי נוירוני. JSON הוא קריא לאדם וקל לניתוח בכל שפה ובכל פלטפורמה, ולכן הוא מושלם לרוב המקרים.
ניתן לקבל את אותו פלט תוצאות JSON באמצעות ממשקי ה-REST/HTTP, Websocket ו-NetworkTables.
ניתוח פלט JSON זה הוא קל מאוד עם ספריות ה-FRC שלנו.
ל-Limelightlib יש פונקציונליות מובנית שמנתחת את ה-JSON Dump לאובייקט 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_mt1 | סטיית תקן MT1 [x, y, z, גלגול, עלרוד, סבסוב] (מטרים, מעלות) |
stdev_mt2 | סטיית תקן MT2 [x, y, z, גלגול, עלרוד, סבסוב] (מטרים, מעלות) |
pID | אינדקס הצינור הנוכחי |
pTYPE | סוג הצינור הנוכחי למשל "pipe_color" |
ts | חותמת זמן באלפיות שניה מההפעלה |
v | מחוון תקפות. 1 = מטרות תקפות, 0 = אין מטרות תקפות |
botpose | מיקום הרובוט (MegaTag): x,y,z, גלגול, עלרוד, סבסוב (מטרים, מעלות) |
botpose_wpired | מיקום הרובוט (MegaTag, תחנת הנהג האדומה של WPI): x,y,z, גלגול, עלרוד, סבסוב (מטרים, מעלות) |
botpose_wpiblue | מיקום הרובוט (MegaTag, תחנת הנהג הכחולה של WPI): x,y,z, גלגול, עלרוד, סבסוב (מטרים, מעלות) |
botpose_orb | מיקום הרובוט (MegaTag2): x,y,z, גלגול, עלרוד, סבסוב (מטרים, מעלות) |
botpose_orb_wpired | מיקום הרובוט (MegaTag2, תחנת הנהג האדומה של WPI): x,y,z, גלגול, עלרוד, סבסוב (מטרים, מעלות) |
botpose_orb_wpiblue | מיקום הרובוט (MegaTag2, תחנת הנהג הכחולה של WPI): x,y,z, גלגול, עלרוד, סבסוב (מטרים, מעלות) |
botpose_avgarea | שטח ממוצע של התגים ששימשו לחישוב מיקום הרובוט |
botpose_avgdist | מרחק מקסימלי בין התגים ששימשו לחישוב מיקום הרובוט (מטרים) |
botpose_span | מרחק מקסימלי בין התגים ששימשו לחישוב מיקום הרובוט (מטרים) |
botpose_tagcount | מספר התגים ששימשו לחישוב מיקום הרובוט |
Retro | מערך תוצאות צינור צבע/רטרו-רפלקטיבי |
Fiducial | מערך תוצאות צינור AprilTag |
Detector | מערך תוצאות צינור גלאי נוירוני |
Classifier | מערך תוצאות צינור מסווג |
Barcode | מערך תוצאות צינור ברקוד |
תוצאות צבע/רטרו-רפלקטיבי
המערך "Retro" מכיל רשומות עם המבנה הבא:
שם המפתח | תיאור הערך |
---|---|
t6c_ts | תנוחת המצלמה במרחב המטרה כפי שחושבה על ידי solvepnp (x,y,z,rx,ry,rz) |
t6r_fs | תנוחת הרובוט במרחב השדה כפי שחושבה על ידי solvepnp (x,y,z,rx,ry,rz) |
t6r_ts | תנוחת הרובוט במרחב המטרה כפי שחושבה על ידי solvepnp (x,y,z,rx,ry,rz) |
t6t_cs | תנוחת המטרה במרחב המצלמה כפי שחושבה על ידי solvepnp (x,y,z,rx,ry,rz) |
t6t_rs | תנוחת המטרה במרחב הרובוט כפי שחושבה על ידי solvepnp (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" מ כיל רשומות עם המבנה הבא:
שם המפתח | תיאור הערך |
---|---|
fid | מזהה תג Fiducial |
fam | משפחת Fiducial (16H5C, 25H9C, 36H11C, וכו') |
pts | מחזיר נקודות פינה בודדות. חייב להיות מופעל. |
skew | לא בשימוש כרגע |
t6c_ts | תנוחת המצלמה במרחב היעד כפי שחושבה על ידי fiducial זה (x,y,z,pitch,yaw,roll) (מטרים, מעלות) |
t6r_fs | תנוחת הרובוט במרחב השדה כפי שחושבה על ידי fiducial זה (x,y,z,pitch,yaw,roll) (מטרים, מעלות) |
t6r_fs_orb | תנוחת הרובוט במרחב השדה כפי שחושבה על ידי fiducial זה (Megatag2) (x,y,z,pitch,yaw,roll) (מטרים, מעלות) |
t6r_ts | תנוחת הרובוט במרחב היעד כפי שחושבה על ידי fiducial זה (x,y,z,pitch,yaw,roll) (מטרים, מעלות) |
t6t_cs | תנוחת היעד במרחב המצלמה כפי שחושבה על ידי fiducial זה (x,y,z,pitch,yaw,roll) (מטרים, מעלות) |
t6t_rs | תנוחת היעד במרחב הרובוט כפי שחושבה על ידי fiducial זה (x,y,z,pitch,yaw,roll) (מטרים, מעלות) |
ta | גודל היעד כאחוז מהתמונה (0-1) |
tx | קואורדינטת X של מרכז היעד במעלות ביחס לכוונת. חיובי-ימינה, מרכז-אפס |
tx_nocross | קואורדינטת X של מרכז היעד במעלות ביחס לפיקסל הראשי. חיובי-ימינה, מרכז-אפס |
txp | קואורדינטת X של מרכז היעד בפיקסלים ביחס לכוונת. חיובי-ימינה, מרכז-אפס |
ty | קואורדינטת Y של מרכז היעד במעלות ביחס לכוונת. חיובי-למטה, מרכז-אפס |
ty_nocross | קואורדינטת Y של מרכז היעד במעלות ביחס לפיקסל הראשי. חיובי-ימינה, מרכז-אפס |
typ | קואורדינטת Y של מרכז היעד בפיקסלים ביחס לכוונת. חיובי-למטה, מרכז-אפס |
pts | מערך פינות (פיקסלים) [x0,y0,x1,y1.....]. חייב להיות מופעל בלשונית הפלט |
דוגמת JSON עבור צינורות AprilTag
{
"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
}
תוצאות גלאי נוירונים
המערך "Detector" מכיל רשומות עם המבנה הבא:
שם המפתח | תיאור הערך |
---|---|
class | מחרוזת שם המחלק ה הקריאה לאדם |
classID | מספר שלם של מזהה המחלקה |
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 | מספר שלם של מזהה המחלקה |
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
}