SON DAKİKA

Nvdia

NVIDIA Isaac Sim ile Akıllı Robotlar Eğitmek için Sentetik Veri Tabanlı Pipeline’lar Oluşturma

Robotlar İçin Verimli Simülasyon Süreçleri

Teknolojinin ilerlemesiyle birlikte robotlar daha dinamik hareket görevlerini üstleniyor. Ancak, geliştiricilerin ihtiyaç duyduğu, çevre ve iş yükleri ile etkin bir şekilde ölçeklenebilen fiziksel doğrulukta simülasyonlar sağlamak için yüksek kaliteli verilere gereksinim duyuluyor. Bu verilerin fiziksel dünyada toplanması oldukça pahalı ve zaman alıcı olabilir.

Sentetik veriler, NVIDIA Isaac Sim ile oluşturulan simüle edilmiş ortamlar kullanılarak üretilebilir ve veri üretim sürecini hızlandırmanın pratik bir yolunu sunar.

Simüle Edilmiş Ortamlar ve Veri Üretimi

Bu blogda şu konuları ele alacağız:

  1. 3D ortam varlıklarını NVIDIA Omniverse NuRec ile simüle edilmiş bir ortama eklemek.
  2. Simülasyona hazır (SimReady) varlıkları sahneye eklemek.
  3. Mobilite verilerini MobilityGen kullanarak Isaac Sim ya da NVIDIA Isaac Lab’de üretmek.
  4. Üretilen verileri NVIDIA Cosmosdünya temel modelleri ile geliştirmek.

3D Dijital İkizler Oluşturma

Omniverse NuRec, gerçek dünya sensör verilerinden 3D etkileşimli simülasyonların yeniden oluşturulmasını sağlayan bir teknoloji setidir. Yeniden oluşturulan ortamlar, robotik, otonom araçlar ve endüstriyel/jeo-uzamsal gibi birçok alanda yapay veriler üretmek, AI modellerini eğitmek ve model davranışını test etmek için kullanılır.

Isaac Sim, NuRec Gaussian tabanlı renderleme ile nöral ışıma alanları (NeRF), 3D Gaussian Splat’lar (3DGS) ve 3D Gaussian Unscented Dönüşümleri (3DGUT) destekler. Veriler, simülasyon için OpenUSD formatında işlenir. Uygun varlıklar ve sahneleri Isaac Sim’de yükleyebilir ve render işlemlerini OmniNuRecVolumeAPI özellikleri üzerinden kontrol edebilirsiniz. Robotik kullanım durumları için NuRec hakkında daha fazla bilgi için belgelere göz atın.

SimReady Varlıklarının Eklenmesi

SimReady varlıkları, USDPhysics tabanlı fizik özelliklerine sahip, inandırıcı 3D modellerdir ve robot simülasyon kurulumunu hızlandırır. SimReady Warehouse 01 Varlık Paketi, paletler, depolama rafları ve rampalar gibi nesnelerin geniş bir koleksiyonunu içerir. Bu varlıkları sahnenize sürükleyip bırakabilirsiniz. Robotik ve ilgili kullanım durumları için Physical AI veri setini keşfedin.

Aşağıdaki video, Isaac Sim’de nasıl SimReady varlıkları ekleyebileceğinizi göstermektedir.

Video 1. Fiziksel olarak doğru 3D nesneleri basit sürükleyip bırakma işlevi ile depo sahalarına yerleştirme

Bu şekilde, simülasyonda birden fazla nesne ile sahneler oluşturabiliriz. Bu simüle edilmiş ortamların en büyük kullanım amacı, robot politikalarını eğitmek için yapay veri toplamaktır ki bunu bir sonraki bölümde öğreneceğiz.

MobilityGen ile Sentetik Veri Üretimi

MobilityGen, Isaac Sim üzerinde mobil robotlar için veri üretmeyi sağlayan bir akıştır. Klavye ve oyun kumandası ile manuel yöntemler ya da rastgele ivmeler ve rastgele yol takip etme gibi otomatik yöntemlerle veri toplama desteği sunar.

Aşağıdaki örnekte, MobilityGen‘in Isaac Sim’deki H1 humanoid robotu için veri üretiminde nasıl kullanıldığını öğreneceksiniz. Bu iş akışı, kendi robot türleri üzerinde de kullanılabilir ve Spot ve Carter robotlarında test edilmiştir.

