JSON Sonuçları Spesifikasyonu
Limelight'ın JSON sonuç çıktısı, hedefleme sonuçlarını içeren bir dizi koleksiyonudur. Retroreflektif, fiducial, sinir ağı sınıflandırıcı ve sinir ağı dedektör sonuçları için ayrı diziler mevcuttur. JSON insan tarafından okunabilir ve herhangi bir dilde, herhangi bir platformda ayrıştırılması kolaydır, bu nedenle çoğu kullanım senaryosu 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 kare için 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 | Hedefin Artı İşaretinden Yatay Sapması (LL1: -27 derece ile 27 derece arası / LL2: -29.8 ile 29.8 derece arası) |
ty | Hedefin Artı İşaretinden Dikey Sapması (LL1: -20.5 derece ile 20.5 derece arası / LL2: -24.85 ile 24.85 derece arası) |
txnc | Hedefin Ana Pikselden Yatay Sapması (derece) |
tync | Hedefin Ana Pikselden Dikey Sapması (derece) |
ta | Hedefin bozulmamış, normalize edilmiş 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 | Önyüklemeden 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 Ağı 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 boyutu (yüzde olarak, 0-1 arası) |
tx | Hedefin merkezinin artı işaretine göre X koordinatı (derece cinsinden). Sağa doğru pozitif, merkez sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre X koordinatı (derece cinsinden). Sağa doğru pozitif, merkez sıfır |
txp | Hedefin merkezinin artı işaretine göre X koordinatı (piksel cinsinden). Sağa doğru pozitif, merkez sıfır |
ty | Hedefin merkezinin artı işaretine göre Y koordinatı (derece cinsinden). Aşağı doğru pozitif, merkez sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre Y koordinatı (derece cinsinden). Sağa doğru pozitif, merkez sıfır |
typ | Hedefin merkezinin artı işaretine göre Y koordinatı (piksel cinsinden). Aşağı doğru pozitif, merkez sıfır |
pts | Köşeler dizisi (piksel cinsinden) [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 kimliği |
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 | Görüntünün yüzdesi olarak hedefin boyutu (0-1) |
tx | Hedefin merkezinin artı işaretine göre X koordinatı (derece cinsinden). Sağa pozitif, merkez sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre X koordinatı (derece cinsinden). Sağa pozitif, merkez sıfır |
txp | Hedefin merkezinin artı işaretine göre X koordinatı (piksel cinsinden). Sağa pozitif, merkez sıfır |
ty | Hedefin merkezinin artı işaretine göre Y koordinatı (derece cinsinden). Aşağı pozitif, merkez sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre Y koordinatı (derece cinsinden). Sağa pozitif, merkez sıfır |
typ | Hedefin merkezinin artı işaretine göre Y koordinatı (piksel cinsinden). Aşağı pozitif, merkez sıfır |
pts | Köşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmesi gerekir |
AprilTag İşlem Hatları 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üveni |
pts | Piksel cinsinden [x,y] şeklinde bir dizi olarak ayrı köşe noktaları. Merkez sıfır, sağa ve aşağıya doğru pozitif. Etkinleştirilmesi gerekir. |
ta | Hedefin görüntünün yüzdesi olarak boyutu (0-1) |
tx | Hedefin merkezinin artı işaretine göre derece cinsinden X koordinatı. Sağa doğru pozitif, merkez sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre derece cinsinden X koordinatı. Sağa doğru pozitif, merkez sıfır |
txp | Hedefin merkezinin artı işaretine göre piksel cinsinden X koordinatı. Sağa doğru pozitif, merkez sıfır |
ty | Hedefin merkezinin artı işaretine göre derece cinsinden Y koordinatı. Aşağıya doğru pozitif, merkez sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre derece cinsinden Y koordinatı. Sağa doğru pozitif, merkez sıfır |
typ | Hedefin merkezinin artı işaretine göre piksel cinsinden Y koordinatı. Aşağıya doğru pozitif, merkez sıfır |
pts | Köşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmesi gerekir |
Dedektör Hatları 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üveni |
Sınıflandırıcı 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 | Çözümlenmiş barkod verisi (string olarak) |
ta | Hedefin görüntüye göre boyutu (yüzde olarak, 0-1 arası) |
tx | Hedefin merkezinin artı işaretine göre X koordinatı (derece cinsinden). Sağa doğru pozitif, merkez sıfır |
tx_nocross | Hedefin merkezinin ana piksele göre X koordinatı (derece cinsinden). Sağa doğru pozitif, merkez sıfır |
txp | Hedefin merkezinin artı işaretine göre X koordinatı (piksel cinsinden). Sağa doğru pozitif, merkez sıfır |
ty | Hedefin merkezinin artı işaretine göre Y koordinatı (derece cinsinden). Aşağı doğru pozitif, merkez sıfır |
ty_nocross | Hedefin merkezinin ana piksele göre Y koordinatı (derece cinsinden). Sağa doğru pozitif, merkez sıfır |
typ | Hedefin merkezinin artı işaretine göre Y koordinatı (piksel cinsinden). Aşağı doğru pozitif, merkez sıfır |
pts | Köşeler dizisi (piksel cinsinden) [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
}