The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

DeepMind открыл код симулятора физических процессов MuJoCo

23.05.2022 23:34

Компания DeepMind открыла исходные тексты движка для симуляции физических процессов MuJoCo (Multi-Joint dynamics with Contact) и перевела проект на открытую модель разработки, подразумевающую возможность участия в разработке представителей сообщества. Проект рассматривается как платформа для проведения исследований и совместной работы над новыми технологиями, связанными с симуляцией роботов и сложных механизмов. Код опубликован под лицензией Apache 2.0. Поддерживаются платформы Linux, Windows и macOS.

MuJoCo представляет собой библиотеку с реализацией движка симуляции физических процессов и моделирование сочленённых структур, взаимодействующих с окружающей средой, который может применяться в процессе разработки роботов, биомеханических устройств и систем искусственного интеллекта, а также при создании графики, анимации и компьютерных игр. Движок написан на Си, не использует динамическое выделение памяти и оптимизирован для достижения максимальной производительности.

MuJoCo позволяет манипулировать объектами на низком уровне, обеспечивая при этом высокую точность и широкие возможности моделирования. Модели определяются при помощи языка описания сцен MJCF, основанного на XML и компилируемого при помощи специального оптимизирующего компилятора. Помимо MJCF движок поддерживает загрузку файлов в универсальном формате URDF (Unified Robot Description Format). MuJoCo также предоставляет графический интерфейс для интерактивной 3D-визуализации процесса симуляции и рендеринга результатов с использованием OpenGL.

