Limelight 3A Hızlı Başlangıç

Donanım Özellikleri
- Boyutlar: 2.839in x 1.894in (72.11mm x 48.11mm)
- Kalınlık: 0.661in (16.80mm)
- Ağırlık: 0.20 lb
- Montaj: 4x #10 geçiş deliği, 4x M3, 6x M4 dişli montaj delikleri
- Güç Girişi: USB üzerinden 4.1V-5.75V
- Maksimum Güç Tüketimi: 4W
- Sensör: OV5647 Renkli Rolling Shutter (640x480 @ 90FPS)
- Dahili LED aydınlatma yok
- Görüş Alanı: Y:54.5° D:42°
- Yalnızca USB-C bağlantısı (RJ45 portu yok)
- Durum Işığı: Yeşil (hedef algılama)
- FTC uyumluluğu için optimize edilmiş
Yazılım Özellikleri (Limelight OS)
- Tak-Çalıştır yüksek performanslı görüntü işleme. Deneyim gerektirmez.
- Görüntü işleme hattı yapılandırması için kendi kendine barındırılan tarayıcı tabanlı arayüz
- FTC (doğrudan Java entegrasyonu) ve FRC (NetworkTables arayüzü) desteği
- Yapılandırılabilir pozlama, sensör kazancı, çözünürlük ve kare hızı
- 10 Adet Anında Değiştirilebilir Görüntü İşleme Hattı Yapılandırma:
- OpenCV 4.10, numpy vb. ile Özel Python Hatları
- 2D, 3D AprilTag Takibi ve Robot Lokalizasyonu
- MegaTag1 ile Tam 3D Lokalizasyon (Robot GPS)
- MegaTag2 ile Harici IMU Füzyonu kullanarak Yüksek Doğruluklu Tam 3D Lokalizasyon (Robot GPS)
- 20fps @ 1280x960 (2x küçültme), 50fps @ 640x480 (2x küçültme)
- Web arayüzünde Tam 3D Görselleştirici
- 90FPS Renk Blob hatları
- Sinir Ağı Nesne Algılama Hatları (Yalnızca CPU Çıkarımı)
- Sinir Ağı Görüntü Sınıflandırma Hatları (Yalnızca CPU Çıkarımı)
- Barkod Takip Hatları
- Dahili Charuco İç Parametre Kalibrasyon arayüzü
- Dahili düşük gecikmeli MJPEG Akışı
1. Limelight 3A Montajı
Dişli Montaj (Önerilen)
- LL3A'nızı Rev veya GoBilda Kanalına monte etmek için dişli montaj deliklerini kullanarak en az 2 M3 veya M4 vida kullanın
- Limelight'ınızı sabitlemek için VHB bant veya kablo bağları da kullanabilirsiniz
Geçiş Deliği Montajı
- Nylock somunlu 1 1/4" #10-32 veya #10-24 cıvatalar kullanın
- Alternatif olarak, nylock somunlu 28mm M4 cıvatalar kullanın
2. Limelight 3A Kablolama
Limelight'ınızı robotunuzda kullanmaya hazır olduğunuzda:
FTC İçin
- Limelight 3A'nızdan Control Hub'ınızın USB 3.0 Portuna bir USBC - USBA kablosu bağlayın
- USB 3.0 portuna (mavi port) takarak Control Hub'ınıza bağlanın
FRC İçin
- Limelight 3A'nızı roboRIO USB portuna bağlayın
- USB-C - USB-A kablosu kullanın
Limelight 3A, Google Coral'ı desteklemez. Sinir ağı çalışma zamanı motorunu "CPU" olarak ayarlayarak sinir ağı algılama ve sınıflandırma hatlarını yine de kullanabilirsiniz.
3. Web Arayüzüne Erişim
Limelight 3A'nızı USB üzerinden bilgisayarınıza bağladıktan sonra:
- Yeşil durum ışığının aktif olmasını bekleyin (yaklaşık 15-20 saniye)
- Web arayüzüne erişmek için şu yöntemlerden birini kullanın:
- Yöntem 1: Limelight Hardware Manager uygulamasını açın, Limelight'ları tarayın ve Limelight 3A'nız göründüğünde üzerine çift tıklayın
- Yöntem 2: Bir web tarayıcısı açın ve
http://limelight.local:5801adresine gidin
Bağlandıktan sonra şunlara erişebilirsiniz:
- Ayarlar sekmesi - Takım numarası, ana bilgisayar adı ve diğer sistem ayarlarını yapılandırın
- Görüntü İşleme Hattı sekmeleri - Görüntü işleme hatlarınızı kurun ve ayarlayın
- Kamera ve Artı İşareti sekmesi - Kamera ayarlarını ve artı işareti parametrelerini düzenleyin
- 3D Görselleştirme sekmesi - Gerçek zamanlı AprilTag algılama ve lokalizasyonu görüntüleyin
Tüm yapılandırma bu web arayüzü üzerinden yapılır. Değişiklikler otomatik olarak Limelight'ınıza kaydedilir.
4. LimelightOS Güncelleme
Limelight'lar önceden yüklenmiş bir imaj ile gönderilir. Bu adımı şimdilik atlayabilirsiniz.
Güncelleme Talimatları (Windows)
LimelightOS'u güncellemeden önce hatlarınızı kaydedin. Güncelleme sırasında silineceklerdir.
- İndirmeler Sayfası'ndan en son USB sürücülerini, Limelight OS imajını ve Balena Flash aracını indirin
- Sürücüleri yükledikten sonra makinenizi yeniden başlatın
- Limelight'ınızdaki mavi yapılandırma düğmesini basılı tutun
- Basılı tutarken, dizüstü bilgisayarınızdan limelight'ınıza bir USB->USB-C kablosu bağlayın (Limelight'ınız otomatik olarak açılacaktır)
- LL'nizi dizüstü bilgisayarınıza taktıktan sonra mavi yapılandırma düğmesini bırakabilirsiniz
- Limelight'ınız artık flash modundadır ve LED'leri yanıp sönmeyecektir
- "Balena Etcher"ı yönetici olarak çalıştırın
- Makinenizin kamerayı tanıması 20 saniye kadar sürebilir
- İndirmeler klasörünüzdeki en son .zip imajını seçin
- "Drives" menüsünde bir "Compute Module" cihazı seçin
- "Flash"a tıklayın
- Flash işlemi tamamlandığında, USB kablosunu limelight'ınızdan çıkarın
Güncelleme Talimatları (Gelişmiş) (macOS ve Linux)
LimelightOS'u güncellemeden önce hatlarınızı kaydedin. Güncelleme sırasında silineceklerdir.
macOS ve Linux'ta güncelleme sürecini önemli ölçüde basitleştirmek için çalışıyoruz
- İndirmeler Sayfası'ndan Limelight OS imajını ve Balena Flash aracını indirin
- USB Boot sürücüsünü kendiniz derleyin:
brew install libusb
brew install pkg-config
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
cd mass-storage-gadget64
sudo ../rpiboot -d .
# rpiboot çalıştığı sürece, kameranız macOS ve Linux'ta düzgün şekilde numaralandırılacaktır
# Her flash yapmak istediğinizde rpiboot'u çalıştırmanız gerekir.
- Limelight'ınızdaki mavi yapılandırma düğmesini basılı tutun
- Basılı tutarken, dizüstü bilgisayarınızdan limelight'ınıza bir USB->USB-C kablosu bağlayın (Limelight'ınız otomatik olarak açılacaktır)
- LL'nizi dizüstü bilgisayarınıza taktıktan sonra mavi yapılandırma düğmesini bırakabilirsiniz
- Limelight'ınız artık flash modundadır ve LED'leri yanıp sönmeyecektir
- "Balena Etcher"ı çalıştırın
- Makinenizin kamerayı tanıması 20 saniye kadar sürebilir
- İndirmeler klasörünüzdeki en son .zip imajını seçin
- "Drives" menüsünde bir "Compute Module" cihazı seçin
- "Flash"a tıklayın
- Flash işlemi tamamlandığında, USB kablosunu limelight'ınızdan çıkarın
5. Kurulum Süreci
FTC İçin
- Limelight'ınızı bir USB kablosuyla dizüstü bilgisayarınıza bağlayın
- Bölüm 3'te açıklandığı gibi web arayüzüne erişin
- Ayarlar sekmesine gidin ve takım numaranızı ayarlayın, ardından "Restart Vision Client"a tıklayın
- Hatlarınızı istediğiniz gibi yapılandırın (AprilTag, Sinir Ağları, Özel Python, vb.)
- Yarışmaya hazır olduğunuzda, Limelight 3A'nızı Control Hub'ınızın USB 3.0 portuna takın
- FTC DriverStation Uygulamasında "Configure Robot"a tıklayın
- Aktif bir yapılandırmanız yoksa, yeni bir tane oluşturmanız gerekebilir
- "scan" düğmesine tıklayın
- Bir "Ethernet Device" görünmelidir
- Netlik için bu cihazın adını "limelight" olarak düzenleyebilirsiniz
- Artık kodunuzda hardware map kullanarak bir Limelight3A nesnesi başlatabilirsiniz
FRC İçin
- Limelight 3A'nızı dizüstü bilgisayarınıza bağlayın, durum ışığı aktivitesini bekleyin
- Bölüm 3'te açıklandığı gibi web arayüzüne erişin
- Ayarlar sekmesinde takım numaranızı ayarlayın ve "Restart Vision Client"a tıklayın
- Hatlarınızı istediğiniz gibi yapılandırın
- Hazır olduğunuzda, Limelight 3A'nızı roboRIO'nuzun USB portuna takın
- 3A'nızın roboRIO'nuzun NetworkTables'ına veri gönderdiğinden emin olmak için tercih ettiğiniz dashboard'u açın
- Robotunuzun ağına bağlıyken canlı hat düzenlemeyi etkinleştirmek için Port Yönlendirme ekleyin:
- Java
- CPP
// (robotIP):5801 artık Limelight3A'nın (id 0) web arayüzü akışına yönlendirecek:
// (robotIP):5800 artık Limelight3A'nın (id 0) video akışına yönlendirecek:
PortForwarder.getInstance().add(5801, "172.29.0.1", 5801);
PortForwarder.getInstance().add(5802, "172.29.0.1", 5802);
PortForwarder.getInstance().add(5803, "172.29.0.1", 5803);
PortForwarder.getInstance().add(5804, "172.29.0.1", 5804);
PortForwarder.getInstance().add(5805, "172.29.0.1", 5805);
PortForwarder.getInstance().add(5806, "172.29.0.1", 5806);
PortForwarder.getInstance().add(5807, "172.29.0.1", 5807);
PortForwarder.getInstance().add(5808, "172.29.0.1", 5808);
PortForwarder.getInstance().add(5809, "172.29.0.1", 5809);
// (robotIP):5811 artık Limelight3A'nın (id 1) web arayüzü akışına yönlendirecek:
// (robotIP):5810 artık Limelight3A'nın (id 1) video akışına yönlendirecek:
PortForwarder.getInstance().add(5811, "172.29.1.1", 5801);
PortForwarder.getInstance().add(5812, "172.29.1.1", 5802);
PortForwarder.getInstance().add(5813, "172.29.1.1", 5803);
PortForwarder.getInstance().add(5814, "172.29.1.1", 5804);
PortForwarder.getInstance().add(5815, "172.29.1.1", 5805);
PortForwarder.getInstance().add(5816, "172.29.1.1", 5806);
PortForwarder.getInstance().add(5817, "172.29.1.1", 5807);
PortForwarder.getInstance().add(5818, "172.29.1.1", 5808);
PortForwarder.getInstance().add(5819, "172.29.1.1", 5809);
// (robotIP):5801 artık Limelight3A'nın (id 0) web arayüzü akışına yönlendirecek:
// (robotIP):5800 artık Limelight3A'nın (id 0) video akışına yönlendirecek:
wpi::PortForwarder::GetInstance().Add(5801,"172.29.0.1",5801);
wpi::PortForwarder::GetInstance().Add(5802,"172.29.0.1",5802);
wpi::PortForwarder::GetInstance().Add(5803,"172.29.0.1",5803);
wpi::PortForwarder::GetInstance().Add(5804,"172.29.0.1",5804);
wpi::PortForwarder::GetInstance().Add(5805,"172.29.0.1",5805);
wpi::PortForwarder::GetInstance().Add(5806,"172.29.0.1",5806);
wpi::PortForwarder::GetInstance().Add(5807,"172.29.0.1",5807);
wpi::PortForwarder::GetInstance().Add(5808,"172.29.0.1",5808);
wpi::PortForwarder::GetInstance().Add(5809,"172.29.0.1",5809);
// (robotIP):5811 artık Limelight3A'nın (id 1) web arayüzü akışına yönlendirecek:
// (robotIP):5810 artık Limelight3A'nın (id 1) video akışına yönlendirecek:
wpi::PortForwarder::GetInstance().Add(5811,"172.29.1.1",5801);
wpi::PortForwarder::GetInstance().Add(5812,"172.29.1.1",5802);
wpi::PortForwarder::GetInstance().Add(5813,"172.29.1.1",5803);
wpi::PortForwarder::GetInstance().Add(5814,"172.29.1.1",5804);
wpi::PortForwarder::GetInstance().Add(5815,"172.29.1.1",5805);
wpi::PortForwarder::GetInstance().Add(5816,"172.29.1.1",5806);
wpi::PortForwarder::GetInstance().Add(5817,"172.29.1.1",5807);
wpi::PortForwarder::GetInstance().Add(5818,"172.29.1.1",5808);
wpi::PortForwarder::GetInstance().Add(5819,"172.29.1.1",5809);
6. Mevcut Hat Türleri
Limelight 3A, diğer Limelight modelleriyle aynı görüntü işleme özelliklerini sunar:
- AprilTag takibi ve robot lokalizasyonu
- Renk blob takibi
- Sinir ağı nesne algılama (yalnızca CPU)
- Sinir ağı sınıflandırma
- Barkod takibi
- Özel Python hatları
Her 3A, FTC için dahili Into The Deep saha haritasıyla birlikte gönderilir.
7. FTC Programlama
Temel FTC Örneği: FTC Örneği
Çoğu uygulama 10 satırdan az kod gerektirir:
public class Teleop extends LinearOpMode {
private Limelight3A limelight;
@Override
public void runOpMode() throws InterruptedException
{
limelight = hardwareMap.get(Limelight3A.class, "limelight");
telemetry.setMsTransmissionInterval(11);
limelight.pipelineSwitch(0);
/*
* Veri yoklamasını başlatır.
*/
limelight.start();
while (opModeIsActive()) {
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose();
telemetry.addData("tx", result.getTx());
telemetry.addData("ty", result.getTy());
telemetry.addData("Botpose", botpose.toString());
}
}
}
}
}
Maksimum 3D lokalizasyon doğruluğu için updateRobotOrientation() çağırın ve getBotPose_MT2() kullanın:
while (opModeIsActive()) {
YawPitchRollAngles orientation = imu.getRobotYawPitchRollAngles();
limelight.updateRobotOrientation(orientation.getYaw(AngleUnit.DEGREES));
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose_MT2();
// botpose verilerini kullanın
}
}
}
Daha fazla bilgi için FTC Programlama sayfasına bakın
8. Sorun Giderme
Durum Işığı Göstergeleri
- Yeşil Işık: Yavaş yanıp söner (hedef yok), hızlı yanıp söner (hedefler algılandı)
SSS
-
Limelight'ım neden bu kadar sıcak hissediyor? Limelight'ın mümkün olduğunca serin çalışması için, dokunulduğunda mümkün olduğunca sıcak/güvenli bir şekilde sıcak hissetmesi gerekir. Kasası, CPU'yu makul ölçüde serin bir sıcaklıkta tutmaya yardımcı olan yüksek iletkenliğe sahip bir soğutucudur.
-
Görüntü neden bu kadar grenli görünüyor? Gecikmeyi en aza indirmek için, ticari kameralarda normalde bulunan birkaç filtre atlanır. Akış ayrıca bit hızını en aza indirmek için sıkıştırılır. 2024.10.1'de, görüntülerin insan gözüne daha doğal ve canlı görünmesi için varsayılan renk dengesi değerlerini değiştirdik.
-
Limelight, Control Hub üzerindeki OpenCV'ye göre ne sunuyor? Robot IMU sensör füzyonu, sinir ağları ve daha fazlasıyla kutudan çıkar çıkmaz, sıfır kodlu, çoklu etiket lokalizasyon algoritması.