مواصفات نتائج 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 Python |
stdev_mt1 | الانحراف المعياري MT1 [x, y, z, roll, pitch, yaw] (بالأمتار، الدرجات) |
stdev_mt2 | الانحراف المعياري MT2 [x, y, z, roll, pitch, yaw] (بالأمتار، الدرجات) |
pID | فهرس خط الأنابيب الحالي |
pTYPE | نوع خط الأنابيب الحالي مثل "pipe_color" |
ts | الطابع الزمني بالمللي ثانية من بدء التشغيل |
v | مؤشر الصلاحية. 1 = أهداف صالحة، 0 = لا توجد أهداف صالحة |
botpose | وضعية الروبوت (MegaTag): x,y,z, roll, pitch, yaw (بالأمتار، الدرجات) |
botpose_wpired | وضعية الروبوت (MegaTag، محطة القيادة الحمراء WPI): x,y,z, roll, pitch, yaw (بالأمتار، الدرجات) |
botpose_wpiblue | وضعية الروبوت (MegaTag، محطة القيادة الزرقاء WPI): x,y,z, roll, pitch, yaw (بالأمتار، الدرجات) |
botpose_orb | وضعية الروبوت (MegaTag2): x,y,z, roll, pitch, yaw (بالأمتار، الدرجات) |
botpose_orb_wpired | وضعية الروبوت (MegaTag2، محطة القيادة الحمراء WPI): x,y,z, roll, pitch, yaw (بالأمتار، الدرجات) |
botpose_orb_wpiblue | وضعية الروبوت (MegaTag2، محطة القيادة الزرقاء WPI): x,y,z, roll, pitch, yaw (بالأمتار، الدرجات) |
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 | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للشعرية. موجب-يمين، صفر-مركز |
tx_nocross | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. موجب-يمين، صفر-مركز |
txp | الإحداثي السيني لمركز الهدف بالبكسل بالنسبة للشعرية. موجب-يمين، صفر-مركز |
ty | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للشعرية. موجب-أسفل، صفر-مركز |
ty_nocross | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. موجب-يمين، صفر-مركز |
typ | الإحداثي الصادي لمركز الهدف بالبكسل بالنسبة للشعرية. موجب-أسفل، صفر-مركز |
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 | وضعية الكاميرا في فضاء الهدف كما تم حسابها بواسطة هذه العلامة (x,y,z,pitch,yaw,roll) (أمتار، درجات) |
t6r_fs | وضعية الروبوت في فضاء الميدان كما تم حسابها بواسطة هذه العلامة (x,y,z,pitch,yaw,roll) (أمتار، درجات) |
t6r_fs_orb | وضعية الروبوت في فضاء الميدان كما تم حسابها بواسطة هذه العلامة (Megatag2) (x,y,z,pitch,yaw,roll) (أمتار، درجات) |
t6r_ts | وضعية الروبوت في فضاء الهدف كما تم حسابها بواسطة هذه العلامة (x,y,z,pitch,yaw,roll) (أمتار، درجات) |
t6t_cs | وضعية الهدف في فضاء الكاميرا كما تم حسابها بواسطة هذه العلامة (x,y,z,pitch,yaw,roll) (أمتار، درجات) |
t6t_rs | وضعية الهدف في فضاء الروبوت كما تم حسابها بواسطة هذه العلامة (x,y,z,pitch,yaw,roll) (أمتار، درجات) |
ta | حجم الهدف كنسبة مئوية من الصورة (0-1) |
tx | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للشعرية المتقاطعة. موجب-يمين، مركز-صفر |
tx_nocross | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. موجب-يمين، مركز-صفر |
txp | الإحداثي السيني لمركز الهدف بالبكسل بالنسبة للشعرية المتقاطعة. موجب-يمين، مركز-صفر |
ty | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للشعرية المتقاطعة. موجب-لأسفل، مركز-صفر |
ty_nocross | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. موجب-يمين، مركز-صفر |
typ | الإحداثي الصادي لمركز الهدف بالبكسل بالنسبة للشعرية المتقاطعة. موجب-لأسفل، مركز-صفر |
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
}
نتائج الكاشف العصبي
تحتوي مصفوفة "الكاشف" على إدخالات بالهيكل التالي:
اسم المفتاح | وصف القيمة |
---|---|
class | سلسلة اسم الفئة المقروءة للإنسان |
classID | عدد صحيح لمعرف الفئة |
conf | ثقة التنبؤ |
pts | نقاط الزوايا الفردية كمصفوفة من [x,y] بالبكسل. مركز الصفر، إيجابي لليمين وللأسفل. يجب تمكينها. |
ta | حجم الهدف كنسبة مئوية من الصورة (0-1) |
tx | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للشع رة المتقاطعة. إيجابي لليمين، مركز الصفر |
tx_nocross | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. إيجابي لليمين، مركز الصفر |
txp | الإحداثي السيني لمركز الهدف بالبكسل بالنسبة للشعرة المتقاطعة. إيجابي لليمين، مركز الصفر |
ty | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للشعرة المتقاطعة. إيجابي للأسفل، مركز الصفر |
ty_nocross | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. إيجابي لليمين، مركز الصفر |
typ | الإحداثي الصادي لمركز الهدف بالبكسل بالنسبة للشعرة المتقاطعة. إيجابي للأسفل، مركز الصفر |
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 | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للشعرة المتقاطعة. موجب لليمين، صفر في المركز |
tx_nocross | الإحداثي السيني لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. موجب لليمين، صفر في المركز |
txp | الإحداثي السيني لمركز الهدف بالبكسل بالنسبة للشعرة المتقاطعة. موجب لليمين، صفر في المركز |
ty | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للشعرة المتقاطعة. موجب للأسفل، صفر في المركز |
ty_nocross | الإحداثي الصادي لمركز الهدف بالدرجات بالنسبة للبكسل الرئيسي. موجب لليمين، صفر في المركز |
typ | الإحداثي الصادي لمركز الهدف بالبكسل بالنسبة للشعرة المتقاطعة. موجب للأسفل، صفر في المركز |
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
}