Ana içeriğe geç

JSON Sonuç 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 platformda herhangi bir dilde kolayca ayrıştırılabilir, 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 bitiminden izleme döngüsünün başlangıcına kadar geçen milisaniye)
txArtı İşaretinden Hedefe Yatay Ofset (LL1: -27 derece ile 27 derece arası / LL2: -29.8 ile 29.8 derece arası)
tyArtı İşaretinden Hedefe Dikey Ofset (LL1: -20.5 derece ile 20.5 derece arası / LL2: -24.85 ile 24.85 derece arası)
txncAna Pikselden Hedefe Yatay Ofset (derece)
tyncAna Pikselden Hedefe Dikey Ofset (derece)
taHedefin düzeltilmemiş, normalize edilmiş alanı (0-100)
PythonOutPython SnapScript Pipeline'larından çıktı verileri
stdev_mt1MT1 Standart Sapma [x, y, z, roll, pitch, yaw] (metre, derece)
stdev_mt2MT2 Standart Sapma [x, y, z, roll, pitch, yaw] (metre, derece)
pIDMevcut Pipeline indeksi
pTYPEMevcut Pipeline Türü örn. "pipe_color"
tsAçılıştan itibaren milisaniye cinsinden zaman damgası.
vGeçerlilik göstergesi. 1 = geçerli hedefler, 0 = geçerli hedef yok
botposeBotpose (MegaTag): x,y,z, roll, pitch, yaw (metre, derece)
botpose_wpiredBotpose (MegaTag, WPI Kırmızı sürücü istasyonu): x,y,z, roll, pitch, yaw (metre, derece)
botpose_wpiblueBotpose (MegaTag, WPI Mavi sürücü istasyonu): x,y,z, roll, pitch, yaw (metre, derece)
botpose_orbBotpose (MegaTag2): x,y,z, roll, pitch, yaw (metre, derece)
botpose_orb_wpiredBotpose (MegaTag2, WPI Kırmızı sürücü istasyonu): x,y,z, roll, pitch, yaw (metre, derece)
botpose_orb_wpiblueBotpose (MegaTag2, WPI Mavi sürücü istasyonu): x,y,z, roll, pitch, yaw (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ç dizisi
FiducialAprilTag pipeline sonuç dizisi
DetectorSinir Ağı Dedektör pipeline sonuç dizisi
ClassifierSınıflandırıcı pipeline sonuç dizisi
BarcodeBarkod pipeline sonuç 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ında Kamera Pozu (x,y,z,rx,ry,rz)
t6r_fssolvepnp tarafından hesaplanan saha uzayında Robot Pozu (x,y,z,rx,ry,rz)
t6r_tssolvepnp tarafından hesaplanan hedef uzayında Robot Pozu (x,y,z,rx,ry,rz)
t6t_cssolvepnp tarafından hesaplanan kamera uzayında Hedef Pozu (x,y,z,rx,ry,rz)
t6t_rssolvepnp tarafından hesaplanan robot uzayında Hedef Pozu (x,y,z,rx,ry,rz)
taHedefin görüntünün yüzdesi olarak boyutu (0-1)
txArtı işaretine göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tx_nocrossAna piksele göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
txpArtı işaretine göre hedefin merkezinin piksel cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tyArtı işaretine göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ty_nocrossAna piksele göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-sağ, merkez-sıfır
typArtı işaretine göre hedefin merkezinin piksel cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ptsKöşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmelidir
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 ID'si
famFiducial Ailesi (16H5C, 25H9C, 36H11C, vb.)
ptsBireysel köşe noktalarını döndür. Etkinleştirilmelidir.
skewŞu anda kullanılmıyor
t6c_tsBu fiducial tarafından hesaplanan hedef uzayında Kamera Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6r_fsBu fiducial tarafından hesaplanan saha uzayında Robot Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6r_fs_orbBu fiducial tarafından hesaplanan saha uzayında Robot Pozu (Megatag2) (x,y,z,pitch,yaw,roll) (metre, derece)
t6r_tsBu fiducial tarafından hesaplanan hedef uzayında Robot Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6t_csBu fiducial tarafından hesaplanan kamera uzayında Hedef Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
t6t_rsBu fiducial tarafından hesaplanan robot uzayında Hedef Pozu (x,y,z,pitch,yaw,roll) (metre, derece)
taHedefin görüntünün yüzdesi olarak boyutu (0-1)
txArtı işaretine göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tx_nocrossAna piksele göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
txpArtı işaretine göre hedefin merkezinin piksel cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tyArtı işaretine göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ty_nocrossAna piksele göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-sağ, merkez-sıfır
typArtı işaretine göre hedefin merkezinin piksel cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ptsKöşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmelidir
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
}

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
classIDClassID tamsayısı
confTahminin güven değeri
ptsPiksel cinsinden [x,y] dizisi olarak bireysel köşe noktaları. Merkez-sıfır, pozitif sağ ve aşağı. Etkinleştirilmelidir.
taHedefin görüntünün yüzdesi olarak boyutu (0-1)
txArtı işaretine göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tx_nocrossAna piksele göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
txpArtı işaretine göre hedefin merkezinin piksel cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tyArtı işaretine göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ty_nocrossAna piksele göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-sağ, merkez-sıfır
typArtı işaretine göre hedefin merkezinin piksel cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ptsKöşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmelidir
Dedektör Pipeline'ları 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
classIDClassID tamsayısı
confTahminin güven değeri
Sınıflandırıcı Pipeline'ları 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ülmüş barkod verisi dize olarak
taHedefin görüntünün yüzdesi olarak boyutu (0-1)
txArtı işaretine göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tx_nocrossAna piksele göre hedefin merkezinin derece cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
txpArtı işaretine göre hedefin merkezinin piksel cinsinden X koordinatı. Pozitif-sağ, merkez-sıfır
tyArtı işaretine göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ty_nocrossAna piksele göre hedefin merkezinin derece cinsinden Y koordinatı. Pozitif-sağ, merkez-sıfır
typArtı işaretine göre hedefin merkezinin piksel cinsinden Y koordinatı. Pozitif-aşağı, merkez-sıfır
ptsKöşeler dizisi (piksel) [x0,y0,x1,y1.....]. Çıktı sekmesinde etkinleştirilmelidir
Barkod Pipeline'ları 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
}