MobilityGen’den alınan veriler, robotların hareket politikalarını eğitmek için kullanılır. Ancak performans, verinin görsel çeşitlilik içermesi ile artmaktadır. Bu konuda veriyi görsel çeşitlilik ile artırmayı NVIDIA Cosmos ile bir sonraki bölümde öğreneceğiz.

MobilityGen ile veri üretirken izlenecek adımların şunlar olduğunu özetleyebiliriz:

  1. İşgal Haritası Oluşturma: Bu, robotun ortamını temsil eden bir grid tabanlı yapıdır; her bir hücre, bir engelin olup olmadığını gösterir.
  2. Bir Yörünge Kaydetme: Mobil bir robotun yörüngesi, hareket ederken her anın pozisyonunu, hızını ve yönünü tanımlar.
  3. Replay ve Render: Üretilen yörüngeleri yeniden oynatarak verileri değerlendirebilir ve görselleştirebilirsiniz.

İlk iki video, Isaac Sim kullanarak MobilityGen ile nasıl sentetik veri üreteceğinizi gösteriyor.

Video 2. Farklı robot türleri için mobilite modellerini eğitmek üzere işgal haritaları yaratma

Video 3. Robotun bakış açısından RGB/derinlik kamera verilerini kaydetme ve çarpışmasız yollar oluşturma

Aşağıdaki örnekte, Isaac Sim’deki bir depo ortamında MobilityGen’i kullanıyoruz. Önceki bölümde öğrendiğimiz SimReady varlıklarını kullanarak kendi ortamınızı oluşturabilirsiniz.

İşgal Haritası Oluşturma Adımları

  1. Depo aşamasını yükleyin:
    1. İçerik Tarayıcısını açın (Pencere > Tarayıcılar > İçerik).
    2. Isaac Sim/Ortamlar/Simple_Warehouse/warehouse_multiple_shelves.usd yola sahip depo USD dosyasını yükleyin.
  2. İşgal Haritasını Oluşturma
    1. Araçlar > Robotik > İşgal Haritası seçeneğini seçerek uzantıyı açın.
    2. İşgal Haritası penceresinde Orijin değerini ayarlayın:
      1. X: 2.0
      2. Y: 0.0
      3. Z: 0.0
      4. Not: Metin kutusuna değer girmek için Ctrl + sol tıklama ile giriş modunu aktifleştirin.
    3. İşgal Haritası penceresinde Üst Sınır değerlerini ayarlayın:
      1. X: 10.0
      2. Y: 20.0
      3. Z: 2.0 (Robotun 2 metre yüksekliğindeki geçitlerin altından geçeceği varsayılmaktadır)
    4. İşgal Haritası penceresinde Alt Sınır değerlerini ayarlayın:
      1. X: -14.0
      2. Y: -18.0
      3. Z: 0.1 (Robotun 5 cm’lik tümseklerin üstünden geçebilmesi varsayılmaktadır)
    5. Hesapla butonuna tıklayarak işgal haritasını oluşturun.
    6. Görselleştir butonuna tıklayarak işgal haritasını görebilirsiniz.
    7. Görselleştirme penceresinde, 180 değerini seçerek resmi döndürün.
    8. Görselleştirme penceresinde Koordinat Türü olarak ROS İşgal Haritası Parametre Dosyası YAML seçeneğini seçin.
    9. Resmi Yeniden Oluştur butonuna tıklayın.
    10. Kopyalanan YAML metnini bir metin editörü yardımıyla oluşturabileceğiniz bir dosyaya yapıştırın; dosya adı ~/MobilityGenData/maps/warehouse_multiple_shelves/map.yaml olarak ayarlayın.
      Lütfen Windows kullanıyorsanız, ~ yerine tercih ettiğiniz bir dizin kullanın.
    11. Görselleştirme penceresinde, Resmi Kaydet butonuna tıklayın.
    12. Ağaç tarayıcısında ~/MobilityGenData/maps/warehouse_multiple_shelves klasörünü açın.
    13. Dosya adının altına map.png yazın.
    14. Kaydet butonuna tıklayın.

