Sim-Gerçek Arasındaki Farkın Kapatılması: NVIDIA Isaac Lab ile Noktada Dörtlü Hareket Eğitimi

8


Dört ayaklılar için etkili hareket politikaları geliştirmek, karmaşık dinamikler nedeniyle robotikte önemli zorluklar doğurmaktadır. Dört ayaklıları gerçek dünyada merdiven inip çıkma konusunda eğitmek, ekipmana ve çevreye zarar verebilir. Bu nedenle simülatörler, öğrenme sürecinde hem güvenlik hem de zaman kısıtlaması açısından kilit rol oynamaktadır.

Simüle edilmiş bir ortamda robotları eğitmek için derin takviyeli öğrenmeden (RL) yararlanmak, karmaşık görevlerin daha etkili ve güvenli bir şekilde gerçekleştirilmesine olanak sağlayabilir. Ancak bu yaklaşım yeni bir sorunu da beraberinde getiriyor: simülasyonda eğitilen bu politikanın gerçek dünyaya sorunsuz bir şekilde aktarılmasının nasıl sağlanacağı. Başka bir deyişle, simülasyon ile gerçeklik (simülasyon ile gerçek) arasındaki açığı nasıl kapatabiliriz?

Sim-gerçek arasındaki boşluğu kapatmak, eğitim için yüksek kaliteli, fizik tabanlı bir simülatör ve yüksek performanslı bir yapay zeka bilgisayarı gerektirir. NVIDIA Jetsonve eklem düzeyinde kontrollere sahip bir robot. Takviyeli Öğrenme Araştırmacı Setiile işbirliği içinde geliştirildi. Boston Dinamikleri, NVIDIAVe Yapay Zeka Enstitüsü, dört ayaklıların sanal dünyadan gerçek dünyaya kusursuz şekilde konuşlandırılması için bu yetenekleri bir araya getiriyor. için ortak düzeyde bir kontrol API'si içerir. Spot dört ayaklı robot robotun nasıl hareket ettiğini kontrol etmek, politikayı çalıştırmak için NVIDIA Jetson AGX Orin yükünün donanımını monte etmek (AGX Orin ayrı satılır) ve Spot in için bir simülasyon ortamı sağlamak NVIDIA Isaac Laboratuvarı.

Isaac Lab, geniş ölçekte robot öğrenimi için özel olarak optimize edilmiş NVIDIA Isaac Sim platformu üzerine kurulmuş hafif bir referans uygulamasıdır. Nihai politika performansını iyileştirmek ve robotikte RL'nin eğitim süresini azaltmak için büyük ölçüde paralel fizik tabanlı simülasyon için GPU tabanlı paralelleştirmeden yararlanır. Isaac Lab, yüksek doğruluklu fizik ve etki alanı rastgeleleştirme yetenekleriyle sim-gerçek arasındaki boşluğu doldurarak eğitimli modellerin sıfır atışla fiziksel robotlara sorunsuz bir şekilde konuşlandırılmasını sağlar. Daha fazla bilgi edinmek için bkz. NVIDIA Isaac Sim 4.0 ve NVIDIA Isaac Lab'ı Kullanarak Yapay Zeka ve Simülasyon ile Robotik İş Akışlarını Güçlendirin.

Bu gönderide, Isaac Sim ve Isaac Lab'de Spot için bir hareket RL politikasının nasıl oluşturulduğu ve RL Araştırmacı Kitindeki bileşenler kullanılarak donanıma nasıl dağıtıldığı açıklanmaktadır.

Isaac Laboratuvarında dört ayaklı hareket eğitimi

Bu bölümde Isaac Lab'da bir hareket RL politikasının nasıl eğitileceği açıklanmaktadır.

