Ana içeriğe geç

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ı
tlHedefleme gecikmesi (bu karede izleme döngüsü tarafından tüketilen milisaniye)
clYakalama gecikmesi (orta satırın pozlamasının sonu ile izleme döngüsünün başlangıcı arasındaki milisaniye)
txArtı İşaretinden Hedefe Yatay Ofset (LL1: -27 derece ile 27 derece / LL2: -29.8 ile 29.8 derece)
tyArtı İşaretinden Hedefe Dikey Ofset (LL1: -20.5 derece ile 20.5 derece / LL2: -24.85 ile 24.85 derece)
txncAna Pikselden Hedefe Yatay Ofset (derece)
tyncAna Pikselden Hedefe Dikey Ofset (derece)
taBozulmamış, normalleştirilmiş hedef alanı (0-100)
PythonOutPython SnapScript Pipeline'larından çıktı verileri
stdev_mt1MT1 Standart Sapma [x, y, z, yuvarlanma, yunuslama, sapma] (metre, derece)
stdev_mt2MT2 Standart Sapma [x, y, z, yuvarlanma, yunuslama, sapma] (metre, derece)
pIDMevcut Pipeline indeksi
pTYPEMevcut Pipeline Türü örn. "pipe_color"
tsBaşlangıçtan itibaren milisaniye cinsinden zaman damgası
vGeçerlilik göstergesi. 1 = geçerli hedefler, 0 = geçerli hedef yok
botposeBotpose (MegaTag): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece)
botpose_wpiredBotpose (MegaTag, WPI Kırmızı sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece)
botpose_wpiblueBotpose (MegaTag, WPI Mavi sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece)
botpose_orbBotpose (MegaTag2): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece)
botpose_orb_wpiredBotpose (MegaTag2, WPI Kırmızı sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece)
botpose_orb_wpiblueBotpose (MegaTag2, WPI Mavi sürücü istasyonu): x,y,z, yuvarlanma, yunuslama, sapma (metre, derece)
botpose_avgareaBotpose hesaplamak için kullanılan etiketlerin ortalama alanı
botpose_avgdistBotpose hesaplamak için kullanılan etiketler arasındaki maksimum mesafe (metre)
botpose_spanBotpose hesaplamak için kullanılan etiketler arasındaki maksimum mesafe (metre)
botpose_tagcountBotpose hesaplamak için kullanılan etiket sayısı
RetroRenk/Retroreflektif pipeline sonuçları dizisi
FiducialAprilTag pipeline sonuçları dizisi
DetectorSinir Dedektörü pipeline sonuçları dizisi
ClassifierSınıflandırıcı pipeline sonuçları dizisi
BarcodeBarkod 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_tsSolvepnp ile hesaplanan hedef uzayındaki kamera pozu (x,y,z,rx,ry,rz)
t6r_fsSolvepnp ile hesaplanan saha uzayındaki robot pozu (x,y,z,rx,ry,rz)
t6r_tsSolvepnp ile hesaplanan hedef uzayındaki robot pozu (x,y,z,rx,ry,rz)
t6t_csSolvepnp ile hesaplanan kamera uzayındaki hedef pozu (x,y,z,rx,ry,rz)
t6t_rsSolvepnp ile hesaplanan robot uzayındaki hedef pozu (x,y,z,rx,ry,rz)
taHedefin görüntüdeki boyutunun yüzdesi (0-1)
txHedefin merkezinin artı işaretine göre derece cinsinden X koordinatı. Sağa pozitif, merkez sıfır
tx_nocrossHedefin merkezinin ana piksele göre derece cinsinden X koordinatı. Sağa pozitif, merkez sıfır
txpHedefin merkezinin artı işaretine göre piksel cinsinden X koordinatı. Sağa pozitif, merkez sıfır
tyHedefin merkezinin artı işaretine göre derece cinsinden Y koordinatı. Aşağı pozitif, merkez sıfır
ty_nocrossHedefin merkezinin ana piksele göre derece cinsinden Y koordinatı. Sağa pozitif, merkez sıfır
typHedefin merkezinin artı işaretine göre piksel cinsinden Y koordinatı. Aşağı pozitif, merkez sıfır
ptsKöş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ı
fidFiducial etiket ID'si
famFiducial Ailesi (16H5C, 25H9C, 36H11C, vb)
ptsBireysel köşe noktalarını döndürür. Etkinleştirilmesi gerekir.
skewŞu anda kullanılmıyor
t6c_tsBu fiducial tarafından hesaplanan hedef uzayındaki Kamera Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6r_fsBu fiducial tarafından hesaplanan saha uzayındaki Robot Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6r_fs_orbBu fiducial tarafından hesaplanan saha uzayındaki Robot Pozu (Megatag2) (x,y,z,pitch,yaw,roll) (metre, derece)
t6r_tsBu fiducial tarafından hesaplanan hedef uzayındaki Robot Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6t_csBu fiducial tarafından hesaplanan kamera uzayındaki Hedef Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6t_rsBu fiducial tarafından hesaplanan robot uzayındaki Hedef Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
taHedefin görüntüdeki boyutu (yüzde olarak, 0-1)
txHedefin merkezinin artı işaretine göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır
tx_nocrossHedefin merkezinin ana piksele göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır
txpHedefin merkezinin artı işaretine göre X koordinatı (piksel). Sağa-pozitif, merkez-sıfır
tyHedefin merkezinin artı işaretine göre Y koordinatı (derece). Aşağı-pozitif, merkez-sıfır
ty_nocrossHedefin merkezinin ana piksele göre Y koordinatı (derece). Sağa-pozitif, merkez-sıfır
typHedefin merkezinin artı işaretine göre Y koordinatı (piksel). Aşağı-pozitif, merkez-sıfır
ptsKöş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
classIDSınıf ID tamsayısı
confTahmin güven değeri
ptsKöş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.
taHedefin görüntüdeki boyutu (0-1 arası yüzde olarak)
txHedefin merkezinin artı işaretine göre derece cinsinden X-koordinatı. Sağa-pozitif, merkez-sıfır
tx_nocrossHedefin merkezinin ana piksele göre derece cinsinden X-koordinatı. Sağa-pozitif, merkez-sıfır
txpHedefin merkezinin artı işaretine göre piksel cinsinden X-koordinatı. Sağa-pozitif, merkez-sıfır
tyHedefin merkezinin artı işaretine göre derece cinsinden Y-koordinatı. Aşağı-pozitif, merkez-sıfır
ty_nocrossHedefin merkezinin ana piksele göre derece cinsinden Y-koordinatı. Sağa-pozitif, merkez-sıfır
typHedefin merkezinin artı işaretine göre piksel cinsinden Y-koordinatı. Aşağı-pozitif, merkez-sıfır
ptsKöş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
classIDSınıf ID tamsayısı
confTahmin 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ı
famBarkod Ailesi örn. "qr"
dataString olarak çözümlenmiş barkod verisi
taHedefin görüntüye göre boyutu (0-1 arası yüzde)
txHedefin merkezinin artı işaretine göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır
tx_nocrossHedefin merkezinin ana piksele göre X koordinatı (derece). Sağa-pozitif, merkez-sıfır
txpHedefin merkezinin artı işaretine göre X koordinatı (piksel). Sağa-pozitif, merkez-sıfır
tyHedefin merkezinin artı işaretine göre Y koordinatı (derece). Aşağı-pozitif, merkez-sıfır
ty_nocrossHedefin merkezinin ana piksele göre Y koordinatı (derece). Sağa-pozitif, merkez-sıfır
typHedefin merkezinin artı işaretine göre Y koordinatı (piksel). Aşağı-pozitif, merkez-sıfır
ptsKöş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
}