Şimdi ~/MobilityGenData/maps/warehouse_multiple_shelves/ adında bir klasör oluşturduğunuzu ve içinde map.yaml ve map.png adında dosyaların bulunduğunu kontrol edin.

Yörünge Kaydetme Adımları

Bir ortamın haritasını oluşturdunuzdan sonra, MobilityGen ile veri üretebilirsiniz:

  1. MobilityGen UI uzantısını etkinleştirin.
    1. Uygulama menüsüne gidin ve Pencere > Uzantılar menüsünden MobilityGen UI başlığını aratın.
    2. MobilityGen UI uzantısının anahtarını tıklatın.
    3. Not: İki pencere açılmalıdır. Biri MobilityGen UI penceresi, diğeri ise işgal haritası ve görselleştirmeleri gösteren penceredir. İki pencereyi aynı anda görebilmek için birini diğerinin yanına sürükleyebilirsiniz.
  2. Senaryoyu oluşturun:
    1. MobilityGen penceresinde Aşama altında aşağıdaki USD’yi yapıştırın:
      http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0/Isaac/Environments/Simple_Warehouse/warehouse_multiple_shelves.usd
    2. MobilityGen penceresinde İşgal Haritası altında, daha önce oluşturduğunuz map.yaml dosyasının yolunu girin:
      ~/MobilityGenData/maps/warehouse_multiple_shelves/map.yaml
    3. Robot açılır menüsünden H1Robot seçeneğini belirleyin.
    4. Senaryo açılır menüsünden KlavyeTeleoperasyonSenaryosu seçeneğini belirleyin.
    5. Oluştur butonuna tıklayın.
      Birkaç saniye içinde sahneyi görmeniz ve işgal haritasını kontrol etmeniz gerekir.
  3. Robotu sürmek için aşağıdaki tuş kombinasyonlarını kullanın:
    1. W – İleri git
    2. A – Sola dön
    3. S – Geri git
    4. D – Sağa dön
  4. Kayda başlamak için:
    1. Kaydı başlatmak için Kayda Başla butonuna tıklayın.
    2. Robotu hareket ettirin.
    3. Kaydı durdurmak için Kaydı Durdur butonuna tıklayın.

Veri varsayılan olarak ~/MobilityGenData/recordings dizinine kaydedilecektir.

Yeniden Oynatma ve Render İşlemleri

Bir yörünge kaydettikten sonra, robot pozları gibi veriler içeren senaryoyu şimdi yeniden oynatabilir.

  1. replay_directory.py Python betiğini kullanın. Betiği çalıştırmak için, Isaac Sim dizini içinde aşağıdaki komutu girin:
./python.sh standalone_examples/replicator/mobility_gen/replay_directory.py --render_interval 40 --enable isaacsim.replicator.mobility_gen.examples

Komut tamamlandığında, içinde render edilmiş sensör verilerini barındıran ~/MobilityGenData/replays klasörüne sahip olmalısınız. Bu klasör içinde verileri keşfedebilirsiniz.

Kaydedilen verilerin yüklenmesi ve çalışılması ile ilgili örneklere açık kaynak MobilityGen GitHub Repo’sunda ulaşabilirsiniz. Kaydedilen verilerinizi görselleştirmek için Gradio Görselleştirme Betiği‘ni çalıştırmayı öneririz.

NVIDIA Cosmos Kullanarak Veri Zenginleştirme

MobilityGen ile veri ürettikten sonra, Cosmos Transfer kullanarak sentetik robot verilerinden fotogerçekçi videolar üretebilirsiniz. Bu, simülasyondan gerçeğe geçişe yardımcı olur ve politikaların uygulama sonrası performansını artırır.

A high-level diagram showing the SDG workflow, which includes generating synthetic data using MobilityGen and augmenting the data using Cosmos Transfer. This generates high-quality datasets for training robot models, and results in improved simulation-to-real performance.
Şekil 1. Yüksek seviyedeki SDG iş akışı, MobilityGen ile sentetik veri üretimi ve bu verilerin Cosmos Transfer ile artırılması sürecini içerir; bu da robot modelleri için yüksek kaliteli veri setleri oluşturur.

