JSON Sonuçları Spesifikasyonu
Limelight'ın JSON sonuç çıktısı, hedefleme sonuçlarını içeren bir dizi koleksiyonudur. Retroreflektif, fiducial, sinir sınıflandırıcı ve sinir dedektörü sonuçları için ayrı diziler mevcuttur. JSON insan tarafından okunabilir ve herhangi bir platformda herhangi bir dilde ayrıştırılması kolaydır, bu nedenle çoğu kullanım durumu için mükemmeldir.
Aynı JSON sonuç çıktısı REST/HTTP, Websocket ve NetworkTables API'leri kullanılarak alınabilir.
Bu JSON çıktısını ayrıştırmak, FRC kütüphanelerimizle inanılmaz derecede kolaydır.
Limelightlib, JSON Dump'ı bir LimelightResults nesnesine ayrıştıran yerleşik işlevselliğe sahiptir.
https://github.com/LimelightVision/limelightlib-wpijava
https://github.com/LimelightVision/limelightlib-wpicpp
Her JSON sonucu aşağıdaki girişleri içerir:
Anahtar Adı | Değer Açıklaması |
---|---|
tl | Hedefleme gecikmesi (bu karede izleme döngüsü tarafından tüketilen milisaniye) |
cl | Yakalama gecikmesi (orta satırın pozlamasının sonu ile izleme döngüsünün başlangıcı arasındaki milisaniye) |
tx | Artı İşaretinden Hedefe Yatay Ofset (LL1: -27 derece ile 27 derece / LL2: -29.8 ile 29.8 derece) |
ty | Artı İşaretinden Hedefe Dikey Ofset (LL1: -20.5 derece ile 20.5 derece / LL2: -24.85 ile 24.85 derece) |
txnc | Ana Pikselden Hedefe Yatay Ofset (derece) |
tync | Ana Pikselden Hedefe Dikey Ofset (derece) |
ta | Bozulmamış, normalleştirilmiş hedef alanı (0-100) |
PythonOut | Python SnapScript Pipeline'larından çıktı verileri |
stdev_mt1 | MT1 Standart Sapma [x, y, z, yuvarlanma, yunuslama, sapma] (metre, derece) |
stdev_mt2 | MT2 Standart Sapma [x, y, z, yuvarlanma, yunuslama, sapma] (metre, derece) |
pID | Mevcut Pipeline indeksi |
pTYPE | Mevcut Pipeline Türü örn. "pipe_color" |
ts | Başlangıçtan itibaren milisaniye cinsinden zaman damgası |
v | Geçerlilik göstergesi. 1 = geçerli hedefler, 0 = geçerli hedef yok |
botpose | Botpose (MegaTag): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece) |
botpose_wpired | Botpose (MegaTag, WPI Kırmızı sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece) |
botpose_wpiblue | Botpose (MegaTag, WPI Mavi sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece) |
botpose_orb | Botpose (MegaTag2): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece) |
botpose_orb_wpired | Botpose (MegaTag2, WPI Kırmızı sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece) |
botpose_orb_wpiblue | Botpose (MegaTag2, WPI Mavi sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece) |
botpose_avgarea | Botpose hesaplamak için kullanılan etiketlerin ortalama alanı |
botpose_avgdist | Botpose hesaplamak için kullanılan etiketler arasındaki maksimum mesafe (metre) |
botpose_span | Botpose hesaplamak için kullanılan etiketler arasındaki maksimum mesafe (metre) |
botpose_tagcount | Botpose hesaplamak için kullanılan etiket sayısı |
Retro | Renk/Retroreflektif pipeline sonuçları dizisi |
Fiducial | AprilTag pipeline sonuçları dizisi |
Detector | Sinir Dedektörü pipeline sonuçları dizisi |
Classifier | Sınıflandırıcı pipeline sonuçları dizisi |
Barcode | Barkod pipeline sonuçları dizisi |
Renk/Retroreflektif Sonuçları
"Retro" dizisi aşağıdaki yapıya sahip girişler içerir:
Anahtar Adı | Değer Açıklaması |
---|---|
t6c_ts | Solvepnp ile hesaplanan hedef uzayındaki kamera pozu (x,y,z,rx,ry,rz) |
t6r_fs | Solvepnp ile hesaplanan saha uzayındaki robot pozu (x,y,z,rx,ry,rz) |
t6r_ts | Solvepnp ile hesaplanan hedef uzayındaki robot pozu (x,y,z,rx,ry,rz) |
t6t_cs | Solvepnp ile hesaplanan kamera uzayındaki hedef pozu (x,y,z,rx,ry,rz) |
t6t_rs | Solvepnp ile hesaplanan robot uzayındaki hedef pozu (x,y,z,rx,ry,rz) |
ta | Hedefin görüntüdeki boyutunun yüzdesi (0-1) |
tx | Hedefin merkezinin artı işaretine göre derece cinsinden X koordinatı. Sağa pozitif, merkez sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre derece cinsinden X koordinatı. Sağa pozitif, merkez sıfır |
txp | Hedefin merkezinin artı işaretine göre piksel cinsinden X koordinatı. Sağa pozitif, merkez sıfır |
ty | Hedefin merkezinin artı işaretine göre derece cinsinden Y koordinatı. Aşağı pozitif, merkez sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre derece cinsinden Y koordinatı. Sağa pozitif, merkez sıfır |
typ | Hedefin merkezinin artı işaretine göre piksel cinsinden Y koordinatı. Aşağı pozitif, merkez sıfır |
pts | Köşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmesi gerekir |
Renk / Retroreflektif İşlem Hatları için Örnek 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 Sonuçları
"Fiducial" dizisi aşağıdaki yapıya sahip girişler içerir:
Anahtar Adı | Değer Açıklaması |
---|---|
fid | Fiducial etiket ID'si |
fam | Fiducial Ailesi (16H5C, 25H9C, 36H11C, vb) |
pts | Bireysel köşe noktalarını döndürür. Etkinleştirilmesi gerekir. |
skew | Şu anda kullanılmıyor |
t6c_ts | Bu fiducial tarafından hesaplanan hedef uzayındaki Kamera Pozu (x,y,z,pitch,yaw,roll) (metre, derece) |
t6r_fs | Bu fiducial tarafından hesaplanan saha uzayındaki Robot Pozu (x,y,z,pitch,yaw,roll) (metre, derece) |
t6r_fs_orb | Bu fiducial tarafından hesaplanan saha uzayındaki Robot Pozu (Megatag2) (x,y,z,pitch,yaw,roll) (metre, derece) |
t6r_ts | Bu fiducial tarafından hesaplanan hedef uzayındaki Robot Pozu (x,y,z,pitch,yaw,roll) (metre, derece) |
t6t_cs | Bu fiducial tarafından hesaplanan kamera uzayındaki Hedef Pozu (x,y,z,pitch,yaw,roll) (metre, derece) |
t6t_rs | Bu fiducial tarafından hesaplanan robot uzayındaki Hedef Pozu (x,y,z,pitch,yaw,roll) (metre, derece) |
ta | Hedefin görüntüdeki boyutu (yüzde olarak, 0-1) |
tx | Hedefin merkezinin artı işaretine göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır |
txp | Hedefin merkezinin artı işaretine göre X koordinatı (piksel). Sağa-pozitif, merkez-sıfır |
ty | Hedefin merkezinin artı işaretine göre Y koordinatı (derece). Aşağı-pozitif, merkez-sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre Y koordinatı (derece). Sağa-pozitif, merkez-sıfır |
typ | Hedefin merkezinin artı işaretine göre Y koordinatı (piksel). Aşağı-pozitif, merkez-sıfır |
pts | Köşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmesi gerekir |
AprilTag Pipeline'ları için Örnek 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
}
Nöral Dedektör Sonuçları
"Detector" dizisi aşağıdaki yapıya sahip girişler içerir:
Anahtar Adı | Değer Açıklaması |
---|---|
class | İnsan tarafından okunabilir sınıf adı dizesi |
classID | Sınıf ID tamsayısı |
conf | Tahmin güven değeri |
pts | Köşe noktalarının [x,y] piksel cinsinden dizi olarak gösterimi. Merkez-sıfır, sağa ve aşağı pozitif. Etkinleştirilmesi gerekir. |
ta | Hedefin görüntüdeki boyutu (0-1 arası yüzde olarak) |
tx | Hedefin merkezinin artı işaretine göre derece cinsinden X-koordinatı. Sağa-pozitif, merkez-sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre derece cinsinden X-koordinatı. Sağa-pozitif, merkez-sıfır |
txp | Hedefin merkezinin artı işaretine göre piksel cinsinden X-koordinatı. Sağa-pozitif, merkez-sıfır |
ty | Hedefin merkezinin artı işaretine göre derece cinsinden Y-koordinatı. Aşağı-pozitif, merkez-sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre derece cinsinden Y-koordinatı. Sağa-pozitif, merkez-sıfır |
typ | Hedefin merkezinin artı işaretine göre piksel cinsinden Y-koordinatı. Aşağı-pozitif, merkez-sıfır |
pts | Köşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmesi gerekir |
Dedektör İşlem Hattı için Örnek 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
}
Sinir Ağı Sınıflandırıcı Sonuçları
"Classifier" dizisi aşağıdaki yapıya sahip girişler içerir:
Anahtar Adı | Değer Açıklaması |
---|---|
class | İnsan tarafından okunabilir sınıf adı dizesi |
classID | Sınıf ID tamsayısı |
conf | Tahmin güven değeri |
Sınıflandırıcı İşlem Hatları için Örnek JSON
{
"Classifier": [
{
"class": "digital clock",
"classID": 531,
"conf": 0.16796875
}
],
"Detector": [],
"Fiducial": [],
"Retro": [],
"pID": 0,
"tl": 16.704740524291992,
"ts": 4751332.7542280005,
"v": 1
}
Barkod Sonuçları
"Barcode" dizisi aşağıdaki yapıya sahip girişler içerir:
Anahtar Adı | Değer Açıklaması |
---|---|
fam | Barkod Ailesi örn. "qr" |
data | String olarak çözümlenmiş barkod verisi |
ta | Hedefin görüntüye göre boyutu (0-1 arası yüzde) |
tx | Hedefin merkezinin artı işaretine göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır |
txp | Hedefin merkezinin artı işaretine göre X koordinatı (piksel). Sağa-pozitif, merkez-sıfır |
ty | Hedefin merkezinin artı işaretine göre Y koordinatı (derece). Aşağı-pozitif, merkez-sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre Y koordinatı (derece). Sağa-pozitif, merkez-sıfır |
typ | Hedefin merkezinin artı işaretine göre Y koordinatı (piksel). Aşağı-pozitif, merkez-sıfır |
pts | Köşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmesi gerekir |
Barkod İşlem Hatları için Örnek 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
}