Принадлежащая Google компания DeepMind, получившая известность своими разработками в области искусственного интеллекта и построения нейронных сетей, способных играть в компьютерные игры на уровне человека, объявила об открытии движка для симуляции физических процессов MuJoCo (Multi-Joint dynamics with Contact). Движок нацелен на моделирование сочленённых структур, взаимодействующих с окружающей средой, и применяется для симуляции при разработке роботов и систем искусственного интеллекта, на стадии перед воплощением развиваемой технологии в виде готового устройства.
Код написан на языках C/C++ и будет опубликован под лицензией Apache 2.0. Поддерживаются платформы Linux, Windows и macOS. Работу по открытию всех связанных с проектом исходных текстов планируют завершить в 2022 году, после чего MuJoCo перейдёт на открытую модель разработки, подразумевающую возможность участия в разработке представителей сообщества.
MuJoCo представляет собой библиотеку с реализацией движка симуляции физических процессов общего назначения, который может применяться в процессе исследований и разработки роботов, биомеханических устройств и систем машинного обучения, а также при создании графики, анимации и компьютерных игр. Движок симуляции оптимизирован для достижения максимальной производительности и позволяет манипулировать объектами на низком уровне, обеспечивая при этом высокую точность и широкие возможности моделирования.
Модели определяются при помощи языка описания сцен MJCF, основанного на XML и компилируемого при помощи специального оптимизирующего компилятора. Помимо MJCF движок поддерживает загрузку файлов в универсальном формате URDF (Unified Robot Description Format). MuJoCo также предоставляет графический интерфейс для интерактивной 3D-визуализации процесса симуляции и рендеринга результатов с использованием OpenGL.
Основные возможности:
- Симуляция в обобщённых координатах, исключающая нарушение сочленений.
- Обратная динамика, определяемая даже при наличии соприкосновений.
- Использование выпуклого программирования для унифицированного формулирования ограничений в непрерывном времени.
- Возможность задания различных ограничений, включая мягкие касания и сухое трение.
- Симуляция систем частиц, тканей, верёвок и мягких объектов.
- Исполнительные элементы (актуаторы), включая моторы, цилиндры, мышцы, сухожилия и кривошипно-шатунные механизмы.
- Решающие программы на основе методов Ньютона, сопряжённых градиентов и Гаусса-Зейделя.
- Возможность использования пирамидальных или эллиптических конусов трения.
- Использование на выбор методов численного интегрирования Эйлера или Рунге-Кутты.
- Многопоточная дискретизация и аппроксимация методом конечных разностей.