انتقل إلى المحتوى الرئيسي

مواصفات نتائج 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
}