Isaac Sim'den Isaac Lab'e kadar eğitim çerçevesini açıklayan akış şeması.  Gözlemler robotun durumu, hız komutu ve önceki eylemlerden oluşur.  Robotun kütlesi ve sürtünmesi gibi farklı parametreler rastgele seçilir.  Ayrıca rastgele itmeler uygulanarak robot rahatsız edilir.
Şekil 1. Isaac Sim'den Isaac Lab'e hareket politikası eğitim çerçevesinin iş akışı

Amaç

Düz arazide yürürken hedef x, y ve sapma taban hızlarını izlemek için Spot robotunu eğitin.

Gözlem ve eylem alanı

Hedef hızlar her sıfırlamada rastgele seçilir ve Şekil 1'de gösterilen diğer gözlemlerin yanında sağlanır. Eylem alanı yalnızca referans eklem konumları olarak düşük seviyeli eklem denetleyicisine iletilen 12 DOF eklem konumunu içerir.

Etki alanı rastgeleleştirmesi

Şekil 1'de rastgeleleştirme parametreleri altında gösterildiği gibi, temel eğitim aşamalarında çeşitli parametreler rastgele seçilir. Bu rastgeleleştirmeler, modelin gerçek dünyadaki dağıtım için sağlamlık sağlamasına yardımcı olur. Bu süreç denir etki alanı rastgeleleştirmesi.

Ağ mimarisi ve RL algoritmasının ayrıntıları

Hareket politikası, üç katmandan oluşan Çok Katmanlı Algılayıcı (MLP) olarak yapılandırılmıştır. [512, 256, 128] nöronlar ve Proksimal Politika Optimizasyonu (PPO) algoritması kullanılarak eğitildi. RSL-rlGPU hesaplaması için optimize edilmiştir.

Önkoşullar

Hareket politikalarını eğitmek için aşağıdakilere ihtiyacınız olacak:

Kullanım

Bu bölümde politikanın nasıl eğitileceği, yeniden oynatılacağı ve sonuçların nasıl inceleneceği gösterilmektedir.

Bir politikayı eğitin

cd 
./isaaclab.sh -p source/standalone/workflows/rsl_rl/train.py --task Isaac-Velocity-Flat-Spot-v0 --num_envs 4096 --headless --video --enable_cameras

--video --enable_cameras argümanlar, aracının eğitim sırasındaki davranışının bir videosunu kaydeder; dolayısıyla isteğe bağlıdır.

Eğitimli politikayı oynayın

Bu adım, eğitilen modeli oynatacak ve .pt ilkesini, günlük dizininde dışa aktarılan bir klasörde .onnx'e aktaracaktır.

cd 
./isaaclab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Velocity-Flat-Spot-v0 --num_envs 64

Sonuçlar

Video 1, Spot robotta uygulanan eğitimli politikayı göstermektedir. Robot hedef x, y ve sapma hızlarını takip ederek düz arazide yürüyebilmektedir. NVIDIA RTX 4090 GPU'da yaklaşık 4 saatlik eğitim süresine eşdeğer olan 4.096 ortam ve 15.000 yinelemeyle, saniyede 85.000 ila 95.000 kare (FPS) eğitim hızına ulaştık.

Video 1. Isaac Lab simülasyonunda Spot robotlar üzerinde test edilen eğitimli politika

Eğitimli RL politikasını Jetson Orin ile yerinde dağıtma

Robotik uygulamalar için simülasyonda eğitilen modellerin gerçek dünyaya dağıtılması, gerçek zamanlı kontrol, güvenlik kısıtlamaları ve diğer gerçek dünya koşulları dahil olmak üzere çeşitli zorluklar doğurur. Isaac Lab'ın doğru fizik ve etki alanı rastgeleleştirme özellikleri, simülasyonda eğitilen politikanın Jetson Orin sıfır atışındaki gerçek Spot robotuna dağıtılmasına olanak tanıyarak hem sanal hem de gerçek dünyada benzer performans elde edilmesini sağlar.