Cosmos Transfer, RGB, derinlik ve segmentasyon gibi çoklu video modlarıyla fotogerçekçi videolar üretir. Ayrıca, üretilen videonun görünümünü yönlendiren bir metin istemi verebilirsiniz. Aşağıda bir örnek istem verilmiştir:

Gerçekçi bir depo ortamı, sürekli aydınlatma, perspektif ve kamera hareketleri ile. Giriş videosundaki orijinal yapı, nesne pozisyonları ve düzeni korumalıdır. Çıktı, her çerçevede zamanlama ve içerik bakımından kesintisiz bir şekilde segmentasyon videosuna tam olarak uymalıdır. Kamera hareketi orijinal yolda titizlikle takip edilmelidir.

Video 4, MobilityGen verileri üzerinde Cosmos Transfer’in nasıl çalıştığını ve görsel çeşitliliği nasıl artırdığını gösteriyor.

Video 4. Isaac Sim sentetik verilerini işleyerek depo sahalarını gerçekçi eğitim veri setlerine dönüştürme

Video 5. Fotogerçekçi videoların üretilmesi süreci

Videoda görüldüğü üzere, Cosmos Transfer ile çalıştırma için örnek bir komut şu şekildedir:

export CUDA_VISIBLE_DEVICES="${CUDA_VISIBLE_DEVICES:=0,1,2,3}"
export CHECKPOINT_DIR="${CHECKPOINT_DIR:=./checkpoints}"
export NUM_GPU="${NUM_GPU:=4}"
PYTHONPATH=$(pwd) torchrun --nproc_per_node=$NUM_GPU --nnodes=1 --node_rank=0 cosmos_transfer1/diffusion/inference/transfer.py 
    --checkpoint_dir $CHECKPOINT_DIR 
    --video_save_folder outputs/example1_single_control_edge 
    --controlnet_specs assets/inference_cosmos_transfer1_single_control_edge.json 
    --offload_text_encoder_model 
    --offload_guardrail_models 
    --num_gpus $NUM_GPU

Kapalı devre değerlendirmelerinde, hem sentetik hem de Cosmos zenginleştirilmiş verilerle eğitilen bir politika, yalnızca sentetik verilerle eğitilen bir politikaya göre daha başarılı olmuştur. Sentetik ve Cosmos artırılmış verilerle eğitilmiş politika, aşağıdaki senaryoları iyi bir şekilde yönetmiştir:

  • Şeffaf engellerin etrafından geçiş yapma.
  • Arka planda eriyen engelleri aşma; örneğin, gri bir direğin gri bir zeminde bulunması.
  • Engellere yakınlaşma ve hedef pozisyona ulaşma için toplam mesafeyi azaltma.
  • Düşük ışıkta gezinme.
  • Darı geçitlerde manevra yapma.

Cosmos Transfer’i gerçek ya da sentetik video verilerinde çalıştırabilirsiniz. Başka bir örnek ise Sentetik Veri Seti Zenginleştirmek İçin Cosmos Kullanımı isimli öğreticidir; bu eğitim, Isaac Sim’de Replicator kullanarak sentetik veri üretmeyi açıklar.

Başlamak için

NVIDIA, öğrenim yolculuğunuzu hızlandırmak için kapsamlı OpenUSD kaynakları sunmaktadır. Temel becerileri geliştirmek için OpenUSD Öğren, Dijital İkizler ve Robotik eğitim müfredatlarıyla başlayabilirsiniz.

Robotik kariyerlerinde bir sonraki adımı atmaya hazır profesyonellere, OpenUSD Geliştirici sertifikası, OpenUSD kullanarak 3D içerik boru hatları oluşturma, bakım ve optimizasyon konularında uzmanlığınızı doğrulayan bir mesleki sınavdır. NVIDIA GTC Washington, D.C.’de OpenUSD sertifikası alabilirsiniz ve Fiziksel AI ve Robotik Günü sırasında robot geliştirme ile ilgili daha fazla bilgi edinebilirsiniz.

Gelecek etkinlikler içinOpenUSD İnsider canlı yayınlarına katılın ve NVIDIA Geliştirici Topluluğu ile bağlantı kurun. NVIDIA Omniverse’i takip ederek güncel kalınInstagram, LinkedInve X, Threadsve YouTube.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri