Ana içeriğe geç

Yazılım Değişiklik Günlüğü & Geri Bildirim

Sorunları ve özellik isteklerini e-posta yoluyla veya Limelight Geri Bildirim Deposu'na gönderin

Limelight OS 2024.10.2 (28/10/24)

Python Snapscript Düzeltmesi (KATKI - FTC TAKIM 23251 TRIPLE FAULT)

  • Control Hub ile Limelight3A kullanırken Python Çıktıları artık donmayacak
  • Python pipeline'ları arasında geçiş yaparken Python Çıktıları artık donmayacak

MT2 Uç Durumu

https://github.com/LimelightVision/limelight-feedback/issues/23

  • Robot olmadan MT2'yi test ederken, geometrik bir imkansızlık oluşturmak kolaydır.
  • Bu uç durum mt2 botpose'unu sıfırlamıyordu - kamera pozisyonunu sıfırlıyordu.
  • Bu uç durum tespit edildiğinde robot artık (0,0,0) konumuna yerleştirilecek

Statik IP Adresleme

https://github.com/LimelightVision/limelight-feedback/issues/25

  • IP Adresi ayarlayıcısına, .1-.10 veya .20-.255 ile biten adreslerin FMS veya diğer cihazlarla çakışabileceğine dair bir uyarı eklendi
  • 2024.10.1'de, adresleme şeması "otomatik" olarak ayarlandığında kullanıcı arayüzü bazen statik bir IP'nin yapılandırıldığını öneriyordu

STDDevs NetworkTables

https://github.com/LimelightVision/limelight-feedback/issues/24

  • NetworkTables'daki "stddevs", mt1 ve mt2 için tüm standart sapmaları içerir (double dizi, 12 eleman)

Model Yükleme Uç Durumu

  • Bir sınıflandırıcı modeli bir dedektör pipeline'ına yüklenirse, görüntüde "check model" görüntülenecek
  • Bir dedektör modeli bir sınıflandırıcı pipeline'ına yüklenirse, görüntüde "check model" görüntülenecek

Limelight OS 2024.10.1 (15/09/24)

Limelight 3A Güncellemeleri

  • Varsayılan renk dengesi değerleri güncellendi
  • Varsayılan AprilTag boyutu yapılandırması 101.6 mm olarak güncellendi
  • Varsayılan video akışı kare hızı 30FPS'ye düşürüldü
  • Video akışı sıkıştırması akış bit hızını düşürmek için hafifçe artırıldı

AprilTag Boyut Uyarısı

  • Yapılandırılmış AprilTag boyutu yüklenen saha haritasındaki boyutlarla eşleşmediğinde saha alanı görselleştiricisine bir uyarı eklendi.
Örnek banner

CameraPose_RobotSpace Hata Düzeltmesi

  • Arayüzün yapılandırılmış Kamera Konumunun NetworkTables/LimelightLib/REST'ten geçersiz kılınması tekrar düzgün çalışıyor.

Limelight OS 2024.10 (9/4/24)

FTC için Limelight 3A Desteği

  • Limelight3A tam olarak desteklenmektedir
  • 3A hem FTC hem de FRC'de kullanılabilir

AprilTag Harita Güncellemeleri

  • Harita düzenleyici artık standart ve elmas FTC harita oluşturmayı destekliyor
  • LLOS web arayüzü, yüklenen haritaya göre doğru saha tipini otomatik olarak gösterecek
  • Tüm araçlar ve arayüzlerdeki saha görselleştiricileri ittifak bölgelerini ve FTC karo ızgaralarını gösteriyor
  • 3D görselleştirici performansı iyileştirildi

ControlHub ve RoboRio'da USB Limelight Desteği

  • FTC takımları Control Hub'da tek bir USB özellikli Limelight kullanabilir
  • FRC takımları RoboRio'da 16'ya kadar USB özellikli Limelight kullanabilir. USB Limelight'lar tıpkı ethernet Limelight'lar gibi networktables'ı otomatik olarak doldurur
    • Birden fazla USB Limelight kullanmak için, her LL'ye benzersiz bir USB indeksi ve benzersiz bir ana bilgisayar adı verin

USB Bağlantı İyileştirmeleri

  • MacOS artık internet erişimi için USB Ethernet Limelight arayüzünü kullanmıyor
  • Windows artık internet erişimi için USB Ethernet Limelight arayüzünü kullanmaya çalışmıyor

REST API Güncellemeleri

  • Update-robotorientation POST isteği düzeltildi
  • MT2 artık NetworkTables olmadan tamamen erişilebilir
  • Update-robotorientation rotası kullanıldıktan sonra, NetworkTables yönlendirme güncellemeleri yeniden başlatılana kadar devre dışı bırakılır

Limelight OS 2024.9.1 (7/7/24)

  • Harita Oluşturma Aracı artık WPILib .json apriltag düzenlerini kabul ediyor/dönüştürüyor
  • Python Snapscripts'e AprilTag3 eklendi (from apriltag import apriltag)
  • Örnekler github deposunda örneği görün
  • Windows'ta USB bağlantı ağ geçidi sorunu düzeltildi.

mozaik ekran görüntüsü:

Limelight OS 2024.9 (7/5/24)

MegaTag Yükseltmeleri

  • Limelight OS, NetworkTables 4.0'a geçiş yaptı

  • MegaTag2 artık roboRIO'dan zaman damgalı IMU güncellemelerini almak için NT4'ün getAtomic() özelliğini kullanıyor.

  • Zaman damgalı görüntü karelerimiz, interpolasyon yapılmadan önce en alakalı iki IMU örneğiyle eşleştiriliyor.

  • NT4 flush() LimelightLib'e eklendi. Eski Limelight OS sürümlerine Flush() eklenmesi, 2024.9 performansına oldukça yakın sonuçlar verecektir, ancak NT4 doğruluğun her zaman yüksek olmasını sağlar.

  • MT2 görselleştirici robotu artık yeşil tampona sahip ve MT1'in görselleştirici robotu sarı tampon kullanıyor.

  • Metrikler artık daraltılabilir ve sanal robotlar gizlenebilir.

  • Aşağıdaki video, robot tarafında flush() kullanan 2024.9'un MegaTag 2'sinin (yeşil robot), Flush() kullanmayan 2024.5'in MegaTag2'sine (kırmızı robot) göre nasıl daha sağlam olduğunu gösteriyor

USB ID ve Yeni USB IP Adresleri

  • Herhangi bir sistemde birden fazla USB Limelight kullanmak için ayarlar sayfasından "USB ID"yi ayarlayın.
  • Sisteminizde görünen USB-Ethernet arayüzü, USB ID'ye göre belirlenen bir IP adresi kullanacaktır
  • Linux/Android/Mac Sistemleri artık varsayılan olarak 172.29.0.0/24 alt ağını kullanacak
  • Windows sistemleri artık varsayılan olarak 172.28.0.0/24 alt ağını kullanacak
  • USBID ayarlanmışsa, alt ağ Linux/Android/Mac için 172.29.(USBID).0/24'e ve Windows için 172.28.(USBID).0/24'e değişir
  • Artık ana bilgisayar adlarını ve USB ID'lerini ayarlayarak tek bir USB Hub'a dört Limelight cihazı bağlayabilirsiniz

CPU Sinir Ağı Sınıflandırıcıları

  • Google Coral olmadan sinir ağı sınıflandırması etkinleştirmek için bir CPU .tflite sınıflandırıcısı yükleyin. LL3 varyantlarında 15-18 FPS bekleyebilirsiniz.
  • 2024.9 varsayılan bir CPU sınıflandırıcısı ile birlikte geliyor.
  • Bu özelliği etkinleştirmek için sınıflandırıcı çalışma zamanını "CPU" olarak ayarlayın

CPU Sinir Ağı Dedektörleri

  • Google Coral olmadan sinir ağı tespiti etkinleştirmek için bir CPU .tflite dedektörü yükleyin. LL3 varyantlarında 10 FPS bekleyebilirsiniz.
  • 2024.9 varsayılan bir CPU dedektörü ile birlikte geliyor.
  • Bu özelliği etkinleştirmek için dedektör çalışma zamanını "CPU" olarak ayarlayın

Limelight OS 2024.8 (7/3/24)

  • Json sonuç nesnesine python çıktısı (PythonOut), tx, ty, txnc, tync, ta eklendi
  • MT2 gecikme telafisi daha da iyileştirildi

Limelight OS 2024.7 (21.05.24)

  • Linux 6.6'ya yükseltme

Hata Düzeltmeleri

  • Görüntü işleme hattı dönüşümü düzeltildi
  • Kalibrasyon yüklemeleri, anlık görüntü yüklemeleri ve sinir ağı yüklemeleri düzeltildi

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

  • pip install limelightlib-python
  • Python kütüphanemiz, herhangi bir platformda USB ve Ethernet Limelights ile etkileşim kurmanıza olanak tanır.
  • Web arayüzü etkileşimi olmadan tam Limelight yapılandırmasına izin verir.
  • Pipeline'ları, sinir ağlarını, saha haritalarını vb. yükleyin
  • İsteğe bağlı "diske yazma" seçeneği ile herhangi bir pipeline parametresinde gerçek zamanlı değişiklikler yapın
  • Özel python giriş verilerini gönderin, robot yönelimini ayarlayın vb.