Şekil 2, gerçek Spot robot çerçevesi politikası dağıtımını göstermektedir. Politika sinir ağı gerçek robota yüklenir ve çıkarılır. Simülasyondaki gözlemlerin aynısı Boston Dynamics State API kullanılarak hesaplanır.

Sensörlerden bilgi toplanmasından doğru eylemlerin elde edilmesine kadar politikanın nasıl test edildiğini açıklayan akış şeması.
Şekil 2. Gerçek Nokta robot çerçevesi politikası dağıtımı

Eğitilen modelin Spot robota aktarılması, modelin uca konuşlandırılmasını ve robotun düşük gecikme ve yüksek frekansla kontrol edilmesini gerektirir. NVIDIA Jetson AGX Orin'in yüksek performanslı bilgi işlem yetenekleri ve düşük gecikmeli yapay zeka işlemesi, gerçek dünyadaki robotik uygulamaları için çok önemli olan hızlı çıkarım ve yanıt sürelerini sağlar. Simüle edilmiş politikalar, çıkarım için doğrudan dağıtılabilir ve dağıtım sürecini basitleştirir.

Önkoşullar

Dağıtım için aşağıdakiler gereklidir:

  • Jetson Orin'in bağlı olduğu ve Ethernet bağlantı noktası, güç kablosu ve montaj braketi kullanılarak özel bir yük olarak yapılandırılan spot robotu. Takip et kurulum talimatları tedarik edilen.
  • Dağıtım kodu Ve Spot Python SDK'sı Spot RL Araştırmacı Kitinden.
  • Bluetooth aracılığıyla Jetson Orin'e bağlanan bir PS4 Gamepad denetleyicisi.
  • Harici PC'den SSH'ye Jetson'a gidin ve kodu çalıştırın.
  • Isaac Lab'den eğitilmiş model ve yapılandırma dosyası.

