Donanım içeren simülasyon (HIL) testi, karmaşık sistemlerin performansını doğrulamak ve onaylamak için kullanılan güçlü bir araçtır. Bu sistemler robotik ve bilgisayarlı görüyü de içerir. Bu yazımızda NVIDIA Isaac platformu ile HIL testinin robotik ve bilgisayarlı görü alanlarında nasıl kullanıldığını anlatacağız.
NVIDIA Isaac platformu NVIDIA Isaac Sim ve NVIDIA Isaac ROS’tan oluşur. NVIDIA Isaac Sim robotik algoritmalarını test etmek için ortam sağlayan bir simülatördür. NVIDIA Isaac ROS, NVIDIA Jetson için optimize edilmiş, makine öğrenimi, bilgisayarlı görü ve lokalizasyon algoritmaları içeren donanım hızlandırmalı bir yazılımdır.
NVIDIA Isaac platformu ile HIL testini kullanarak, robotik yazılımınızın performansını doğrulama ve optimize etme imkanı sunmaktadır. Böylece test sonuçları ile birlikte daha güvenilir ürünler elde edebilirsiniz. Bu yazıda, HIL sisteminin bölümleri ile birlikte, NVIDIA Isaac platformunun yazılım ve donanımından bahsedeceğiz. Ayrıca HIL testi için NVIDIA Isaac platformunu kullanmanın faydalarına göz atacağız ve bunu diğer test yöntemleriyle karşılaştıracağız.
NVIDIA Isaac Sim
Omniverse’ün bir platformu olan NVIDIA Isaac Sim, robotik ve bilgisayarlı görü algoritmalarını test etmek için foto-gerçekçi, fiziksel olarak uygun bir sanal ortam sağlar. Simülasyon ortamı, fiziksel donanıma zarar verme riski olmadan performans için ince ayarları yapmanıza imkan sağlar.
NVIDIA Isaac Sim kullanarak daha akıllı ve gelişmiş robotlar oluşturabilirsiniz. Platform, robotların karmaşık görevleri gerçekleştirmesini sağlayan kompleks algoritmalar oluşturmanıza yardımcı olan araçlar ve teknolojiler sağlar. NVIDIA Isaac Sim, Omniverse Nucleus ve Omniverse Connectors kullanarak ortamları ve robot modellerini Evrensel Sahne Tanımı (USD) ortamlar ve robot modelleri ile kolayca işbirliği yapabilir, bunları paylaşabilir ve içe aktarabilir. Isaac ROS, Python desteği ve robot ve ortam modellerini içe aktarma eklentileri, robotik simülasyonlara daha verimli ve etkili bir yaklaşım sağlar.
NVIDIA Isaac Sim stack
NVIDIA Isaac Sim’i ROS/ROS2 veya Python ile kullanabilirsiniz. Isaac Sim ortamında Isaac Gym veya Isaac Cortexi kullanabilir, sentetik veri üretebilir veya dijital ikiz çalışmalarınızda kullanabilirsiniz. NVIDIA Isaac Sim, Omniverse ve Python 3.7 ile sorunsuz bir şekilde çalışması için roscpp ile özelleştirilmiş bir ROS Noetic sürümünü dahili olarak kullanır. Bu sürüm ROS Melodic ile uyumludur.
NVIDIA Isaac Sim şu anda ROS 2 köprüsü için ROS 2 Foxy ve Humble’ı desteklemektedir. ROS 2 için Ubuntu 20.04 kullanmanızı öneririz.
NVIDIA Isaac ROS
Robot İşletim Sistemi (ROS) üzerine kurulu olan NVIDIA Isaac ROS, daha akıllı ve daha yetenekli robotlar oluşturmanıza yardımcı olacak bir dizi ileri özellik ve araç sunar. Özellikler arasında ileri düzeyde haritalama ve yer belirleme(lokalizasyon) yetenekleri, obje tespiti ve obje takibi(tracking) bulunur. En son özellikler hakkında daha fazla bilgi için, Isaac ROS Developer Preview 3′e bakın.
Isaac ROS ile kompleks robotik uygulamaları hassasiyet ve doğrulukla oluşturabilirsiniz. Güçlü bilgisayarlı görü ve yerelleştirme algoritmalarıyla Isaac ROS, gelişmiş robotik uygulamaları oluşturmak isteyen tüm geliştiriciler için değerli bir araçtır.
Isaac ROS ve Yazılım Katmanları
Isaac GEMs, robotik topluluğu için piyasaya sürülen ve NVIDIA Jetson platformunun bir parçası olan GPU hızlandırmalı ROS 2 paketlerinden oluşan bir settir. Isaac ROS, algılama ve yapay zeka için bir dizi paketin yanı sıra ROS için NVIDIA Isaac Transport (NITROS) olarak bilinen eksiksiz pipeline sunar. Paketler, NVIDIA GPU’lar ve Jetson platformu için görüntü işleme ve bilgisayar görüşü işlevleri için optimize edilmiştir.
Bu yazıda, aşağıdaki paketler için HIL çalıştırma örneklerinden bahsedeceğiz:
– NVIDIA Isaac ROS VSLAM
– NVIDIA Isaac ROS Apriltag
– NVIDIA Isaac ROS Nvblox
– NVIDIA Isaac ROS Proximity Segmentation
Donanım Özellikleri ve Kurulum
Bu test için bir iş istasyonu veya dizüstü bilgisayarınız ve bir NVIDIA Jetson gereklidir:
– Ubuntu 20.04 yüklü bir x86/64 makine
– NVIDIA RTX ile NVIDIA Grafik kartı
– Ekran
– Klavye ve fare
– NVIDIA Jetson AGX Orin veya NVIDIA Jetson Orin NX
– NVIDIA JetPack 5+ (5.1.1 test edildi)
– Router
– Ethernet kablolari
Donanım Kurulumu
NVIDIA Jetson modülü ve bilgisayar gibi cihazlar arasında büyük miktarda veri aktarırken Wi-Fi yerine kablolu Ethernet bağlantısı kullanmak genellikle tercih edilir. Bunun nedeni, Ethernet bağlantılarının daha hızlı ve daha güvenilir veri aktarım hızları sunmasıdır; bu da özellikle gerçek zamanlı veri işleme ve makine öğrenimi görevleri için önemli olabilir. Jetson modülü ile bilgisayarınız arasında bir Ethernet bağlantısı kurmak için aşağıdaki adımları izleyin:
Jetson modülü ve bilgisayarınız arasında bir Ethernet bağlantısı kurmak için şu adımları izleyin:
– Boş Ethernet portlarına sahip bir Ethernet kablosu ve bir router alın.
– Kablonun bir ucunu cihazın Ethernet portuna takın.
– Kablonun diğer ucunu router’ın herhangi bir boş Ethernet portuna takın.
– Cihazı açın ve tamamen başlamasını bekleyin.
– Ethernet bağlantısının çalıştığını, Ethernet simgesine bakarak veya ifconfig veya ipconfig gibi bir ağ teşhis aracı kullanarak kontrol edin.
– PC’niz ve NVIDIA Jetson hazır ve bağlandığında, isaac_demo GitHub reposundaki kurulum talimatlarını izleyin.
Demo’yu Çalıştırma
İlk adımda, iş istasyonunuzda NVIDIA Isaac Sim’i çalıştırın. ‘./isaac_ros.sh’ scripti, Carter robotu ile bir demo çalıştırır.
Carter 1.0, Segway’den diferansiyel taban, 3D taramaları için bir Velodyne P16, ZED kamera, IMU ve Jetson modülünden oluşan robotik bir platformdur. Özel montaj parçaları ile birlikte, bu NVIDIA Isaac navigasyon yığını için güçlü ve sağlam bir deneme platformu oluşturur. Simülasyon başladığında, NVIDIA Isaac Sim’den stereo kamera görüntülerini görürsünüz. Robot, iki kamera kullanarak NVIDIA Jetson modülünüzde çalışan Isaac ROS’tan gelen girdileri almaya hazırdır.
Carter’ın NVIDIA Isaac Sim’deki kamera görüntüleri
Denenecek Isaac ROS paketleri
Bu yazıda, AMR robotik veya tekerlekli robotunuzla kullanmak için lokalizasyon, haritalama ve AprilTag algılama paketlerine odaklanıyoruz ancak gerektiğinde diğer paketleri test etmek için repoyu değiştirebilirsiniz.
Isaac ROS Visual SLAM
NVIDIA Isaac ROS Visual SLAM, görsel odometri ile eşzamanlı konum belirleme ve haritalamanın (SLAM) bir kombinasyonunu kullanır. Görsel odometri, bir kameranın başlangıç noktasına göre konumunu tahmin etmek için kullanılan bir tekniktir. Bu teknik, anahtar nokta setlerini tanımlamak için iki ardışık giriş karesini veya stereo çiftini analiz eden yinelemeli süreçleri içerir. Bu iki setteki kilit noktaları eşleştirerek kameranın kareler arasındaki geçişini ve göreli dönüşünü belirleyebilirsiniz.
SLAM, daha önce edinilmiş bir yörünge bilgisini dahil ederek görsel SLAM’ın doğruluğunu artıran bir yaklaşımdır. Mevcut bir sahnenin daha önce görülüp görülmediğini tespit ederek (kamera hareketindeki bir döngü), önceden tahmin edilen kamera pozlarını optimize edebilir.
Isaac ROS VSLAM ve nvblox
Isaac ROS VSLAM ve nvblox çalışırkenki kaynak kullanımı
Isaac ROS NVblox
NVblox paketi, sensörleri kullanarak gerçek zamanlı olarak bir robotun çevresindeki ortamın 3D modelini oluşturmaya yardımcı olur. Bu model, robotların oluşturlan ilerleme istikametlerinde herhangi bir engel çarpmadan ilerlemesi için kullanılır. Paket, gerçek zamanlı performans için NVIDIA CUDA teknolojisini kullanır. Bu repo, nvblox kütüphanesi için ROS 2 entegrasyonunu içerir.
Isaac ROS NVblox Akışı
Isaac ROS VSLAM Çıktısı
Isaac ROS vslam paketi, isaac_demo talimatlarını izlediyseniz demo’nuzda her zaman çalışır.
NVIDIA Isaac ROS Apriltag
ROS 2 apriltag paketi, bir görüntüdeki algılamayı hızlandırmak, poz, kimlik ve diğer meta verileri yayınlamak için NVIDIA GPU kullanır. Bu paket, CPU AprilTag algılaması için ROS 2 düğümü ile karşılaştırılabilir.
Bu etiketler, bir robotun bir eylemi başlatması veya bir işi belirli bir noktada tamamlaması için yönlendiren referanslardır. Ayrıca artırılmış gerçeklikte görüntü odometrisini kalibre etmek için de kullanılırlar. Bu etiketler birçok sistemde mevcuttur.
QR Kodlarıyla AprilTags Örnekleri
Isaac ROS Apriltag Tespit Demosu
Isaac ROS Yakınlık Segmentasyonu
‘Isaac_ros_bi3d’ paketi, ikili sınıflandırma yoluyla stereo derinlik tahmini yapmak için optimize edilmiş bir Bi3D modeli kullanır. Bu işlem, belirli bir aralıkta bir engelin mevcut olup olmadığını belirlemede yararlı olan ve çevrede gezinirken çarpışmaları önlemeye yardımcı olan yakınlık segmentasyonu için kullanılır.
Isaac ROS Yakınlık Segmentasyonu
Carter’ı rviz’den Kullanın
Rviz hazır olduğunda ve her şey çalıştığında, rviz alttaki çıktıyı gösterir. Yukarıdaki görsel, Carter’ın haritanın merkezinde olduğunu ve bloklar üzerinde olduğunu gösterir. Aşağıdaki videoda, rviz’i kullanarak robotunuzu tüm ortamlarda sürüp Nvblox’tan oluşturulan haritayı görebilirsiniz.
rviz üzerinden Isaac ROS VSLAM ve Isaac ROS Nvblox ile haritalama
Aşağıdaki videoda, rviz’i kullanarak robotunuzu tüm ortamlarda sürüp Nvblox’tan oluşturulan haritayı görebilirsiniz.
Isaac ROS Yakınlık Segmentasyonu
Simülasyonu test etmek için Foxglove’ı da kullanabilirsiniz.
Foxglove ile Simülasyon Testleri
Özet
Bu yazıda, NVIDIA Jetson Isaac ROS modülünüzle simülasyon ortamında donanımın nasıl kurulacağını ve test edileceğini ve NVIDIA Isaac Sim’in nasıl deneyeceğinizi gösterdik. İş istasyonunuz ve Jetson modülünüz arasında kablolu bir bağlantı kullanmayı unutmayın. Tüm akan ham verileri göstermek için güvenilir bir bağlantıya ihtiyacınız vardır.
Ayrıca ‘/isaac-ros_dev’ klasörüne yeni eklenen diğer NVIDIA Isaac ROS paketlerini test etmekten de çekinmeyin. Daha fazla bilgi için, isaac_demo’daki readme.md dosyasına bakın.
Yazının kaynağına buradan ulaşabilirsiniz.
OPENZEKA HABERLERİ
OPENZEKA HABERLERİ
Hesaplarınızda paylaşmak ister misiniz?