MegaTag2 Geliştirmeleri

  • MegaTag2 Gyro gecikme telafisi iyileştirildi. Yakında daha fazla iyileştirme bekleyin!
  • Arayüze "Gyro gecikme ayarı" kaydırıcısı eklendi. MegaTag 2 gecikme telafisini manuel olarak ayarlamak için, robotunuzu döndürebilir ve dönerken lokalizasyon sonuçları mükemmel olana kadar kaydırıcıyı ayarlayabilirsiniz.

Standart Sapma Metrikleri

  • 3D Saha görselleştirici artık MegaTag1 ve Megatag2 için x, y ve sapma açısı standart sapmalarını içeriyor.

Yeni "Odak" Pipeline Türü

  • "Odak" modundayken, bir akış kalitesi kaydırıcısına ve bir kırpma kutusu kaydırıcısına erişiminiz olacak
  • "Odak" puanını en üst düzeye çıkarmak için lensi döndürün.
  • Kameranız sabit bir konumdaysa, bu bir dakikadan az sürer. Sabit/monte edilmiş bir Limelight ile odaklama yapmanızı öneririz.

Yeni "Barkodlar" Pipeline Türü

  • 1280x800'de 50-60FPS Çoklu QR Kodu Algılama ve Çözümleme
  • 1280x800'de 50-60FPS Çoklu DataMatrix Algılama ve Çözümleme
  • 1280x800'de 30FPS Çoklu UPC, EAN, Code128 ve PDF417
  • Barkod veri dizeleri "rawbarcodes" nt dizisine gönderilir.
  • Barkodlar pipeline'ı tx, ty, ta, tcornxy vb. gibi tüm 2D metrikleri doldurur.

Tamamen Yeni REST API

  • https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
  • REST / HTTP API'miz sıfırdan yeniden oluşturuldu.
  • REST API, web arayüzü etkileşimi olmadan tam Limelight yapılandırmasına izin verir.
  • Pipeline'ları, sinir ağlarını, saha haritalarını vb. yükleyin
  • İsteğe bağlı "diske yazma" seçeneği ile herhangi bir pipeline parametresinde gerçek zamanlı değişiklikler yapın
  • Python giriş verilerini gönderin, robot yönelimini ayarlayın vb.

Arayüzden Kamera Yönlendirme Ayarının Kaldırılması (ÖNEMLİ DEĞİŞİKLİK)

  • Bu, "akış yönlendirme" seçeneği ile değiştirildi. Kalibrasyon ve hedefleme bu seçenekten asla etkilenmez.
  • Yeni seçenek sadece akışı etkiler. Baş Aşağı, 90 Derece Saat Yönünde, 90 Derece Saat Yönünün Tersine, Yatay Ayna ve Dikey Ayna
  • Takımların artık döndürülmüş kameraları kullanırken tx ve ty'yi gerektiği gibi manuel olarak tersine çevirmeleri gerekecek.

GRIP Desteğinin Kaldırılması (ÖNEMLİ DEĞİŞİKLİK)

"Sürücü" sıfır-işleme modunun kaldırılması (ÖNEMLİ DEĞİŞİKLİK)

  • Bu, "Vizör" pipeline türü ile değiştirildi

"Vizör" Pipeline türünün eklenmesi

  • Vizör pipeline'ı minimum gecikme için tüm işlemeyi devre dışı bırakır
  • Bu, takımların sadece görüntüleme modları için kendi "Sürücü" pipeline'larını tasarlamalarına olanak tanır

Pipeline Dosyaları artık JSON formatını kullanıyor (ÖNEMLİ DEĞİŞİKLİK)

  • Pipeline'lar hala .vpr dosya uzantısını kullanıyor
  • (2024.6'da bazı durumlarda bozuk) Arayüz, "yükle" düğmesini kullandığınızda pipeline'ları otomatik olarak JSON'a dönüştürecek.
  • (Tam işlevsel) Pipeline'larınızı yükseltmek için https://tools.limelightvision.io/pipeline-upgrade adresini de kullanabilirsiniz

Kalibrasyon Kullanıcı Deneyimi İyileştirmesi

  • Kalibrasyon ayarları artık önbelleğe alınıyor. Kalibrasyon yapmak istediğinizde her seferinde kalibrasyon ayarlarınızı girmeniz gerekmiyor.
  • Varsayılan kalibrasyon sözlüğü, Calib.io'dan önerilen 800x600mm kaba tahta ile çalışacak şekilde güncellendi.

Kalibrasyon Mozaiği

  • Daha önce, kalibrasyon görüntülerinin kalitesini belirlemek zordu
  • Kalibrasyon sekmesinde artık bir "Kalibrasyon Mozaiğini İndir" düğmesi var. Mozaik, her görüntünün kalibrasyonunuza tam olarak ne katkıda bulunduğunu gösterecektir.

mozaik ekran görüntüsü:

"Merkez" hedefleme bölgesi

  • Renk pipeline'ları ile nesne takibini iyileştirmek için "Çıktı" sekmesine merkez hedefleme modu eklendi

Dinamik 3D Ofset (NT: fiducial_offset_set)

  • Artık pipeline'ları değiştirmeden 3D Ofseti ayarlamak mümkün. Bu, "hedef noktanızın" mesafeye veya diğer özelliklere göre değişmesi gereken durumlar için kullanışlıdır.

Modbus Desteği Eklendi

  • Limelight OS artık denetim, lojistik ve endüstriyel uygulamalar için her zaman açık bir modbus sunucusuna sahip
  • Modbus kayıt özelliklerini burada görebilirsiniz: https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
  • Varsayılan modbus sunucu portu arayüzün ayarlar sekmesinden değiştirilebilir
  • Modbus ve snapscript python pipeline'ları sayesinde, çift yönlü iletişime sahip tamamen özel görüntü uygulamaları artık destekleniyor.

Özel NT sunucusu

  • Ayarlar sekmesi artık özel bir NT sunucusu girişi içeriyor.
  • Bu, bir PC'de çalışan bir cam NT sunucusu ve USB üzerinden iletişim kuran Limelight 3G'yi içeren yeni bir iş akışını mümkün kılıyor.

Rawfiducial değişiklikleri

  • Ham fiducial'ların "alan" değeri artık ~0-1 aralığında kalibre edilmiş, normalleştirilmiş bir değerdir

Tüm NetworkTables ve JSON Değişiklikleri

  • NT getpipetype eklendi - Mevcut pipeline türü dizesini alın (örn. pipe_color, pipe_fiducial)

  • NT tcclass eklendi - Sınıflandırıcı pipeline'ı algılanan sınıf adı

  • NT tdclass eklendi - Dedektör pipeline'ı algılanan sınıf adı

  • Garantili atomik 2d hedefleme için NT t2d eklendi - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]

  • NT tlong, tshort, thor, tvert ve ts kaldırıldı

  • NT 'crosshairs' dizisi eklendi [cx0,cy0,cx1,cy1]

  • NT cx0, cy0, cx1 ve cy1 kaldırıldı

  • NT rawbarcodes eklendi - Barkod verilerinin NT String Dizisi. 32'ye kadar giriş.

  • Tüm "raw" diziler 32'ye kadar hedef destekliyor (8'den yükseltildi)

  • fiducial_offset_set dinamik 3d Ofset ayarlayıcı eklendi

  • JSON üst düzey sonuca "pType" eklendi

  • JSON üst düzey sonuca "stdev_mt1" ve "stdev_mt2" eklendi (x,y,z,roll,pitch,yaw) (metre, derece)

Diğer Dosya Formatları ve JSON Dökümlerinde Değişiklikler

  • Kalibrasyon dosya formatı basitleştirildi. Eski kalibrasyonlar yükleme sırasında yeni formata otomatik olarak dönüştürülür
  • Sonuçlar ve Durum JSON dökümlerinden bir iç içe geçme katmanı kaldırıldı

Hata Düzeltmeleri

  • Daha önce, bir Sinir pipeline'ı aktifken Google Coral çıkarılırsa, pipeline kalıcı olarak "color/retro" moduna dönüyordu
    • Artık görüntüye "CHECK CORAL" veya "CHECK MODEL" yazdırılacak. Pipeline türü asla değişmeyecek
  • Daha önce, fiducial ID filtresinden başarıyla geçen etiketler bazen yeşil yerine kırmızı çerçeve ile çiziliyordu. Bu görselleştirme sorunu düzeltildi.
  • Apriltag pipeline'ları tcornxy NT dizisini doldurur
  • Apriltag pipeline'ları artık min-max alan kaydırıcısına tam olarak uyuyor. Daha önce, AprilTag pipeline'ları 2D sonuçları Etiket Alanına göre filtreliyordu, ancak 3D / Lokalizasyon Sonuçlarını filtrelemiyordu.

Limelight OS 2024.5.0 (4/9/24)

  • Linux 6.1'e yükseltme

Kamera Yığın Güncellemesi

  • Limelight3G'deki kamera çevre birimi kilitlenmesini düzeltmek için tüm kamera yığını güncellendi.
    • Belirtiler şunları içerir
  • Bu güncellemeyi uyguladıktan sonra pozlama ve kazanç ayarlarını yeniden yapılandırdığınızdan emin olun.

Dinamik Ölçek Küçültme

  • Takımlar artık mevcut pipeline'ın ölçek küçültme ayarını geçersiz kılmak için "fiducial_downscale_set" değerini ayarlayabilir
  • 0:UI kontrolü, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
  • Yeni Helpers metodunu 0.0 (UI Kontrolü), 1.0, 1.5, 2.0, 3.0, 4.0 değerleriyle kullanın
  • Bu işlem ek yük getirmez.
  • Dinamik ölçek küçültme ve dinamik kırpma birleştirilerek, takımlar birden fazla pipeline yönetmeden FPS'i maksimize edebilir

MegaTag2 İyileştirmeleri

  • MT2 artık 90 derece ve -90 derece dönüşlü "dikey" modlar dahil olmak üzere Limelight yönlendirmesinden bağımsız olarak çalışır

"rawdetections" nt dizisi

  • [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
  • köşeler, kalibrasyon uygulanmamış piksel alanındadır

Aşındırma/Genişletme Güncellemesi

  • Renk pipeline'ları artık 10 adıma kadar genişletme ve 10 adıma kadar aşındırma destekler
  • Renk pipeline'ları artık genişletme ve aşındırma adımlarının sırasını tersine çevirmek için "reverse morpho" seçeneğine sahip

LimelightLib 1.6 (4/9/24)

  • void SetFiducialDownscalingOverride(float downscale) eklendi

Pipeline kontrolü için 0'a ayarlayın veya pipeline'ınızın ölçekleme ayarını geçersiz kılmak için aşağıdakilerden birini kullanın: 1, 1.5, 2, 3, 4

  • RawFiducial[] GetRawFiducials() eklendi
  • RawDetection[] GetRawDetections() eklendi

Limelight OS 2024.4.0 (4/3/24)

Bu güncelleme için fikir sunan tüm ekiplere teşekkür ederiz.

Megatag 2

Megatag 2, belirsizlik içermeyen bir konumlandırıcıdır. Megatag1'e göre daha yüksek doğruluk ve hassasiyete sahiptir ve aşağıdaki gereksinimlerle oluşturulmuştur:

  • Poz belirsizliği sorununu ortadan kaldırmak ve görüntü/köşe gürültüsüne karşı dayanıklılığı artırmak.
  • Perspektiften bağımsız olarak, bir veya daha fazla etiket ile mükemmel poz tahminleri sağlamak.
  • Fiziksel AprilTag yerleşim hatalarına karşı dayanıklılığı artırmak
  • İyi poz tahmini sonuçları için gerekli robot tarafı filtreleme miktarını azaltmak

Bu oldukça belirsiz tek etiketli durumda MegaTag2 (kırmızı robot) ve Megatag (mavi robot) arasındaki farka dikkat edin:

Megatag2, robotunuzun yönünü yeni bir metod çağrısıyla ayarlamanızı gerektirir. İşte tam bir örnek:

      LimelightHelpers.SetRobotOrientation("limelight", m_poseEstimator.getEstimatedPosition().getRotation().getDegrees(), 0, 0, 0, 0, 0);
LimelightHelpers.PoseEstimate mt2 = LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
if(Math.abs(m_gyro.getRate()) > 720) // eğer açısal hızımız saniyede 720 dereceden fazlaysa, görüş güncellemelerini yoksay
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.6,.6,9999999));
m_poseEstimator.addVisionMeasurement(
mt2.pose,
mt2.timestampSeconds);
}

Megatag2, tek bir etiketle herhangi bir mesafede mükemmel, belirsizlik içermeyen sonuçlar sağlar. Bu, yalnızca ilgili ve istenen yerleşim toleransı içindeki etiketlere odaklanmanın tamamen uygun olduğu anlamına gelir. Bir etiket doğru konumda değilse veya alakasızsa, yeni dinamik filtre özelliğiyle onu filtreleyebilirsiniz.

Dinamik Apriltag Filtreleme

  • MegaTag2 mümkün olduğunca çok AprilTag toplamaya muhtaç olmadığından, iyi yerleştirilmiş ve ilgili etiketleri güvenle filtreleyebilirsiniz:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

MegaTag2'ye Geçiş

Megatag2'nin düzgün çalışması için robotunuzun yönünü bilmesi gerekir. 0 derece, 360 derece, 720 derece vb. yön, robotunuzun kırmızı ittifak duvarına baktığı anlamına gelir. Bu, PathPlanner, Chorero, Botpose ve Botpose_wpiblue'da kullanılan aynı kuraldır.

