Należąca do Google firma DeepMind, znana z osiągnięć w dziedzinie sztucznej inteligencji i budowy sieci neuronowych, które mogą grać w gry komputerowe na poziomie człowieka, poinformowała o odkryciu silnika do symulacji procesów fizycznych MuJoCo (Multi-Joint dynamics with Contact). Silnik przeznaczony jest do modelowania struktur przegubowych oddziałujących z otoczeniem oraz wykorzystywany jest do symulacji w rozwoju robotów i systemów sztucznej inteligencji, na etapie poprzedzającym wdrożenie opracowanej technologii w postaci gotowego urządzenia.
Kod jest napisany w C/C++ i zostanie opublikowany na licencji Apache 2.0. Obsługiwane są platformy Linux, Windows i macOS. Zakończenie prac nad otwarciem wszystkich kodów źródłowych związanych z projektem planowane jest na 2022 rok, po czym MuJoCo przejdzie na otwarty model rozwoju, co implikuje możliwość udziału w rozwoju przedstawicieli społeczności.
MuJoCo to biblioteka implementująca silnik symulacji procesów fizycznych ogólnego przeznaczenia, który może być wykorzystywany w badaniach i rozwoju robotów, urządzeń biomechanicznych i systemów uczenia maszynowego, a także w tworzeniu grafiki, animacji i gier komputerowych. Silnik symulacji jest zoptymalizowany pod kątem maksymalnej wydajności i umożliwia manipulację obiektami na niskim poziomie, zapewniając jednocześnie wysoką dokładność i bogate możliwości symulacji.
Modele są definiowane przy użyciu języka opisu scen MJCF, który jest oparty na XML i kompilowany za pomocą specjalnego kompilatora optymalizującego. Oprócz MJCF silnik obsługuje ładowanie plików w uniwersalnym formacie URDF (Unified Robot Description Format). MuJoCo zapewnia również interfejs graficzny do interaktywnej wizualizacji 3D procesu symulacji i renderowania wyników przy użyciu OpenGL.
Najważniejsze cechy:
- Symulacja we współrzędnych uogólnionych, z wyłączeniem naruszenia stawów.
- Odwrotna dynamika, określona nawet w obecności kontaktu.
- Wykorzystanie programowania wypukłego do ujednoliconego formułowania ograniczeń w czasie ciągłym.
- Możliwość ustawienia różnych ograniczeń, w tym miękkiego dotyku i suchego tarcia.
- Symulacja układów cząstek, tkanin, lin i miękkich przedmiotów.
- Elementy wykonawcze (siłowniki), w tym silniki, cylindry, mięśnie, ścięgna i mechanizmy korbowe.
- Solvers oparte na metodach Newtona, gradientach sprzężonych i Gaussa-Seidela.
- Możliwość zastosowania piramidalnych lub eliptycznych stożków ciernych.
- Wykorzystanie do wyboru metod całkowania numerycznego Eulera lub Runge-Kutty.
- Wielowątkowa dyskretyzacja i aproksymacja metodą różnic skończonych.
Źródło: opennet.ru