NetworkTables API
Limelight OS, NetworkTables 4 İstemcisi özelliğine sahiptir. Ayarlar arayüzünde yapılandırılan Takım Numarası / ID'ye göre FRC Robotlarında çalışan NetworkTables 4 Sunucusuna otomatik olarak bağlanır.
Tüm veriler, cihaz adıyla eşleşen bir tabloya yayınlanır (örn. "limelight"). Kameranıza bir hostname / takma ad atanmışsa, tablo adı tam limelight adıyla eşleşecektir (örn. "limelight-top").
LimelightLib WPIJava ve LimelightLib WPICPP, Limelight cihazlarıyla NetworkTables üzerinden iletişim kurar.
Temel Hedefleme Verileri
Aşağıdaki kodu kullanın:
- Java
- LabView
- C++
- Python
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<degiskenadi>").getDouble(0);

nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumber("<degiskenadi>",0.0);
NetworkTables.getTable("limelight").getNumber('<degiskenadi>');
bu verileri almak için:
| anahtar | tür | açıklama |
|---|---|---|
| tv | int | Geçerli hedef varsa 1. Geçerli hedef yoksa 0 |
| tx | double | Artı İşaretinden Hedefe Yatay Ofset (LL1: -27 derece ile 27 derece arası / LL2: -29.8 ile 29.8 derece arası) |
| ty | double | Artı İşaretinden Hedefe Dikey Ofset (LL1: -20.5 derece ile 20.5 derece arası / LL2: -24.85 ile 24.85 derece arası) |
| txnc | double | Ana Pikselden Hedefe Yatay Ofset (derece) |
| tync | double | Ana Pikselden Hedefe Dikey Ofset (derece) |
| ta | double | Hedef Alanı (görüntünün %0'ı ile %100'ü arası) |
| tl | double | Pipeline'ın gecikme katkısı (ms). Toplam gecikme için "cl" ile toplayın. |
| cl | double | Yakalama pipeline gecikmesi (ms). Sensörün orta satırının pozlamasının bitiminden izleme pipeline'ının başlangıcına kadar geçen süre. |
| t2d | double | Eşleştirilmiş zaman damgası istatistikleri için çeşitli değerler içeren dizi: [targetValid, targetCount, targetLatency, captureLatency, tx, ty, txnc, tync, ta, tid, targetClassIndexDetector , targetClassIndexClassifier, targetLongSidePixels, targetShortSidePixels, targetHorizontalExtentPixels, targetVerticalExtentPixels, targetSkewDegrees] |
| getpipe | int | Kameranın gerçek aktif pipeline indeksi (0 .. 9) |
| getpipetype | string | Pipeline Türü örn. "pipe_color" |
| json | string | Hedefleme sonuçlarının tam JSON dökümü. 'output' sekmesinde pipeline başına etkinleştirilmelidir |
| tclass | string | Birincil sinir ağı dedektör sonucunun veya sinir ağı sınıflandırıcı sonucunun sınıf adı |
| tc | doubleArray | Artı işareti bölgesinin altındaki ortalama HSV rengini (3x3 piksel bölgesi) NumberArray olarak alın |
| hb | double | Kalp atışı değeri. Her karede bir artar, 2 milyarda sıfırlanır |
| hw | doubleArray | Donanım metrikleri [fps, cpu sıcaklığı, ram kullanımı, sıcaklık] |
| crosshairs | doubleArray | 2D Artı İşaretleri [cx0, cy0, cx1, cy1] |
| tcclass | string | Sınıflandırıcı pipeline'ının hesaplanan sınıf adı |
| tdclass | string | Dedektör pipeline'ının birincil tespitinin adı |
AprilTag ve 3D Verileri
Aşağıdaki kodu kullanın:
- Java
- C++
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<degiskenadi>").getDoubleArray(new double[6]);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumberArray("<degiskenadi>",std::vector<double>(6));
bu verileri almak için:
| anahtar | tür | açıklama |
|---|---|---|
| botpose | doubleArray | Saha koordinat sisteminde robot dönüşümü. Öteleme (X,Y,Z) metre cinsinden, Dönme(Roll,Pitch,Yaw) derece cinsinden, toplam gecikme (cl+tl), etiket sayısı, etiket aralığı, kameradan ortalama etiket mesafesi, ortalama etiket alanı (görüntü yüzdesi) |
| botpose_wpiblue | doubleArray | Saha koordinat sisteminde robot dönüşümü (mavi sürücü istasyonu WPILIB orijini). Öteleme (X,Y,Z) metre cinsinden, Dönme(Roll,Pitch,Yaw) derece cinsinden, toplam gecikme (cl+tl), etiket sayısı, etiket aralığı, kameradan ortalama etiket mesafesi, ortalama etiket alanı (görüntü yüzdesi) |
| botpose_wpired | doubleArray | Saha koordinat sisteminde robot dönüşümü (kırmızı sürücü istasyonu WPILIB orijini). Öteleme (X,Y,Z) metre cinsinden, Dönme(Roll,Pitch,Yaw) derece cinsinden, toplam gecikme (cl+tl), etiket sayısı, etiket aralığı, kameradan ortalama etiket mesafesi, ortalama etiket alanı (görüntü yüzdesi) |
| botpose_orb | doubleArray | Saha koordinat sisteminde robot dönüşümü (Megatag2). Öteleme (X,Y,Z) metre cinsinden, Dönme(Roll,Pitch,Yaw) derece cinsinden, toplam gecikme (cl+tl), etiket sayısı, etiket aralığı, kameradan ortalama etiket mesafesi, ortalama etiket alanı (görüntü yüzdesi) |
| botpose_orb_wpiblue | doubleArray | Saha koordinat sisteminde robot dönüşümü (Megatag2) (mavi sürücü istasyonu WPILIB orijini). Öteleme (X,Y,Z) metre cinsinden, Dönme(Roll,Pitch,Yaw) derece cinsinden, toplam gecikme (cl+tl), etiket sayısı, etiket aralığı, kameradan ortalama etiket mesafesi, ortalama etiket alanı (görüntü yüzdesi) |
| botpose_orb_wpired | doubleArray | Saha koordinat sisteminde robot dönüşümü (Megatag2) (kırmızı sürücü istasyonu WPILIB orijini). Öteleme (X,Y,Z) metre cinsinden, Dönme(Roll,Pitch,Yaw) derece cinsinden, toplam gecikme (cl+tl), etiket sayısı, etiket aralığı, kameradan ortalama etiket mesafesi, ortalama etiket alanı (görünt ü yüzdesi) |
| camerapose_targetspace | doubleArray | Görünümdeki birincil AprilTag'in koordinat sisteminde kameranın 3D dönüşümü (dizi (6)) [tx, ty, tz, pitch, yaw, roll] (metre, derece) |
| targetpose_cameraspace | doubleArray | Kamera koordinat sisteminde görünümdeki birincil AprilTag'in 3D dönüşümü (dizi (6)) [tx, ty, tz, pitch, yaw, roll] (metre, derece) |
| targetpose_robotspace | doubleArray | Robot koordinat sisteminde görünümdeki birincil AprilTag'in 3D dönüşümü (dizi (6)) [tx, ty, tz, pitch, yaw, roll] (metre, derece) |
| botpose_targetspace | doubleArray | Görünümdeki birincil AprilTag'in koordinat sisteminde robotun 3D dönüşümü (dizi (6)) [tx, ty, tz, pitch, yaw, roll] (metre, derece) |
| camerapose_robotspace | doubleArray | Robot koordinat sisteminde kameranın 3D dönüşümü (dizi (6)) |
| tid | int | Görünümdeki birincil AprilTag'in ID'si |
| stddevs | doubleArray | MegaTag Standart Sapmaları [MT1x, MT1y, MT1z, MT1roll, MT1pitch, MT1Yaw, MT2x, MT2y, MT2z, MT2roll, MT2pitch, MT2yaw] |
| camerapose_robotspace_set | doubleArray | Robot koordinat sisteminde kameranın pozisyonunu AYARLA. |
| priorityid | int | tx/ty hedefleme için gerekli ID'yi AYARLA. Diğer hedefleri yoksay. Lokalizasyonu etkilemez |
| robot_orientation_set | doubleArray | Robot Yönelimini ve açısal hızları derece ve saniyede derece cinsinden AYARLA [yaw,yawrate,pitch,pitchrate,roll,rollrate] |
| fiducial_id_filters_set | doubleArray | Lokalizasyon için geçerli fiducial id'lerini geçersiz kıl (dizi) |
| fiducial_offset_set | doubleArray | 3D İlgi Noktası Ofsetini AYARLA [x,y,z] |
Kamera Kontrolleri
Aşağıdaki kodu kullanın:
- Java
- LabView
- C++
- Python
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<degiskenadi>").setNumber(<deger>);