SetRobotOrientation()'ı kodunuza ekledikten sonra, yerleşik 3D görselleştiriciyi kontrol edin. Yakın mesafede, Megatag2 ve Megatag1 birebir olmasa da yakın sonuçlar vermelidir. Uzun mesafede, Megatag 2 (kırmızı robot) Megatag1'den (mavi robot) daha doğru ve daha stabil olmalıdır.

Yerleşik görselleştirici iyi sonuçlar gösterdiğinde, Megatag2'yi otonom periyot sırasında robotunuzu yönlendirmek için güvenle kullanabilirsiniz.

Eklemenizi önerdiğimiz tek filtre "maksimum açısal hız" filtresidir. Yüksek açısal hızlarda poz tahminlerinizin biraz daha az güvenilir hale geldiğini görebilirsiniz.

Örnekler deposunda bu filtreye sahip bir Megatag2 örneği bulunmaktadır.

    if(Math.abs(m_gyro.getRate()) > 720) // eğer açısal hızımız saniyede 720 dereceden fazlaysa, görüş güncellemelerini yoksay
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (4/3/24)

Ekle

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (20.03.24)

Bu güncelleme için fikir sunan tüm takımlara teşekkür ederiz.

Daha Yüksek Hassasiyetli Tek Etiket Çözücü

MegaTag'in tek etiket 3D çözücüsü geliştirildi. Uzun mesafelerde eskisinden çok daha stabil çalışıyor.

JSON Varsayılan Olarak Devre Dışı (Yıkıcı Değişiklik)

  • JSON, bant genişliği kullanımını azaltmak ve Shuffleboard gibi otomatik abone olan gösterge panellerini kullanan takımlar için varsayılan olarak devre dışı bırakıldı.
  • Bu aynı zamanda RoboRIO NT yükünü ve CPU kullanımını da azaltmalıdır.
  • JSON'u çıktı sekmesinde pipeline bazında yeniden etkinleştirin.
  • Bu güncelleme, daha fazla takımın konum tahmini için JSON'dan uzaklaşmasına olanak sağlayacak değişiklikler içermektedir.

Bozulması Giderilmiş Alan (Yıkıcı Değişiklik)

Herhangi bir hedefin alanı hesaplanmadan önce köşelerin bozulması giderilir.

botpose, botpose_wpiblue ve botpose_wpired'e Etiket Başına Metrikler Eklendi

[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (metre), averageDistance (metre), averageArea (görüntü yüzdesi), (tags)]

Megatag lokalizasyonu tarafından kullanılan her etiket için, yukarıdaki diziler artık şunları içerir: (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)

Ambiguity, etiketin mevcut perspektifinin belirsizliğini gösteren 0-1 arasında yeni bir metriktir. >.9 belirsizliğe sahip tek etiketli güncellemeler muhtemelen reddedilmelidir.

"rawtargets" ve "rawfiducials" nt dizileri (Yıkıcı Değişiklik)

  • rawtargets - hedef başına (txnc,tync,ta)
  • rawfiducials - hedef başına (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)
  • Önceki rawtargets NT girişleri (tx0,ty0, vb.) kaldırıldı.

Hata Düzeltmeleri

  • priorityID bulunamadığında tüm tek etiketli 3D bilgilerini sıfırla. Daha önce, priorityTag bulunamadığında yalnızca Tx, Ta, Ty ve Tv sıfırlanıyordu
  • UI'nin "ID Filters" özellikleri tarafından filtrelenen tek görünür etiket varsa botpose'u sıfırla. Daha önce, tek görünür etiket filtrelenmiş bir etiket olduğunda, botpose'lar (0,0,0) yerine sahanın merkezine sıfırlanıyordu
  • 2024.2, bazı nadir durumlarda belirli networktables girişlerine NAN değerleri gönderiyordu. Bu artık olmayacak.

LimelightLib 1.4 (21.03.24)

  • 2024.3.4 Ham Fiducial desteği eklendi. PoseEstimates artık id, txnc, tync, ta, kamerayaUzaklık, robotaUzaklık ve belirsizlik içeren rawFiducials dizisini içerir

Limelight Hardware Manager 1.4 (18/03/24)

Hata Düzeltmesi

Tespit edilen USB Limelightlar, iki kısmi giriş yerine tek bir giriş olarak düzgün şekilde görüntülenmektedir.


Limelight OS 2024.2.2 (17/03/24)

Hata Düzeltmesi

TX ve TY, NT girişlerinde artı işaretini düzgün şekilde dikkate alır.


Limelight OS 2024.2 (8/3/24)

Sıfır-Nişangâh hedefleme ile Json (tx_nocross, ty_nocross) ve NT (txnc, tync)

Eğer özel içsel kalibrasyon ile tx/ty hedefleme kullanıyorsanız, Limelight nişangâhı kameranın ana pikseli ile hizalı olmadığı için muhtemelen hala kameradan kameraya değişiklik görüyorsunuz. Daha yüksek tx/ty hassasiyeti gerektiren takımlar ya nişangâhı ana piksel ile eşleşecek şekilde yapılandırabilir ya da bu yeni metrikleri kullanabilir.

tx/ty'de Potansiyel Yıkıcı Değişiklik

Bu sezonun başlarında, özellikle json'daki tx, ty ve tx + ty için özel kalibrasyonu bozan bir hata ortaya çıktı. Limelight OS birçok durumda varsayılan kalibrasyonlara geri dönüyordu.

Kalibrasyon İyileştirmeleri

Kalibrasyon artık kaç görüntü yakalanmış olursa olsun neredeyse anında gerçekleşiyor. Ayrıca belirli koşullar altında yaklaşık 30'dan fazla görüntü olmasından kaynaklanan bir çökmeyi de düzelttik.

Kağıt hedeflerle 15-20 görüntüde yaklaşık 1 piksellik ve yüksek kaliteli calib.io hedeflerimizle 0.3 piksellik yeniden projeksiyon hatası elde ediyoruz.

Fiducial Filtreler Kullanıcı Arayüzü Düzeltmesi

Fiducial filtre metin kutusu artık herhangi bir sayıda filtreyi kabul ediyor.

Diğer

Apriltag Üretici, 165.1 mm etiketlerle ölçeklendirmeyi önlemek için varsayılan olarak "kenarlıksız" ayarına getirildi.


Limelight OS 2024.1.1 (24.02.24)

  • priorityID düzeltildi

Limelight OS 2024.1 (24.02.24)

Donanım Metrikleri (networktables'da hw anahtarı, /status GET isteği)

Kalibrasyon İyileştirmesi

  • Kalibrasyon görüntüsünde tam olarak bir geçerli tespit olduğunda oluşabilecek çökme düzeltildi. Web arayüzü geri bildirimi iyileştirildi.

Robot Lokalizasyon İyileştirmesi (etiket sayısı ve daha fazlası)

  • Tüm networktables botpose dizileri (botpose, botpose_wpiblue ve botpose_wpired) artık Etiket Sayısı, Etiket Aralığı (metre), Ortalama Mesafe (metre) ve Ortalama Alan (görüntü yüzdesi) içeriyor

  • Bu metrikler, yüklenen saha haritasında bulunan etiketlerle hesaplanır. Özel ve/veya mobil AprilTag'ler bu metrikleri etkilemez.

  • Cihaz kalibrasyonu ve bu botpose dizisi güncellemesiyle birlikte, bu yıl kullanım durumlarının büyük çoğunluğu için JSON'a gerek olmadığına inanıyoruz.

  • JSON dökümü artık kolaylık için botpose_avgarea, botpose_avgdist, botpose_span ve botpose_tagcount içeriyor.

[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]

Yeni Özellik: Öncelik ID'si (NT Anahtarı priorityid)

  • Robotunuz hem odometri tabanlı özellikleri hem de tx/ty tabanlı özellikleri kullanıyorsa, muhtemelen şu kullanıcı deneyimi sorunuyla karşılaşmışsınızdır:

  • Bu güncellemeden önce, tx/ty hedefleme için tercih edilen etiket ID'sini kolayca değiştirmenin bir yolu yoktu.

  • Arayüzde bir ID filtresi olmasına rağmen

    • dinamik değil
    • etiketleri megaTag lokalizasyonundan kaldırıyor
  • Bu, takımların birkaç pipeline oluşturmasına neden oluyordu: 3D lokalizasyon için bir tane ve her tx/ty etiketi için bir tane (etiket 7 ile mavi taraf atış için bir tane, etiket 6 ile mavi taraf yükseltme için bir tane, vb.).

  • Yeni öncelik ID özelliği (NT Anahtarı priorityid) Limelight'ınıza "Tüm etiket tespiti, filtreleme ve sıralama tamamlandıktan sonra, öncelik ID'si ile eşleşen etikete odaklan" demenizi sağlar.

  • Bu, lokalizasyonu hiçbir şekilde etkilemez ve JSON sonuçlarındaki etiketlerin sırasını sadece hafifçe değiştirir.

  • Öncelik ID'niz -1 değilse, seçilen etiket görünür olmadığı sürece tx/ty/ta 0 döndürür.

Diğer

  • 3D apriltag pipeline'ında çift hedef modu kullanılırken ekrandaki "x" düzeltildi
  • REST API sinir ağı etiket yüklemeleriyle genişletildi (/uploadlabels)
  • /status json'a cihaz takma adı eklendi

LimelightLib 1.3

  • LimelightLib (Java ve CPP) lokalizasyonu her zamankinden daha kolay hale getirmek için güncellendi.
  LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if(limelightMeasurement.tagCount >= 2)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.7,.7,9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds);
}