Основные возможности:

  • Симуляция в обобщённых координатах, исключающая нарушение сочленений.
  • Обратная динамика, определяемая даже при наличии соприкосновений.
  • Использование выпуклого программирования для унифицированного формулирования ограничений в непрерывном времени.
  • Возможность задания различных ограничений, включая мягкие касания и сухое трение.
  • Симуляция систем частиц, тканей, верёвок и мягких объектов.
  • Исполнительные элементы (актуаторы), включая моторы, цилиндры, мышцы, сухожилия и кривошипно-шатунные механизмы.
  • Решающие программы на основе методов Ньютона, сопряжённых градиентов и Гаусса-Зейделя.
  • Возможность использования пирамидальных или эллиптических конусов трения.
  • Использование на выбор методов численного интегрирования Эйлера или Рунге-Кутты.
  • Многопоточная дискретизация и аппроксимация методом конечных разностей.






  1. Главная ссылка к новости (https://www.deepmind.com/blog/...)
  2. OpenNews: Система для экспериментов с искусственным интеллектом в реальных играх и приложениях
  3. OpenNews: AMD будет развивать открытый движок для симулирования физических процессов
  4. OpenNews: Google выпустил движок для симуляции физических процессов LiquidFun 1.1
  5. OpenNews: Компания NVIDIA выпустила открытый движок симуляции физических процессов PhysX 4.0
  6. OpenNews: Анонсировано открытие кода платформы искусственного интеллекта DeepMind Lab
Лицензия: CC BY 3.0
Наводку на новость прислал Artem S. Tashkinov
Короткая ссылка: https://opennet.ru/57237-mujoco
Ключевые слова: mujoco, deepmind
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (43) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 00:09, 24/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Круто!
     
     
  • 2.4, Аноним (4), 06:43, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Ньютона, сопряжённых градиентов и Гаусса-Зейделя ... Эйлера или Рунге-Кутты.

    Для них, может, и круто. Для нас - не круто.

     
     
  • 3.13, Аноним (13), 09:27, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что тебе не нравится?
     
     
  • 4.14, Аноним (14), 09:31, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Фамилии не русские.
     
     
  • 5.16, Аноним (16), 09:48, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а Аноним думаешь это тоже не русская фамилия ?
     
  • 5.20, Аноним (4), 10:48, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не проблема. Например, Эйлер - вполне себе российский математик.
     
  • 4.18, Аноним (4), 10:44, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вместо первых двух хотелось бы видеть BFGS, DFP и т.п. Вместо третьего - хотя бы с выбором ведущего элемента, матричные разложения и итерационное уточнение. Вместо последних двух - методы с автоматическим выбором длины шага.
     
     
  • 5.41, Аноним (41), 20:23, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Вместо первых двух хотелось бы видеть BFGS, DFP и т.п. Вместо третьего - хотя бы с выбором ведущего элемента, матричные разложения и итерационное уточнение. Вместо последних двух - методы с автоматическим выбором длины шага.

    Может быть я не прав, но выглядит так, будто комментатор наскоро прочитал в интернете, что делают те методы, которые перечислены в новости, и попробовал найти что-нибудь более экзотическое, чтобы блеснуть.

     
  • 3.22, Аноним (22), 10:52, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То есть ты знаешь как минимум на 1 метод больше, на тот, который посложнее и для специфичных штук, где классические дают бОльшие погрешности или даже неприменимы? Но ты не говоришь, почему конкретно в данной предметной области Р-К или Г-З плохи. Так кто ты? Тролль или недоученный студент с желанием прихвастнуть познаниями?))
     
     
  • 4.25, Аноним (4), 13:35, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Каждый вправе делать то, что хочет. Можете решать СЛАУ даже методом Крамера, а определитель считать рекурсивно. Если очень хочется, то можно. Успехов.
     
  • 4.26, Аноним (4), 13:44, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Так кто ты?

    Кстати, учитесь вести дискуссию. Всегда критикуйте позицию, а не человека, который ее высказал.

     
     
  • 5.47, Аноним (47), 14:57, 27/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты только что раскритиковал человека. Ой, извини, я критикую позицию, которую ты высказал.
     

  • 1.2, Аноним (2), 01:34, 24/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как оно в сравнении с симулятором физики в блендере?
     
     
  • 2.5, Аноним (5), 07:17, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Блендере для таких симуляций ничего кроме инверсной кинематики и нет же.
     
     
  • 3.9, data man (ok), 09:06, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Садись, два! В Blender интегрированный Bullet.
    К доске вызывается Анон Им.
     

  • 1.10, data man (ok), 09:11, 24/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Движок написан на Си

    Отлично, спасибо! Хотя там и C++ присутствует.
    Единственные достойные языки.

     
     
  • 2.19, Аноним (4), 10:47, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Согласен. Расчеты можно только на них и делать. Остальные в данной области - либо интерфейс к ним, либо баловство.
     
     
  • 3.21, YetAnotherOnanym (ok), 10:51, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вообще-то, для расчётов ещё Фортран очень годен.
     
     
  • 4.34, Аноним (34), 17:30, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это всё, для чего он годен, но только с маленьким условием -- нужна проприетарная MKL от интела.
     
  • 4.42, Аноним (41), 20:27, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пожалуйста, обойдёмся без эксгумаций.
     
     
  • 5.50, adolfus (ok), 12:25, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вся математика, которой все пользуются, в частности вся линейная алгебра, написана на фортране. За 60 лет после того, как она забронзовела, три поколения шибздиков пыталось все это переписать на модные, стильные и молодежные языки, в том числе, кстати, и си, но ничего не вышло -- все так и осталось. Максимум, код с netlib.org где с помощью f2c, где руками, портирован на си. Периодически у некотороых возникет желание написать конвертер с фортрана на си, но как только он въезжает в фортран настолько, что понимает, как это конвертер писать, он отказывается от этой затеи и начинает писать математику на фортране. На сайте орегонского университета, это то гнездо, откуда растет MPI и кластерные решения, была история одного такого человека от первого лица. И он был не первым -- перед ним несколько человек начали и закончили так же. Там и вывод -- для вычислительных задач фортрану нет альтернатив.  
    Эталонные программы моделирования гравитационного поля Земли и геомагнитного и сегодня пишутся на фортране. Все специальные функции, о которых упоминается в [Абрамовиц & Стиган] написаны на фортране и переписывать их -- дело глупое. По производительности вычислительных задач фортран опережает все языки. Конечно, лучший фортран-компиялтор от Интел, но и их компилятор с си под их железо лучший. Тем не менее, код с фортрана работает быстрее -- он оптимизируется лучше.
     
  • 3.23, a_kusb (ok), 12:44, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще не разбираюсь, но наверное не все расчёты ресурсоёмкие, не все расчёты нужно проводить постоянно (например написал на том, на чём проще программку - доказал что тебе нужно и больше не запускаешь - не факт что проще на си), ещё для расчётов могут использоваться какие-нибудь странные чипы или параллельные там. Может там есть какие-то DSL для них. Также математические языки.
    Это только что в голову пришло.
     
     
  • 4.44, анон_тот самый (?), 00:23, 26/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    вопрос в том, что обсчет одной разовой задачи или постоянный обсчет процессов. если постоянный, то малой прогой уже не отъедешь, да и нагрузка будет уже не такая маленькая. придется все равно искать более пригодный к вычислениям язык. я на питоне тож писал проги для расчетов, но то были простые расчеты в инженерке или просто по мат формуле. тогда такой способ канает, а вот постоянный расчет даже той же движущейся жидкости в изменяющихся условиях подкосит все "мозги" твоего компа.
     
  • 3.31, Бывалый смузихлёб (?), 16:41, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Неоднозначно
    Тот же джит у жс вполне-себе неплохо выдаёт производительные функции. Другое дело, что там несколько разных уровней оптимизации, начиная с тупой интерпретации того что есть, его минификации.. и вплоть до получения нативного кода и по умолчанию для джитификации энных функций их требуется вызвать очень много раз без изменения самих функций( каждый следующий уровень оптимизации конкретной функции "включается" после энного количества её исполнений без изменения, поскольку вообще все функции в общем случае слишком жирно максимально оптимизировать сразу ), но всё-таки.
    Да и параметры по умолчанию обычно можно менять - потратить считанные секунды в начале запуска проги, что обычно и так происходит не моментально, чтобы получить наивную производительность из архитектуронезависимого кода.
    Когда-то с нодой и вебкитом баловАлся на этот счёт.

    И всё бы неплохо, только точность не_целых чисел в жс оставляет желать сильно лучшего

     
     
  • 4.32, data man (ok), 17:07, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Тот же джит у жс вполне-себе неплохо выдаёт производительные функции.

    Лучше, чем LuaJIT?
    Кстати, очень жду, когда кто-нибудь сподобится интегрировать LuaJIT в Blender вместо Пихона.

     
     
  • 5.33, Аноним (34), 17:29, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    LuaJIT немного мёртв. Переходите на питон, в него скоро оптимизаций и жит подвезут, а пока можно транслировать питон в си везде, где это необходимо.
     
     
  • 6.35, data man (ok), 18:06, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > LuaJIT немного мёртв.

    Бред какой!

     
     
  • 7.36, Аноним (34), 18:20, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> LuaJIT немного мёртв.
    > Бред какой!

    Да неужели. Я вот установил бету 2.10 (которая всё ещё 5.1 16-летней давности) и весь использующий луа софт отвалился. Кроме того, это не только я заметил, поскольку

    >The latest release, 2.0.5 is released in 2017. Since then, the project is not currently maintained by developers other than contributors.

    Так что признайте поражение и не грубите. Никому оно не интересно, как максимум пользовательские скрипты для игрушечек.

     
     
  • 8.37, data man (ok), 18:25, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ужели https github com LuaJIT LuaJIT ... текст свёрнут, показать
     
     
  • 9.38, Аноним (34), 18:28, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну правильно, у меня в репах эта бета из гита и есть уже 6 лет релизов этой бет... текст свёрнут, показать
     
     
  • 10.39, data man (ok), 18:32, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем b вычислениям b версия 5 1 ... текст свёрнут, показать
     
     
  • 11.40, Аноним (34), 18:41, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не конструктивно ... текст свёрнут, показать
     

  • 1.12, YetAnotherOnanym (ok), 09:24, 24/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Код опубликован под лицензией Apache 2.0

    Так поступают те, кто уверен в своём неоспоримом лидерстве.

     
  • 1.15, Аноним (15), 09:44, 24/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > не использует динамическое выделение памяти

    Ух ты, как это возможно для задач такой сложности? Или в XML-конфиге описал "скелет" и свойства материалов и джойнтов, а тот компилятор конфига всё что нужно (по памяти) статически выделил, а алгоритмы настолько странные, что им промежуточных выделений памяти для вычислений не требуется? Или как-то только стеком обходятся, даже для огромных конструкций?

     
     
  • 2.30, data man (ok), 15:32, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ух ты, как это возможно для задач такой сложности?

    В общем, вот так:

    >MuJoCo separates simulation parameters into two data structures (C structs) at runtime:
    >mjModel contains the model description and is expected to remain constant. There are other structures embedded in it that contain simulation and visualization options, and those options need to be changed occasionally, but this is done by the user.
    >mjData contains all dynamic variables and intermediate results. It is used as a scratch pad where all functions read their inputs and write their outputs – which then become the inputs to subsequent stages in the simulation pipeline. It also contains a preallocated and internally managed stack, so that the runtime module does not need to call memory allocation functions after the model is initialized.
    >mjModel is constructed by the compiler. mjData is constructed at runtime, given mjModel. This separation makes it easy to simulate multiple models as well as multiple states and controls for each model, in turn facilitating multi-threading for sampling and finite differences.

     

  • 1.17, Константавр (ok), 10:14, 24/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Погодите, а кто написал этот дпижок? Люди? Или их Deep Mind?
     
     
  • 2.24, Аноним (24), 12:56, 24/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    DeepMind не так давно купили этот движок, писали его не они.
    Движок очень важный, он повсеместно используется для тренировки агентов при помощи обучения с подкреплением.
     

  • 1.28, Аноним (28), 14:40, 24/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Слепой ведет незрячего :(

    Евангелие от Матфея 15.14 " оставьте их: они — слепые вожди слепых; а если слепой ведет слепого, то оба упадут в яму "

     
  • 1.43, Аноним (43), 19:00, 25/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Тяжело такой движок написать? Что нужно знать из математики?
     
     
  • 2.45, Аноним (45), 12:27, 26/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Математику.
     
  • 2.46, Аноним (47), 14:51, 27/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Что нужно знать из математики?

    Физику. Глобальная проблема всех таких подобных систем в том, что они забыли про первые интегралы в их физическом смысле. Потому всё болтается, как куклы на резинках. А применять Эйлера - это выстрел сразу в голову, он всегда _разбалтывает_ систему в силу своего определения.

     

  • 1.48, Пенгуин (?), 14:57, 27/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Напоминает физический движок Euphoria, что в играх от Rockstar используют.
     
  • 1.49, redwolf (ok), 01:33, 31/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Мне одному не нравится XML в этом продукте? Ужасно же читается.
    А так занятная полезная штука.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру