Ana içeriğe geç

JSON Sonuçları Spesifikasyonu

Limelight'ın JSON sonuçları çıktısı, hedefleme sonuçlarını içeren dizilerin bir 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 durumu için mükemmeldir.

Aynı JSON sonuçları çı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 Ağı 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 tarafından hesaplanan hedef uzayındaki Kamera Pozu (x,y,z,rx,ry,rz)
t6r_fssolvepnp tarafından hesaplanan saha uzayındaki Robot Pozu (x,y,z,rx,ry,rz)
t6r_tssolvepnp tarafından hesaplanan hedef uzayındaki Robot Pozu (x,y,z,rx,ry,rz)
t6t_cssolvepnp tarafından hesaplanan kamera uzayındaki Hedef Pozu (x,y,z,rx,ry,rz)
t6t_rssolvepnp tarafından hesaplanan robot uzayındaki Hedef Pozu (x,y,z,rx,ry,rz)
taGörüntünün yüzdesi olarak hedefin boyutu (0-1)
txHedefin merkezinin artı işaretine göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
tx_nocrossHedefin merkezinin ana piksele göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
txpHedefin merkezinin artı işaretine göre piksel cinsinden X-koordinatı. Sağ-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ğ-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 Pipeline'lar 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 kimliği
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ünün yüzdesi olarak boyutu (0-1)
txHedefin merkezinin artı işaretine göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
tx_nocrossHedefin merkezinin ana piksele göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
txpHedefin merkezinin artı işaretine göre piksel cinsinden X-koordinatı. Sağ-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ğ-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
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
}

Sinir Ağı 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 kimliği tamsayısı
confTahminin güven değeri
ptsPiksel cinsinden [x,y] dizisi olarak bireysel köşe noktaları. Merkez-sıfır, sağ ve aşağı pozitif. Etkinleştirilmesi gerekir.
taHedefin görüntünün yüzdesi olarak boyutu (0-1)
txHedefin merkezinin artı işaretine göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
tx_nocrossHedefin merkezinin ana piksele göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
txpHedefin merkezinin artı işaretine göre piksel cinsinden X-koordinatı. Sağ-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ğ-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 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
classIDSınıf kimliği tamsayısı
confTahminin 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"
dataÇözümlenmiş barkod verisi (dize olarak)
taHedefin görüntünün yüzdesi olarak boyutu (0-1)
txHedefin merkezinin artı işaretine göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
tx_nocrossHedefin merkezinin ana piksele göre derece cinsinden X-koordinatı. Sağ-pozitif, merkez-sıfır
txpHedefin merkezinin artı işaretine göre piksel cinsinden X-koordinatı. Sağ-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ğ-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
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
}