SimReady : jak zbudować symulację robotyczną pick-and-place z własnymi zasobami

SimReady : jak zbudować symulację robotyczną pick-and-place z własnymi zasobami
3 min czytania

Opublikowany na Hugging Face tutorial pokazuje, jak w Isaac Sim złożyć ramię robota UR17G, chwytak Robotiq 2F-140 i puszkę napoju, a następnie zlecić agentowi wykonanie zadania chwycenia i odłożenia. Przykład opiera się na zasobach SimReady, czyli obiektach cyfrowych przygotowanych do precyzyjnego użycia w symulacji.

W robotyce zasób SimReady to obiekt w formacie OpenUSD, do którego dodano właściwości niezbędne dla danego przypadku użycia, takie jak kolizje, masa, przeguby i ich silniki. Otwarta biblioteka SimReady Central, hostowana na Hugging Face, umożliwia ponowne wykorzystanie robotów i obiektów wraz z ich ustawieniami symulacyjnymi i raportami walidacji.

Co sprawia, że robot jest kompatybilny z symulacją

Specyfikacja SimReady Foundation definiuje cechy, jakie zasób musi posiadać dla danego przypadku użycia. Łączy trzy poziomy: profil, grupujący funkcjonalności dla danego zastosowania, jak korpus robota; funkcjonalności, czyli wymagane zdolności, jak sterowane przeguby; oraz wymagania, czyli weryfikacje ustawień każdej funkcjonalności, jak parametry silnika przegubu.

W tym przykładzie właściwości te dotyczą przegubów ramienia i chwytaka, a także kolizji i masy puszki. Walidacja porównuje te ustawienia z wymaganiami profilu, a następnie symulacja testuje, czy złożony robot może ich użyć do chwycenia i przesunięcia obiektu. Raport walidacji ramienia używa profilu Robot-Body 4.0.0, chwytaka – profilu Robot-Gripper 3.0.0. Oba odnotowują powodzenie kontroli PhysX na silnikach przegubów, które sprawdzają ustawienia tych silników.

Złożenie sceny i uruchomienie zadania

Po pobraniu trzech zasobów autor zleca agentowi, czyli programowi mogącemu sterować narzędziami na podstawie instrukcji, złożenie ramienia i chwytaka w jeden przegub, a następnie walidację całości. Tutorial używa modelu GPT-6 Sol i zaznacza, że mogą działać inne kombinacje agenta i modelu, pod warunkiem możliwości załadowania wymaganych umiejętności i wykonania Pythona w Isaac Sim. Wygenerowany kod i wyniki mogą się różnić, a artykuł zaleca sprawdzenie kodu przed adaptacją.

Zadanie polega na chwyceniu puszki, podniesieniu jej, przesunięciu do celu i zwolnieniu. Kontrole dotyczą trzech punktów: limitów i ustawień przegubów, małego ruchu ramienia z otwarciem i zamknięciem chwytaka, oraz utrzymania puszki na płaszczyźnie roboczej bez jej przebicia. Wideo pokazuje puszkę przeniesioną z żółtego znacznika do zielonego celu, z czterokrotną prędkością rzeczywistą.

Autor wskazuje ograniczenia tego przykładu. Konfiguracja jest stała, bez wizji, z ograniczonymi kontrolami kolizji. Puszka jest uproszczona i nie odwzorowuje ani deformacji, ani ruchu płynu. Chwytanie poziome używa pułapu momentu siły 2 N·m, wybranego dzięki testom symulacyjnym, który nie jest skalibrowany na siły na końcach palców ani rekomendowany przez producenta. Wyniki te nie dowodzą więc odporności na niepewne pozycje obiektów, różne ładunki ani rzeczywisty sprzęt.

Deweloperzy są zachęcani do dzielenia się swoimi scenami i wynikami w komentarzach na Hugging Face, podając użyte zasoby i wersję Isaac Sim.

S’abonner
Notification pour
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x