nt::NetworkTableInstance::GetDefault().GetTable("limelight")->PutNumber("<degiskenadi>",<deger>);
NetworkTables.getTable("limelight").putNumber('<degiskenadi>',<deger>)
bu verileri ayarlamak için:
| ledMode | Limelight'ın LED durumunu ayarlar |
|---|---|
| [0] | mevcut pipeline'da ayarlanan LED Modunu kullan |
| [1] | zorla kapat |
| [2] | zorla yanıp sön |
| [3] | zorla aç |
| pipeline | Limelight'ın mevcut pipeline'ını ayarlar |
|---|---|
| 0 .. 9 | Pipeline 0..9'u seç |
| stream | Limelight'ın yayın modunu ayarlar |
|---|---|
| 0 | Standart - Limelight'a bir webcam bağlıysa yan yana yayınlar |
| 1 | PiP Ana - İkincil kamera yayını birincil kamera yayınının sağ alt köşesine yerleştirilir |
| 2 | PiP İkincil - Birincil kamera yayını ikincil kamera yayınının sağ alt köşesine yerleştirilir |
| crop | (Dizi) Kırpma dikdörtgenini ayarlar. Pipeline, web arayüzünde varsayılan kırpma dikdörtgenini kullanmalıdır. Dizi tam olarak 4 giriş içermelidir. |
|---|---|
| [0] | X0 - Kırpma dikdörtgeninin Min veya Max X değeri (-1 ile 1 arası) |
| [1] | X1 - Kırpma dikdörtgeninin Min veya Max X değeri (-1 ile 1 arası) |
| [2] | Y0 - Kırpma dikdörtgeninin Min veya Max Y değeri (-1 ile 1 arası) |
| [3] | Y1 - Kırpma dikdörtgeninin Min veya Max Y değeri (-1 ile 1 arası) |
| throttle_set | (int) Devre dışıyken bunu 100-200 olarak ayarlamanızı öneririz. Sıcaklık artışını azaltmak için işlenen kareler arasında atlanacak kare sayısını ayarlar. Atlanan kareler sırasında çıktılar sıfırlanmaz. |
|---|
- Java
- C++
double[] cropValues = new double[4];
cropValues[0] = -1.0;
cropValues[1] = 1.0;
cropValues[2] = -1.0;
cropValues[3] = 1.0;
NetworkTableInstance.getDefault().getTable("limelight").getEntry("crop").setDoubleArray(cropValues);
wip
IMU Kontrolleri
| anahtar | tür | açıklama |
|---|---|---|
| imumode_set | int | imumode'u ayarla. 0 - harici imu kullan, 1 - harici imu kullan, dahili imu'yu başlat, 2 - dahili kullan, 3 - MT1 destekli yakınsama ile dahili kullan, 4 - harici IMU destekli yakınsama ile dahili IMU kullan |
| imuassistalpha_set | double | Tamamlayıcı filtre alpha / gücü. Daha yüksek değerler dahili imu'nun yardım kaynağına daha hızlı yakınsamasına neden olur. Varsayılan değer düşük bir değer olan 0.001 olarak ayarlanmıştır çünkü artık dahili IMU'ya daha fazla güveniyoruz. Yardım modları, dahili imu'yu seçilen yardım kaynağına çok nazikçe "çekmek" için tasarlanmıştır. |
Python
Python scriptleri rastgele gelen ve giden verilere izin verir.
| llpython | Python scriptleri tarafından gönderilen NumberArray. Bu, robot kodu içinden erişilebilir. |
| llrobot | Robot tarafından gönderilen NumberArray. Bu, python SnapScripts içinden erişilebilir. |
Ham Veriler
Köşeler:
Köşe koordinatlarını yayınlamak için "Output" sekmesinde "send contours"u etkinleştirin:
| tcornxy | Köşe koordinatlarının sayı dizisi [x0,y0,x1,y1......] |
Ham Hedefler:
Limelight, gruplama modunuzdan etkilenmeyen üç ham kontur NetworkTables'a gönderir. Yani, pipeline parametrelerinizle filtrelenirler, ancak asla gruplanmazlar. X ve Y, derece yerine normalleştirilmiş ekran alanında (-1 ile 1 arası) döndürülür.
| rawtargets | [txnc,tync,ta,txnc2,tync2,ta2....] |
Ham Fiducial'lar:
Tüm geçerli (filtrelenmemiş) fiducial'ları al
| rawfiducials | [id, txnc, tync, ta, distToCamera, distToRobot, ambiguity, id2.....] |
Ham Tespitler:
Tüm geçerli (filtrelenmemiş) sinir ağı tespit sonuçlarını al
| rawdetections | [id, txnc, tync, ta, corner0x, corner0y, corner1x, corner1y, corner2x, corner2y, corner3x, corner3y, id2.....] |
Ham Barkodlar:
Tüm geçerli (filtrelenmemiş) barkod sonuçlarını al
| rawbarcodes | barkod verilerinin string dizisi |