Yazılım Değişiklik Günlüğü ve Geri Bildirim
Sorunları ve özellik isteklerini e-posta yoluyla veya Limelight Geri Bildirim Deposu üzerinden iletebilirsiniz
Limelight OS 2024.10 (9/4/24)
FTC için Limelight 3A Desteği
- Limelight3A tam olarak desteklenmektedir
- 3A hem FTC hem de FTC'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 otomatik olarak doğru saha türünü gösterecektir
- Tüm araçlar ve arayüzlerdeki saha görselleştiricileri ittifak bölgelerini ve ftc karo ızgaralarını göstermektedir.
- 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, 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ı Yükseltmeleri
- 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ı bir kez 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 Snapscript'lerine AprilTag3 eklendi (from apriltag import apriltag)
- Örnekler için github deposundaki örneklere bakın
- Windows'ta USB bağlantı ağ geçidi sorunu düzeltildi.
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() fonksiyonunu kullanıyor.
-
Zaman damgalı görüntü karelerimiz, interpolasyon yapılmadan önce en ilgili iki IMU örneğiyle eşleştiriliyor.
-
NT4 flush() LimelightLib'e eklendi. Eski Limelight OS sürümlerine Flush() eklemek, 2024.9 performansına oldukça yaklaşmanızı sağlayacak, ancak NT4 doğruluğun her zaman yüksek olmasını garanti eder.
-
MT2 görselleştirici robotu artık yeşil tamponlara sahip ve MT1'in görselleştirici robotu sarı tamponlar kullanıyor.
-
Metrikler artık daraltılabilir ve sanal robotlar gizlenebilir.
-
Aşağıdaki video, 2024.9'un MegaTag 2'sinin (yeşil robot) robot tarafında flush() ile Flush() olmayan 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ında "USB ID" ayarlayın.
- Sisteminizde görünen USB-Ethernet arayüzü, USB ID'ye göre belirlenen bir IP adresi kullanacak
- 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 örneğin, 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ını 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 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ğı tespitini 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 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 Limelight'larla 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ğiyle 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 Yükseltmeleri
- 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 yaw 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 odaklanmanı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ğiyle 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ı (KIRILMA DEĞİŞİKLİĞİ)
- Bu, "akış yönlendirme" seçeneği ile değiştirildi. Kalibrasyon ve hedefleme bu seçenekten asla etkilenmez.
- Yeni seçenek yalnızca 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 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ı (KIRILMA DEĞİŞİKLİĞİ)
"Sürücü" sıfır işleme modunun kaldırılması (KIRILMA DEĞİŞİKLİĞİ)
- 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 yalnızca 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 (KIRILMA DEĞİŞİKLİĞİ)
- 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) Ayrıca pipeline'larınızı yükseltmek için https://tools.limelightvision.io/pipeline-upgrade adresini kullanabilirsiniz
Kalibrasyon UX İyileştirmesi
- Kalibrasyon ayarları artık önbelleğe alınıyor. Artık kalibrasyon yapmak istediğiniz 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 bir görüntünün kalibrasyonunuza tam olarak ne katkıda bulunduğunu gösterecektir.
"Ağırlık Merkezi" hedefleme bölgesi
- Renk pipeline'larıyla nesne takibini iyileştirmek için "Çıktı" sekmesine ağırlık merkezi 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 bağlı olarak 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, artık çift yönlü iletişime sahip tamamen özel görüntü uygulamaları destekleniyor.
Özel NT sunucusu
- Ayarlar sekmesi artık özel bir NT sunucusu için bir giriş 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ş, normalize edilmiş 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 - [geçerli,hedefsayısı, hedefgecikmesi, yakalamagecikmesi, tx, ty, txnc, tync, ta, hedefid, sınıflandırıcıID, dedektörID, tlong, tshort, thor, tvert, ts(eğim)]
-
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 Dize Dizisi. 32'ye kadar giriş.
-
Tüm "raw" diziler 32'ye kadar hedef için izin veriyor (8'den yükseltildi)
-
fiducial_offset_set dinamik 3d Ofset ayarlayıcı eklendi
-
JSON üst düzey sonucuna "pType" eklendi
-
JSON üst düzey sonucuna "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 otomatik olarak yeni formata dönüştürülüyor
- 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 bir Google Coral çıkarılırsa, pipeline kalıcı olarak "renk/retro" moduna geri dönüyordu
- Artık, görüntüye "CORAL'I KONTROL ET" veya "MODELİ KONTROL ET" yazdırılacak. Pipeline türü asla değişmeyecek
- Daha önce, fiducial ID filtresinden başarıyla geçen etiketler bazen yeşil çizgi yerine kırmızı çizgiyle çiziliyordu. Bu görselleştirme sorunu düzeltildi.
- Apriltag pipeline'ları tcornxy NT dizisini dolduruyor
- 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'de 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 ayarladığı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" ayarını kullanabilir
- 0:UI kontrolü, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
- Yeni Helpers yöntemini 0.0 (UI Kontrolü), 1.0, 1.5, 2.0, 3.0, 4.0 değerleriyle kullanın
- Bu, ek yük getirmeyen bir işlemdir.
- Dinamik ölçek küçültme ve dinamik kırpma kombinasyonu ile takımlar, birden fazla pipeline yönetmeden FPS'yi maksimize edebilir
MegaTag2 İyileştirmeleri
- MT2 artık Limelight yöneliminden bağımsız olarak, 90 derece ve -90 derece dönüşlü "dikey" modlar dahil olmak üzere çalışır
"rawdetections" nt dizisi
- [sınıfID, txnc, tync, ta, köşe0x, köşe0y, köşe1x, köşe2y, köşe3x, köşe3y, köşe4x, köşe4y]
- 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 destekliyor
- Renk pipeline'ları artık genişletme ve aşındırma adımlarının sırasını tersine çevirmek için bir "ters morfo" seçeneğine sahip
LimelightLib 1.6 (9/4/24)
- void SetFiducialDownscalingOverride(float downscale) eklendi
Pipeline kontrolü için 0'a ayarlayın veya pipeline'ınızın küçültme 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.
- Perspektif ne olursa olsun, bir veya daha fazla etiket verildiğinde 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) ile 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 etiket verildiğinde herhangi bir mesafede mükemmel, belirsizlik içermeyen sonuçlar sağlar. Bu, yalnızca ilgili ve istediğiniz yerleşim toleransı dahilindeki etiketlere odaklanmanın tamamen uygun olduğu anlamına gelir. Bir etiket doğru konumda değilse veya ilgisizse, yeni dinamik filtre özelliğiyle onu filtreleyebilirsiniz.
Dinamik Apriltag Filtreleme
- MegaTag2 mümkün olduğunca çok AprilTag toplamak için çaresiz 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. bir 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.
Kodunuza SetRobotOrientation() ekledikten sonra, yerleşik 3D görselleştiriciyi kontrol edin. Yakın mesafede, Megatag2 ve Megatag1 yakından veya tam olarak eşleşmelidir. 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 dönemde 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 ekiplere teşekkür ederiz.
Daha Yüksek Hassasiyetli Tek Etiket Çözücü
MegaTag'in tek etiket 3D çözücüsü geliştirildi. Artık uzun mesafelerde eskisinden çok daha kararlı.
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 ekipler için genel olarak 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 başına yeniden etkinleştirin.
- Bu güncelleme, daha fazla ekibin poz tahmini için JSON'dan uzaklaşmasına olanak tanıyacak değişiklikler içermektedir.
Bozulması Giderilmiş Alan (Yıkıcı Değişiklik)
Herhangi bir hedefin alanını hesaplamadan önce köşelerin bozulması giderilir.
botpose, botpose_wpiblue ve botpose_wpired'e Fiducial Başına Metrikler Eklendi
[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (metre), averageDistance (metre), averageArea (görüntünün yüzdesi), (etiketler) ]
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'dan büyük etiket belirsizliklerine 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
- Öncelikli ID bulunmadığında tüm tek etiketli 3D bilgilerini sıfırla. Daha önce, öncelikli etiket bulunmadığında yalnızca Tx, Ta, Ty ve Tv sıfırlanıyordu
- Görünür tek etiket, kullanıcı arayüzünün "ID Filtreleri" özellikleri tarafından filtrelenmişse botpose'u sıfırla. Daha önce, görünür tek etiket filtrelenmiş bir etiketse, botpose'lar (0,0,0) yerine sahanın merkezine sıfırlanıyordu;
- 2024.2, bazı nadir durumlarda belirli networktables girişlerine NAN'lar 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 bir rawFiducials dizisi içeriyor
Limelight Donanım Yöneticisi 1.4 (18/03/24)
Hata Düzeltmesi
Keşfedilen USB Limelightlar, iki kısmi giriş yerine tek bir giriş olarak doğru şekilde görüntüleniyor.
Limelight OS 2024.2.2 (17.03.24)
Hata Düzeltmesi
TX ve TY, NT girişlerinde artı işaretine uygun şekilde davranı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)
Ö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 doğruluğu 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 olarak 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 bir 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.
Çeşitli
AprilTag Üreteci, 165.1 mm etiketlerle ölçeklendirmeyi önlemek için varsayılan olarak "kenarlıksız" ayarına geçti.
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)
- Takımlar artık FPS, CPU Yükü, RAM kullanımı ve CPU Sıcaklığını kaydedebilme yeteneğine sahip.
- Şu sorunu ele alır: https://github.com/LimelightVision/limelight-feedback/issues/5
Kalibrasyon İyileştirmesi
- Bir kalibrasyon görüntüsü tam olarak bir geçerli tespit içerdiğinde oluşabilecek çökmeyi düzeltir. Web arayüzü geri bildirimini iyileştirir.
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ünün yüzdesi) içeriyor.
-
Bu metrikler, yüklenen saha haritasına dahil edilen etiketlerle hesaplanır. Özel ve/veya mobil AprilTag'ler bu metrikleri etkilemeyecektir.
-
Cihaz kalibrasyonu ve bu botpose dizisi yükseltmesi ile, bu yıl kullanım durumlarının büyük çoğunluğu için JSON'un gerekli 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: Öncelikli ID (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, bu filtre
- 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 tx/ty etiketi başına bir tane (mavi taraf atış için etiket 7 ile bir pipeline, mavi taraf amping için etiket 6 ile bir pipeline, vb.).
-
Yeni öncelikli ID özelliği (NT Anahtarı priorityid), Limelight'ınıza "Tüm etiket tespiti, filtreleme ve sıralama tamamlandıktan sonra, öncelikli ID'ye uyan etikete odaklan" demenize olanak tanır.
-
Bu, lokalizasyonu hiçbir şekilde etkilemez ve JSON sonuçlarındaki etiketlerin sırasını sadece biraz değiştirir.
-
Öncelikli ID'niz -1 değilse, seçilen etiket görünür olmadığı sürece tx/ty/ta 0 döndürecektir.
Çeşitli
- 3D apriltag pipeline'ında çift hedef modunu kullanırken ekran boyunca "x" sorununu düzeltir
- REST API, sinir ağı etiket yüklemeleriyle genişletildi (/uploadlabels)
- /status json'una cihaz takma adını ekler
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 Takipçisi: 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 bulunanlara teşekkürler: jasondaming, Gold876, JosephTLockwood, Andrew Gasser ve virtuald
Limelight 2024 Güncellemeleri (6/2/24)
Limelight Dokümantasyon Güncellemesi
- Kurulum sürecini kolaylaştırmak için dokümantasyon 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şaretçi 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üncellenmiştir.
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
Kendi Sinir Ağlarınızı Eğitin
- RoboFlow, Limelight Dedektör Eğitim Notebook'u ve yeni eğitimimiz ile kendi tespit modellerinizi ücretsiz olarak eğitebilirsiniz.
2024 AprilTag Haritası ve Not Dedektörü
- Harita ve dedektör modeli indirme sayfasına ve en son Limelight OS görüntüsüne eklenmiştir.
Limelight OS 2024.0 (6/2/24)
ChArUco Kalibrasyon Düzeltmeleri
- ChArUco detektörümüzün alt piksel doğruluğu 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 bir RPE elde ederken, 2024.0 sürümü 1.14 piksellik bir RPE elde etti.
- Giriş alanları artık harf ve özel karakterleri kabul etmiyor. Bu, potansiyel bir çökme olasılığını ortadan kaldırıyor.
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 Yükseltmeleri 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
- 3D görselleştiricilerdeki Apriltag'ler bazen yanlış veya bozuk etiket görüntüleriyle çiziliyordu. Etiketler artık her zaman doğru şekilde görüntüleniyor.
- "v" / tv / "valid" artık yalnızca geçerli tespitler varsa "1" döndürecek. Önceden, tv her zaman "1" idi.
2023.6 (18.04.23)
Kolay ChArUco Kalibrasyonu & Kalibrasyon Görselleştiricileri
- ChArUco kalibrasyonu, dama tahtası kalibrasyonundan daha iyi kabul edilir çünkü oklüzyonları ve kötü köşe tespitlerini ele alır ve tüm tahtanın görünür olmasını gerektirmez. Bu, görüntülerinizin kenarlarına ve köşelerine yakın kalibrasyon tahtası köşelerini yakalamayı çok daha kolay hale getirir. Bu, bozulma katsayısı tahmini için çok önemlidir.
- Limelight'ın kalibrasyon süreci her adımda geri bildirim sağlar ve iyi kalibrasyon sonuçları için gerekli olan her şeyi yaptığınızdan emin olur. Bu süreci mümkün olduğunca sağlam hale getirmek için çok fazla çaba sarf edilmiştir.
- En önemlisi, kalibrasyon sonuçlarınızı varsayılan kalibrasyonun hemen yanında görselleştirebilirsiniz. Bir bakışta, kalibrasyon sonucunuzun makul olup olmadığını anlayabilirsiniz.
- Kalibrasyon panosunu bir öğrenme aracı olarak da kullanabilirsiniz. İndirilen kalibrasyon sonuç dosyalarını değiştirebilir ve bunları yeniden yükleyerek iç parametreler matrisinin ve bozulma katsayılarının hedefleme sonuçlarını, görüş alanını vb. nasıl etkilediğini öğrenebilirsiniz.
- Bu videoya bir göz atın:
2023.5.1 & 2023.5.2 (22.03.23)
-
2023.5.0'da ortaya çıkan bir regresyon düzeltildi - 2023.5 sürümü düzlemsel olmayan tüm düzenler için megatag'i düzeltirken, tek etiketli poz tahminlerinin performansını düşürmüştü. Bu sorun giderildi. Tek etiketli poz tahminleri, 2023.4'te kullanılan çözücünün aynısını kullanıyor.
-
Daha hızlı anlık görüntü arayüzü. Anlık görüntü ızgarası artık düşük çözünürlüklü 128p küçük resimler yüklüyor.
-
Limelight Yaw artık 3B görselleştiricilerde doğru şekilde gösteriliyor. Görselleştiricide ve dahili olarak saat yönünün tersine pozitif.
-
Saha alanı görselleştiricisinde hangi hedeflerin şu anda izlendiği belirtiliyor.
2023.5.0 (21.03.23)
Önemli Değişiklikler
- Önceki sürümlerde ters çevrilmiş olan Limelight Robot-Uzayı "Yaw" regresyonu düzeltildi. Web arayüzündeki Limelight yaw artık dahili olarak Saat Yönünün Tersine Pozitif.
Bölge Seçimi Güncellemesi
- Bölge seçimi artık sinir ağı dedektör pipeline'larında beklendiği gibi çalışıyor.
- Döndürülmemiş hedef dikdörtgeninin merkezini, üstünü, solunu, sağını veya altını seçmek için 5 yeni bölge seçeneği eklendi.
"hwreport" REST API
- :5807/hwreport, kamera içsel parametreleri ve bozulma bilgilerini detaylandıran bir JSON yanıtı döndürecek.
MegaTag Düzeltmesi
- Bazı eş düzlemli olmayan apriltag düzenleri MegaTag'de bozuktu. Bu sorun düzeltildi ve artık tüm saha etiketleriyle poz tahmini stabildir. Bu, öncekinden daha uzak mesafelerde bile stabil poz tahmini yapılmasını sağlar.
Daha Yüksek tx ve ty Doğruluğu
- TX ve TY her zamankinden daha doğru. Hedefler tamamen bozulma düzeltmesi yapılmış ve görüş alanı tamamen kamera içsel parametreleri tarafından belirleniyor.
2023.4.0 (18.02.23)
Nöral Dedektör Sınıf Filtresi
İstenmeyen tespitleri kolayca filtrelemek için takip etmek istediğiniz sınıfları belirleyin.
Nöral Dedektör genişletilmiş destek
Herhangi bir giriş çözünürlüğünü destekler, diğer nesne algılama mimarilerini desteklemek için ek çıktı şekillerini destekler. EfficientDet0 tabanlı modeller artık desteklenmektedir.
2023.3.1 (14/02/23)
AprilTag Doğruluk İyileştirmeleri
Tüm modeller için geliştirilmiş içsel matris ve daha da önemlisi, geliştirilmiş bozulma katsayıları. Tek AprilTag Lokalizasyonunda fark edilir iyileştirmeler.
Dedektör Yükleme
Dedektör yükleme sorunu düzeltildi.
2023.3 (13/02/23)
Yakalama Gecikmesi (NT Anahtarı: "cl", JSON Sonuçları: "cl")
Yeni yakalama gecikmesi girişi, Limelight'ın görüntü sensörünün orta sırasının pozlamasının sonu ile işleme hattının başlangıcı arasındaki süreyi temsil eder.
AprilTags için Yeni Kalite Eşiği
Sahte AprilTags artık yeni Kalite Eşiği kaydırıcısı ile daha kolay filtrelenebilmektedir. 2023.3'te ayarlanan varsayılan değer, çoğu sahte tespiti ortadan kaldırmalıdır.
Robot Uzayında Kamera Pozisyonu Geçersiz Kılma (NT Anahtarları: "camerapose_robotspace_set", "camerapose_robotspace")
Limelight'ınızın robot uzayındaki konumu artık anında ayarlanabilir. Eğer anahtar sıfırlardan oluşan bir diziye ayarlanırsa, web arayüzünde ayarlanan poz kullanılır.
İşte bir asansördeki Limelight örneği:
Arttırılmış Maksimum Pozlama
Maksimum pozlama süresi artık 33ms'dir (12.5 ms'den yükseltildi). Yüksek fps yakalama modları hala (1/fps) saniye ile sınırlıdır. Örneğin, 90hz boru hatları 11ms pozlama süresinin ötesinde daha parlak görüntülere sahip olmayacaktır.
Botpose güncellemeleri
Ağ tablolarındaki üç botpose dizisinin her biri, toplam gecikmeyi (yakalama gecikmesi + hedefleme gecikmesi) temsil eden yedinci bir girişe sahiptir.
Hata düzeltmeleri
- LL3 MJPEG akışlarını shuffleboard'da düzeltme
- camMode'u düzeltme - sürücü modu artık parlak, kullanılabilir görüntüler üretiyor
- Pozlama etiketi düzeltildi - her "tik" 0.1 ms değil 0.01ms'yi temsil ediyor
- Sinir ağı dedektör yüklemesini düzeltme
2023.2 (28/01/23)
3D'yi her zamankinden daha kolay hale getiriyoruz.
WPILib uyumlu Botpose'lar
Botpose artık kutudan çıktığı gibi kullanımı çok daha kolay.
Bunlar WPILib Koordinat sistemleriyle eşleşiyor.
Tüm botpose'lar doğrudan web arayüzündeki saha-uzayı görselleştiricisinde yazdırılıyor, böylece her şeyin düzgün çalıştığını bir bakışta onaylamak çok kolay.
3D Verilere Daha Kolay Erişim (Yıkıcı Değişiklikler)
HedefUzayında RobotPozisyonu, AprilTag'lerle ilgili olarak Limelight'tan çıkan muhtemelen en kullanışlı veridir. Sadece bunu kullanarak, bir tahrik sistemini sahadaki bir AprilTag ile mükemmel şekilde hizalayabilirsiniz.
- NetworkTables Anahtarı "campose" artık "camerapose_targetspace"
- NetworkTables Anahtarı "targetpose" artık "targetpose_cameraspace"
- Yeni NetworkTables Anahtarı - "targetpose_robotspace"
- Yeni NetworkTables Anahtarı - "botpose_targetspace"
Sinir Ağı Yükleme
Öğretilebilir makine modellerini Limelight Sınıflandırıcı Pipeline'ına yükleyin. Tensorflow Lite EdgeTPU uyumlu modeller olduğundan emin olun. .tflite ve .txt etiket dosyalarını ayrı ayrı yükleyin.
2023.1 (19.01.23)
MegaTag ve Performans Artışları
Bir Hatanın Düzeltilmesi
Kullanıcı arayüzündeki varsayılan işaretçi boyutu parametresi 152.4mm olarak düzeltildi (203.2mm'den düşürüldü). Bu, çoğu doğruluk sorununun kaynağıydı.
Artırılmış İzleme Kararlılığı
AprilTag algılama ve çözümlemeyi ayarlamanın birkaç yolu vardır. Özellikle düşük ışık / düşük pozlama ortamlarında genel kararlılığı artırdık.
Ultra Hızlı Gri Tonlama
Gri tonlama öncekine göre 3-6 kat daha hızlı. Takımlar AprilTag'leri izlerken her zaman gri bir video akışı görecekler.
Performans İçin Kırpma
AprilTag işlem hatlarına artık kırpma kaydırıcıları eklendi. Görüntünüzü kırpmak, herhangi bir çözünürlükte kare hızlarının iyileşmesini sağlayacaktır.
Daha Kolay Filtreleme
AprilTag işlem hatlarında artık JSON çıktısını, botpose etkin etiketleri ve tx/ty etkin etiketleri filtreleyen tek bir "ID filtresi" alanı bulunmaktadır. İkili filtre kurulumu hatalı ve kafa karıştırıcıydı.
Önemli Değişiklik
"camtran" NT Anahtarı artık "campose" olarak değiştirildi
JSON güncellemesi
"botpose" artık json sonuçları dökümünün bir parçası
Saha Uzayı Görselleştirici Güncellemesi
Saha-uzayı görselleştirici artık 2023 FRC sahasını gösteriyor. Artık botpose doğruluğunu bir bakışta değerlendirmek daha kolay olmalı.
Limelight MegaTag (yeni botpose)
En büyük önceliğim, daha yüksek doğruluk, azaltılmış gürültü ve belirsizliğe karşı dayanıklılık için botpose'u yeniden yazmaktı. Limelight'ın yeni botpose uygulaması MegaTag olarak adlandırılıyor. Birden fazla bireysel saha-uzayı pozunun aptal bir ortalamasını hesaplamak yerine, MegaTag esasen tüm etiketleri birkaç anahtar noktası olan dev bir 3D etikette birleştiriyor. Bunun muazzam faydaları var.
Aşağıdaki GIF, etiket çevirmesini tetiklemek için tasarlanmış bir durumu gösteriyor: Yeşil Silindir: Etiket başına bireysel bot pozu Mavi Silindir: 2023.0.1 BotPose Beyaz Silindir: Yeni MegaTag Botpose
Yeni botpose'un (beyaz silindir) eski botpose'a (mavi silindir) kıyasla ne kadar kararlı olduğuna dikkat edin. tx ve ty değerlerini de izleyebilirsiniz.
İşte etiket belirsizliğini gösteren tam ekran:
İşte avantajları:
Botpose artık görüş alanında birden fazla etiket varsa belirsizliklere (etiket çevirmesi) karşı dayanıklıdır (yakın ve eş düzlemli olmadıkları sürece. İdeal olarak anahtar noktalar eş düzlemli olmamalıdır). Görüş alanında birden fazla etiket varsa, botpose artık etiket köşelerindeki gürültüye karşı daha dayanıklıdır. Etiketler birbirinden ne kadar uzaksa o kadar iyi. Bu, düzlemsel etiketlerle sınırlı değildir. Tam 3D'de ve herhangi bir yönelimde herhangi bir sayıda etikete ölçeklenir. Zemin etiketleri ve tavan etiketleri mükemmel çalışır.
İşte basit bir düzlemsel durumla bunun nasıl çalıştığının bir yönünü gösteren bir diyagram. Sonuçlar aslında gösterilenden daha iyidir, çünkü gösterilen MegaTag'de bir nokta yerine üç noktaya önemli bir hata uygulanmıştır. 3D birleşik MegaTag boyut ve anahtar nokta sayısı arttıkça, kararlılığı artar.
Sinir Ağı yüklemesi 2023.2'ye ertelendi!
2023.0.0 ve 2023.0.1 (11/01/23)
AprilTags, Robot lokalizasyonu, Derin Sinir Ağları, yeniden yazılmış ekran görüntüsü arayüzü ve daha fazlasını tanıtıyoruz.