Jetson Orin'de donanım ve ağ kurulumu

  • SDK Yöneticisini Ubuntu 22.04 yüklü harici bir bilgisayara yükleyin.
  • Flash Jetson Orin'i JetPack 6 ile SDK Yöneticisini kullanarak L4T BSP'yi Flashlamak için SDK Yöneticisinin Nasıl Kullanılacağı konusundaki talimatları izleyin. İşiniz bittiğinde yeniden başlatın.
  • Jetson Orin'i bir ekran bağlantı noktasına, klavyeye ve fareye bağlayın.
  • 2. Adımda belirlenen kullanıcı adını ve şifreyi kullanarak Jetson Orin'de oturum açın.
  • Jetson Orin ile Spot arasındaki iletişim için, Jetson Orin'deki Ethernet bağlantı noktası için kablolu ağ yapılandırmasını manuel olarak ayarlayın. Okumak IP adresi seçme talimatları.
    • Ayarlar -> Ağ -> Kablolu -> + IPv4 (Rotalar) altındaki bilgileri ekleyin: Adres – Jetson IP Adresi (192.168.50.5'i seçtik), Net Mask – 255.255.255.0 ve Varsayılan Ağ Geçidi -192.168.50.3
    • Ekle düğmesini tıklayın
Spot ile iletişim kurmak için Jetson Orin'de kablolu ağ IP adresinin nasıl ayarlanacağını gösteren ekran görüntüsü.
Şekil 3. Spot için Jetson Orin kablolu ağ yapılandırması

Jetson'da yazılım kurulumu

İlk olarak, simüle edilen eğitimli politikayı .pt'den .onnx'e dönüştürün ve ortam yapılandırmasını dışarı aktarın. Bu, eğitim amacıyla bilgisayarda yapılır.

cd 
./isaac_lab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Velocity-Flat-Spot-v0 

Sonuç, modelin eğitim günlüğü dizinindeki dışa aktarılan klasörde olacaktır. Klasör env_cfg.json ve .onnx dosyalarını içerir.

1. Eğitim bilgisayarında bir klasör oluşturun ve env.yaml dosyası ile .onnx dosyasını klasöre kopyalayın. Not: env.yaml, params klasöründedir ve .onnx dosyası, eğitim günlüğü dizininin dışa aktarılan klasöründedir.

2. Egzersiz bilgisayarında, Adım 1'deki klasörü SSH kullanarak Jetson Orin'e kopyalayın. PC ve Jetson'un yerel kablosuz bağlantı gibi aynı ağda olduğundan emin olun. PC'nin terminalinde aşağıdaki komutu çalıştırın:

scp -P 20022 -r /path/to/folder/* orinusername@network_IP:

3. Daha sonra Orin'in terminalinde ana dizinden aşağıdaki komutu çalıştırın:

mkdir spot-rl-deployment && cd spot-rl-deployment && mkdir models 
git clone https://github.com/boston-dynamics/spot-rl-example.git 
cd spot-rl-example && mkdir external && cd external && mkdir spot_python_sdk

4. İndir Spot Python SDK'sı ortak seviye API ile sıkıştırın ve içeriği 3. Adımdan itibaren spot_python_sdk klasörüne açın.

5. Dağıtım kodu bağımlılıklarını yükleyin:

cd ~/spot-rl-deployment/spot-rl-example
sudo apt update
sudo apt install python3-pip
cd external/spot_python_sdk/prebuilt
pip3 install bosdyn_api-4.0.0-py3-none-any.whl
pip3 install bosdyn_core-4.0.0-py3-none-any.whl
pip3 install bosdyn_client-4.0.0-py3-none-any.whl
pip3 install pygame
pip3 install pyPS4Controller
pip3 install spatialmath-python
pip3 install onnxruntime

6. env.yaml dosyasını env_cfg.json dosyasına dönüştürün:

cd ~/spot-rl-deployment/spot-rl-example/python/utils/
python env_convert.py 
#input the path to the .yaml file e.g ~/env.yaml
#The file outputs a env_cfg.json file in the same directory as the .yaml file

7. 6. Adımdan env_cfg.json dosyasını ve 2. Adımdan eğitilen model Policy.onnx dosyasını models klasörüne taşıyın:

mv env_cfg.json policy.onnx ~/spot-rl-deployment/models

Politikayı çalıştır

1. Spot'u açın ve robotun arkasındaki motor kilitleme düğmesine basın. Jetson Orin'in açık olduğundan emin olun.

Spot robotun arka panellerinin fotoğrafı.
Şekil 4. Spot'un arka panelleri

2. Spot tablet kumandasında Spot uygulamasını açın. Bir robot seçin ve oturum açmak ve Spot'u çalıştırmak için talimatları izleyin. İlkeyi çalıştırmak için kontrolü tabletten bıraktığınızdan emin olun: Motor Durumu menüsünü (güç simgesi) açın, gelişmiş ayarlara gidin ve Denetimi Bırak'ı seçin.

3. Bilgisayarı terminalden Spot yerel Wi-Fi'ye ve SSH'yi Orin'e bağlayın. Spot, 20022 numaralı bağlantı noktasını yüklerine iletir, böylece Spot IP'ye ve bu bağlantı noktasına bir SSH bağlantısı açılarak Orin'e ulaşılabilir. IPv4 adresi (192.168.50.3) Spot IP'dir.

ssh @ -p 20022 
e.g
ssh @192.168.50.3 -p 20022

4. Kablosuz gamepad'i kullanarak Orin'e bağlayın. bluetoothctl:

bluetoothctl
scan on  // wait for devices populate ~5s
scan off
devices

Listelenen cihazlarda gamepad'in Mac adresini bulun. Gamepad'i eşleştirme moduna getirin, Seç ve PlayStation düğmelerini ~5 saniye basılı tutun ve devam edin bluetoothctl. Sonraki adımları tamamlamadan önce eşleştirme modundan çıkarsa bu işlemi tekrarlamanız gerekebilir.

trust {MAC} 
pair {MAC} 
connect {MAC} 
exit

5. RL politikasını çalıştırın:

cd ~/spot-rl-deployment/spot-rl-example/python
python spot_rl_demo.py  ~/spot-rl-deployment/models --gamepad-config ./gamepad_config.json

İstendiğinde Spot'un kullanıcı adını ve şifresini girin. Spot daha sonra geçerli olacaktır, ancak siz enter tuşuna basana kadar politika kontrolü ele almayacaktır. Artık robotu Gamepad ile sürebilirsiniz. Spot'u temiz bir şekilde oturup çıkmak için tekrar enter tuşuna basın.

6. PS4 gamepad ile kontrol edin.

Açma/kapatma düğmelerinin üzerinde yönlerle eşlenen metin kutularının bulunduğu bir oyun kumandasının görüntüsü.
Şekil 5. Kullanıcılar bir gamepad denetleyicisi kullanarak Spot'u çalıştırabilir

Gamepad şeklinde gösterildiği gibi x, y hareketi için sol joystick'i ve dönüş için sağ joystick'i kullanın. Başka bir Gamepad kullanmanın (PS5 denetleyicisi gibi) farklı bir eksen eşlemesi gerektireceğini unutmayın. axis_mapping pygame'e göre eksen indeksini ifade eder. Senaryo test_controller.py itibaren ~/spot-rl-deployment/spot-rl-example/python/utils/test_controller.py farklı kontrolörler için uygun eşlemeyi belirlemek amacıyla her eksenin değerlerini yazdırmak için kullanılabilir.

7. Gamepad yapılandırma seçeneğini kullanarak politikayı çalıştırın:

python spot_rl_demo.py ~/spot-rl-deployment/models --gamepad-config /home/gamepad_config.json

Video 2'de simülasyon eğitimi aldıktan sonra gerçek Spot robotu çalışırken gösteriliyor.

Video 2. Spot robot, NVIDIA Isaac Lab'ın eğitimini kullanarak yürüyor

Özel uygulamanızı geliştirmeye başlayın

Spot RL Araştırmacı Kitinde sağlanan kod tabanı, simülasyonda kendi özel RL görevlerinizi oluşturmak ve ardından bunları donanıma dağıtmak için bir başlangıç ​​noktasıdır. Özel uygulamanızı oluşturmak için kendi robot modelinizi, ortamınızı, ödül işlevlerinizi, müfredat öğreniminizi, etki alanı rastgeleleştirmenizi vb. ekleyerek mevcut kod tabanını değiştirebilir ve genişletebilirsiniz.

Özel göreviniz için bir politikayı eğitmek amacıyla Isaac Lab'ı nasıl kullanacağınıza ilişkin ayrıntılı rehberlik için bkz. dokümantasyon. Eğitilmiş politikanın diğer robotlara uygulanması robot mimarisine özeldir; ancak Spot kullanıcıları, uygulamaları için ek gözlemlere ihtiyaç duyulması halinde mevcut dağıtım kodunu değiştirebilir.

Al Takviyeli Öğrenme Araştırmacı Kiti ve Spot robot ve özel uygulamanızı geliştirmeye başlayın.

Hakkında daha fazla öğren Isaac Laboratuvarı, Isaac Sim üzerine inşa edilmiştir. Daha fazla ilham ve görev açıklaması için aşağıdaki makalelere göz atın:

Güncel kalın LinkedIn, instagram, XVe Facebook. Keşfedin NVIDIA belgeleri Ve Youtube kanallarını ziyaret edin ve NVIDIA Geliştirici Robotik forumuna katılın. Daha fazla bilgi edinin kendi temponuzda eğitim ve web seminerleri Isaac ROS Ve Isaac Sim.



Kaynak: Nvidia

Doğrudan cihazınızda gerçek zamanlı güncellemeleri alın, şimdi abone olun.

Yorumlar