Takımlar için Yeni Kaynaklar

Limelight Geri Bildirim ve Sorun Takibi: https://github.com/LimelightVision/limelight-feedback/issues

Örnekler Deposu: https://github.com/LimelightVision/limelight-examples

Swerve ile Hedefleme ve Mesafe Ölçme Örneği: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging

MegaTag Lokalizasyon Örneği: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation

Son katkıda bulunanlar jasondaming, Gold876, JosephTLockwood, Andrew Gasser ve virtuald'a teşekkürler


Limelight 2024 Güncellemeleri (6/2/24)

Limelight Dokümantasyon Güncellemesi

  • Dokümantasyon kurulum sürecini kolaylaştırmak için yeniden yazıldı

Limelight AprilTag Üretici

  • https://tools.limelightvision.io/ artık ilk çevrimiçi AprilTag üreticisini sunuyor.
  • Yazdırılabilir bir PDF oluşturmak için kağıt boyutunuzu, işaretleyici boyutunuzu ve etiket kimliklerinizi seçin.
  • Safari şu anda etiketleri düzgün görüntülemeyebilir.

Limelight Harita Oluşturucu

  • https://tools.limelightvision.io/map-builder
  • Artık sezgisel bir kullanıcı arayüzü ile özel AprilTag haritaları oluşturabilirsiniz.
  • Varsayılan aile ve etiket boyutu, 2024 sahasına uyacak şekilde güncellendi.

Yeni Donanım Yöneticisi

  • Finder Tool artık Limelight Donanım Yöneticisi olarak adlandırılıyor
  • Sıfırdan yeniden yazıldı. Artık Limelight'ları güvenilir bir şekilde algılıyor, daha faydalı tanılama bilgileri sağlıyor ve düzgün çalışması için yeniden başlatma gerektirmiyor.
  • İndirme sayfasından hemen edinin notebook ekran görüntüsü:

Kendi Sinir Ağlarınızı Eğitin

defter ekran görüntüsü:

2024 AprilTag Harita ve Not Dedektörü

  • Harita ve dedektör modeli indirmeler sayfasına ve en son Limelight OS görüntüsüne eklenmiştir.

Limelight OS 2024.0 (2/6/24)

ChArUco Kalibrasyon Düzeltmeleri

  • ChArUco detektörümüzün alt piksel hassasiyeti artırıldı. Pano hedefleri ve 20 görüntü ile 1-2 piksellik bir yeniden projeksiyon hatası artık elde edilebilir.
  • Aynı kamera ve aynı hedef kullanılarak, 2023.6 sürümü 20 piksellik RPE elde ederken, 2024.0 sürümü 1.14 piksellik RPE elde etti.
  • Giriş alanları artık harf ve özel karakterleri kabul etmiyor. Bu, olası bir çökme potansiyelini ortadan kaldırır.

Kutudan Çıkar Çıkmaz Megatag Doğruluk İyileştirmesi

  • Bu güncellemeden önce, Limelight'ın dahili Megatag harita oluşturucusu, .fmap dosyası tarafından sağlanan etiket boyutları yerine kullanıcı arayüzündeki etiket boyutu kaydırıcısını referans alıyordu.
  • Megatag artık fmap dosyalarında yapılandırılan etiket boyutlarına uyuyor ve boyut kaydırıcısını göz ardı ediyor.
  • Boyut kaydırıcınız 165.1 mm'ye ayarlanmamışsa, lokalizasyon doğruluğunda anında bir iyileşme fark edeceksiniz.

Performans İyileştirmeleri ve Hata Düzeltmeleri

  • Daha yüksek FPS AprilTag işlem hatları
  • Saha-Uzay Görselleştiricinin performansı önemli ölçüde iyileştirildi.

Hata Düzeltmeleri

  • 3B görselleştiricilerdeki Apriltag'ler bazen yanlış veya bozuk etiket görüntüleriyle çiziliyordu. Etiketler artık her zaman doğru görüntüleniyor.
  • "v" / tv / "valid" artık yalnızca geçerli tespitler varsa "1" değerini döndürecek. Önceden tv her zaman "1" değerini döndürüyordu.