“ROS 2 ve NVIDIA Isaac Sim ile Robotları Simüle Etme ve Test Etme: Yeni Başlayanlar İçin Kılavuz”

Fiziksel AI destekli robotlar, fiziksel dünyada karmaşık görevleri otonom bir şekilde algılama, planlama ve gerçekleştirme yeteneğine ihtiyaç duyarlar. Bu görevler, dinamik ve öngörülemeyen ortamlarda nesneleri güvenli ve verimli bir şekilde taşıma ve manipüle etme gibi işlemleri içerir.

Robot simülasyonu, geliştiricilerin sanal robot öğrenimi ve test etmeleri aracılığıyla bu ileri düzey sistemleri eğitmelerine, simüle etmelerine ve doğrulamalarına olanak tanır. Tüm bu işlemler, robotların gerçek dünya görevlerine çıkmadan önce, depolar ve fabrikalar gibi ortamların fizik temelli dijital temsilleri üzerinde gerçekleştirilir.

Bu yazıda, NVIDIA’nın Omniverse platformu üzerine inşa edilen bir referans uygulaması olan ROS 2 paketlerinizi kullanarak robot yığınınızı nasıl simüle edip doğrulayabileceğinizi göstereceğiz. Ayrıca, Isaac Sim’in AI destekli robotlar için açtığı kullanım senaryolarını da ele alacağız.

Isaac Sim, simülasyonlar için temel bir çerçeve olan Universal Scene Description (OpenUSD) üzerine inşa edilmiştir. Geliştiriciler olarak, Isaac Sim ile robot modelleri ve sanal eğitim ortamlarını kolaylıkla tasarlayıp, içe aktarabilir, oluşturabilir ve paylaşabilirsiniz. OpenUSD, robotun beyninin sanal dünyasıyla bağlantısını ROS 2 arayüzü, tam özellikli Python betikleme ve robot ile çevre modellerini içe aktarmak için çok yönlü eklentiler aracılığıyla kolaylaştırmaktadır.

Isaac Sim ile ROS 2 İş Akışı

Isaac Sim ile ROS 2 iş akışı, Gazebo gibi diğer robot simülatörleri ile yapılan iş akışlarına benzer. Yüksek düzeyde, iş akışı robot modelinizi yerleşik bir Isaac Sim ortamına aktarmakla başlar. Sonraki adım, robota sensörler eklemek ve ardından ilgili bileşenleri ROS 2 eylem grafiği ile bağlamaktır. En sonunda robotu simüle ederek, ROS 2 paketleri aracılığıyla kontrol etmek yer alır.

Diagram showing the workflow for Isaac Sim to ROS, from importing the robot model to adding the robot to a simulated environment, setting up sensors, and simulating the scene.
Şekil 1. Isaac Sim ile ROS iş akışı

URDF: Simülasyona Başlangıç Noktası

Isaac Sim’deki ROS 2 iş akışı genellikle robot modelinin URDF içe aktarıcı ile aktarılmasıyla başlar. URDF, simülasyon araçlarında robot modelleri ile çalışmak için yaygın bir format olarak kabul edilmektedir.

Ayrıca, üçüncü taraf araçlar ve hizmetlerden ek dosyalar, veriler ve ortamlar tanıtmak için dahili sihirbazı da kullanabilirsiniz. Basit birkaç soruyu yanıtlayarak doğru varlıkların, yani robot modelleri, araçlar ve sensörlerin simülasyon sahenize nasıl getirileceğine dair ilgili adımları bulabilirsiniz.

Şekil 2. Isaac Sim’deki içe aktarma sihirbazı

Önceden Hazırlanmış Sahne ve SimReady Varlıkları

Her robot simülasyonunda olduğu gibi, robot eylemlerinizi simüle etmek için bir sahneye ihtiyaç duyarsınız. Isaac Sim, basit ofis ortamlarından büyük karmaşık alanlara kadar birçok önceden oluşturulmuş 3D sahne sunmaktadır. Ayrıca, USD Bağlantıları aracılığıyla diğer araçlardan daha karmaşık 3D sahneleri de getirebilirsiniz.

Şekil 3. Isaac Sim’de örnek bir depo sahnesi

3D sahnelerin yanı sıra, gerçek dünyayı simüle edilmiş dijital dünyalarda temsil etmek için doğru fiziksel özelliklere, davranışlara ve bağlantılı veri akışlarına sahip bir bin’den fazla SimReady varlık da kullanılabilir.

Şekil 4. Isaac Sim’deki SimReady varlıkları

Sensor Eklemek

Sensörler, robotların çevrelerini algılamasını ve gerekli eylemleri gerçekleştirmesini sağlar. Humanoidler, manipülatörler ve AMR’ler gibi robotlar, stereo kameralar, 2D ve 3D lidar ve radar gibi birden fazla sensör ile donatılmaktadır. Ayrıca, robotlar fiziksel sensörler de kullanır; bunlar arasında temas ve ivme sensörleri bulunur.

Isaac Sim’de, Intel, Orbbec, Stereolabs, HESAI, SICK, SLAMTEC gibi üreticilerin çok sayıda üçüncü taraf sensörleri bulunmaktadır. Kendi özel simülasyon sensörlerinizi de geliştirmek mümkündür.

NVIDIA RTX teknolojisi kullanarak, fiziksel olarak doğru simülasyonlardan fotorealistik görüntüler elde edebilirsiniz. Bu renderlanmış görüntüler, AI modellerinin eğitimi ve yazılım içi testler için kullanılabilir.

ROS 2 ile Bağlantı Kurma

Isaac Sim, ROS 2 Bridge uzantısı aracılığıyla ROS 2 ile bağlantı kurar. Bu uzantı, ROS geliştiricileri için çeşitli OmniGraph (OG) düğümleri içerir. OG düğümleri, ROS düğümlerinden farklıdır; bu düğümler, simülasyonda karmaşık görevleri gerçekleştirmek için bağlantılı bir grafik yapısında kullanılmak üzere işlevselliği kapsayan yapı taşlarıdır.

Örneğin, ROS’a zaman yayınlamak için iki ana OG düğümü kullanılır. İlk olarak, simülasyon zamanını okuyacak olan Isaac Read Simulation Time Düğümü’dür. Bu düğümün çıktısı, ROS 2 saatini yayınlayan Publish Clock OG düğümüne girdi olarak sağlanır.

Şekil 5. Isaac Sim’den ROS 2’ye saat yayını

ROS 2 Bridge, simülasyondaki bir kameradan veya lidar’dan veri yayınlamak, robotun dönüşüm ağacını yayınlamak ve hız mesajlarını dinlemek için faydalı OG düğmleri sunar. Bu düğümlerin parametreleri, kuyruk boyutu, konu adı, bağlam ve QoS gibi ayarlanabilir. ROS 2 Eylem Grafiği oluşturmak için bağlanarak, popüler ROS 2 paketlerini kullanarak navigasyon ve manipülasyon gibi karmaşık görevleri gerçekleştirmek mümkündür.

ROS 2 Bridge’i etkinleştirmek, rclpy, Python için ROS 2 istemci kütüphanesine erişim sağlar. Bu, Python’da veri sahnesine ve simüle edilmiş robota doğrudan erişim ve düzenleme yapılabilen özel ROS 2 kodları yazmayı mümkün kılar.

Özel mesaj desteği, Isaac Sim’i çalıştırmadan önce çalışma alanınızı kaynaklayarak etkinleştirilir. Belirli görevler için özel Python veya C++ OG düğümleri de yazılabilir (örneğin, özel bir mesaj konusuna temas sensör durumu yayınlama).

Algılamaya Geçiş: AI Destekli Robotlar

Önceki bölümler, Isaac Sim ile ROS 2 iş akışının mevcut iş akışlarınıza benzer olduğunu detaylandırmıştır. Şimdi, algılama ve bilişsel modeller kullanan AI destekli robotlar için Isaac Sim’in sunduğu özelliklere bir göz atacağız.

Basitten Karmaşığa Simülasyon Ölçeklenmesi

Özerklik sağlamak için, robotların karmaşık ve çeşitli ortamlarla simüle edilmesi gerekmektedir. Isaac Sim’in temelini oluşturan OpenUSD, robotik iş akışları açısından son derece esnek ve ölçeklenebilirdir. Simülasyonunuzu, gerçek bir fabrikanın tüm önemli bileşenlerini modelleyerek, çalışma alanında tek robotlardan, karmaşık fabrikalarda birden fazla robota hızla ölçekleyebilirsiniz. Aşağıdaki video, Isaac Sim içinde gerçekleştirebileceğiniz karmaşık simülasyona bir örnek sunmaktadır.

Video 1. Ağır sanayinin geleceği dijital ikizle başlar

Model Eğitimi için Sentetik Veri Üretimi

Bu robotları güçlendiren algılama AI modellerini eğitmek için çok fazla veriye ihtiyaç vardır. Çoğu durumda, gerçek dünya verileri elde edilmesi son derece zordur. Ayrıca, gerçek dünya verileri genellikle çeşitli senaryoları ve kenar durumlarını yakalamakta yetersiz kalabilir.

Bu veri boşluğunu aşmak için, Isaac Sim’deki sensörler kullanılarak sentetik veriler üretilir. Temel özelliklerden biri olan alan rastgeleleştirme, bir simülasyon sahnesindeki birçok parametreyi, konum, aydınlatma, renk, doku, arka plan gibi elemanları değiştirerek çeşitli eğitim verileri üretmeyi mümkün kılar. Sentetik verilerin ek bir avantajı, model KPI’larını geliştirmek için hızlı bir şekilde iterasyon yapabilmektir.

FoundationPose, yalnızca sentetik verilerle eğitilmiş bir nesne poz ve izleme modelidir ve ince ayar gerektirmeden dağıtılabilir. Robotlardan daha büyük sahnelere ölçeklenerek, sentetik veriler, AI modellerinin geliştirilmesinde kullanılmaktadır, bu da perakende ve depo ortamlarında operasyonel verimliliği artırmak için kullanılmaktadır.

Çoklu Ajan Yazılım-Döngü Testi

Tesisler ve depolar, endüstriyel kollar, AMR’ler ve hatta birey otomasyon görevlerini otonom olarak yerine getirmesi gereken birden fazla robot türünü barındırır. Isaac Sim, tüm robot filosunun algılama yığınının performansını ve davranışını test etmek ve doğrulamak için kullanılabilir. Bu, gerçek dünyada zorluğun üstesinden gelinemeyecek birçok senaryoda simülasyon ile gerçekleştirilebilir.

Şekil 6. Isaac Sim ile çoklu robotlar için yazılım-döngü testini ölçeklendirme

Daha Fazla İş Akışı ve Kullanım Senaryoları

Isaac Sim, özel ihtiyaçlarınıza uygun robot simülatörleri ve uzantıları oluşturma esnekliği sağlayarak daha fazla iş akışına ve kullanım senaryolarına genişletilebilir. Bu çok yönlülük, gelişmiş robot öğrenme tekniklerine ve ölçeklenebilir eğitim sağlar ve çeşitli kullanım senaryolarına uyum sağlar.

Robot Öğrenme

Isaac Sim, robotların görevlerini tekrarlanabilir ve verimli bir şekilde gerçekleştirmesini sağlamak için gereken robot öğrenme işlemlerine de genişletilmiştir. Örneğin, Isaac Lab, fotorealistik ve hızlı simülasyonlar için Isaac Sim üzerine inşa edilmiş hafif, açık kaynak bir referans çerçevesidir. Isaac Lab, pekiştirme ve taklit öğrenme gibi yöntemleri kullanır ve geliştiricilere çoklu GPU ve çoklu düğüm sistemlerinde robot politika eğitimini ölçekleme imkanı sunar.

Özel Simülatörler ve Uzantılar

Isaac Sim, kendi özel robot simülatörlerinizi veya uygulamalarınızı oluşturmak için de kullanılabilir. Foxglove, robotik geliştiriciler için vizyon araçları üreten ve daha etkili iş birliği, doğrulama ve daha hızlı iterasyon sağlamaya yardımcı olan bir NVIDIA Inception Programı üyesidir.

Foxglove uzantısı, WebSocket Protokolü kullanarak, her Isaac Sim projesini Foxglove görselleştirme arayüzüne bağlamaktadır. Bu uzantı, simülasyon aşamasındaki tüm kameraları, IMU’ları ve hareketli parçaları otomatik olarak tespit eder ve verilerini Foxglove’da kullanıma sunar. Bununla birlikte, aşırı veri akışını önlemek için sensörler yalnızca kullanıcı Foxglove’da etkinleştirildiğinde sorgulanır.

Şekil 7. Foxglove özelleştirilmiş uzantısı, simülasyon senaryolarını görselleştirmeye ve hata ayıklamaya yardımcı olur.

Robotik Simülasyona Başlangıç Yapın

Bu yazıda, mevcut ROS iş akışınıza Isaac Sim ile nasıl bağlanabileceğinizi açıkladık. Ayrıca, AI destekli robotlar için sentetik veri üretimi ve yazılım-döngü testine dair Isaac Sim’in sunduğu bazı özellikleri de inceledik.

NVIDIA Isaac Sim ile başlayarak standart lisansı ücretsiz indirin. Isaac Sim’de ROS iş akışlarına başlamak için şu kaynaklara göz atabilirsiniz:

NVIDIA geliştirici forumlarında (NVIDIA Developer forumları), Discord sunucusu ve YouTube kanallarında robotik topluluğuna katılın. Ayrıca LinkedIn, Instagram, X ve Facebook üzerinden güncel kalın.

Kaynak

Nvdia Blog

Exit mobile version