В этой статье мы увидим, как мы реализуем подключаемый модуль Unity Mujoco для создания сцены, визуализируемой с помощью Intel Xe Graphics.

Что делает подключаемый модуль Mujoco?

Проект Deepmind Mujoco с открытым исходным кодом. Этот плагин позволяет нам моделировать (подробнее об этом позже).

У него есть различные среды для моделирования, такие как

  1. Муравей
  2. Хоппер
  3. Гепард
  4. Уокер-2д

Объекты показаны на рисунке ниже.

Платформа для программирования

Поскольку теперь Mujoco имеет открытый исходный код и доступен подключаемый модуль Mujoco-Unity, именно поэтому мы можем использовать C# для программирования и взаимодействия с объектами через создаваемую нами сцену (основное внимание в нашей статье здесь уделяется графике Intel Xe).

Как мы используем подключаемый модуль Mujoco в Unity

Плагин Unity использует физический движок mujoco, который, в свою очередь, может быть применен к активам Unity, реализующим игровую логику и использующим игровой объект, а также имеет доступ к полному API Mujoco.

Плагин Unity включает в себя package.json, и мы добавляем его из диспетчера пакетов, который распознает пакет, который импортирует кодовую базу C# в наш проект.

Unity необходимо добавить библиотеку mujoco, чтобы мы могли использовать все эффекты физического движка Mujoco.

Визуализированный поток Pipeline

Приступая к работе с физикой mujoco, необходимо выполнить определенные шаги.

Шаг 1. Нам нужно создать сцену в редакторе Unity.

Шаг 2. Нам нужно перейти в меню ресурсов редактора Unity.

Шаг 3: Далее нам нужно узнать, что в редакторе Unity доступна опция импорта сцены Mujoco.

Сцена Import Mujoco вызывает объект элемента mujoco внутри редактора Unity.

Возможны ошибки при добавлении файла пакета!

В консоли может появиться сообщение об ошибке, если мы не храним библиотеку dll в нужном месте. Та же структура файла должна следовать, как показано ниже.

Шаг 4.  Импорт сцены Mujoco позволяет нам добавить XML-файл, представляющий собой объект, содержащий все возможности физического движка Mujoco.

Примечания: XML-файл

Mujoco загружает файлы XML, которые могут быть созданы в двух форматах.

i) Один из них — собственный формат MJCF.

ii) Другим будет формат URDF.

Файл XML имеет схему, связанную со структурой.

Общий способ распознавания файла модели показан ниже.

XML-файл в целом является очень важной частью интеграции физического движка Mujoco в Unity.

Есть шаги, которые управляют созданием всего дерева.

1 – XML-схема

XML-схема формирует основу организации XML-файла. Следовательно, очень важно учитывать 1-ю иерархию в дереве. Он состоит из всей необходимой информации о том, как структура выглядит в реальности.

Вторые XML-элементы и атрибуты

XML-элементы и атрибуты — необходимый способ разделения всего файла модели.

3-й MJCF

Формат файла MJCF лежит в основе физического поведения Mujoco.

В MJCF есть все, что необходимо для создания очень важной связи, соединяющей все возможные способы поведения Mujoco, и известно, что это уникальный элемент верхнего уровня с именем mujoco.

Он представлен как mujoco — → (!)

Уникальный элемент верхнего уровня идентифицирует файлы XML как файлы MJCF.

Четвертая схема mj_print

Модели MJCF генерируются функцией mj_print schema, которая печатает внутреннюю XML-схему в виде простого текста или HTML с дополнением стиля или  .

5-я пользовательская схема

Из функции мы печатаем пользовательскую схему, которая действует как мост между элементами XML и файлами MJCF.

Парсеры 6th

Пользовательская схема использует синтаксические анализаторы. Парсеры помогают хешировать правильное дерево регулярных выражений файла MJCF в XML и наоборот.

7. Файл модели

Анализатор, в свою очередь, проверяет файлы модели.

Примечания

Unity активно поддерживается физическим движком Nvidia. В PhysX каждое твердое тело является свободным телом.

Mujoco требует явного определения суставов для обеспечения подвижности.

Принципы проектирования с графикой Intel Xe.

Поскольку быстрый рендеринг является очень важным требованием для быстрого моделирования и визуализации. Графика Intel Xe подходит для очень быстрой обработки вывода.

Графика Intel Iris Xe Max

Графика Intel Iris Xe Max улучшает взаимное соответствие между элементами MJCF и компонентами Unity.

Теперь мы увидим, как Intel XE Graphics улучшает симуляцию в сцене единства.

Сканирование в сцене Mujoco в Unity является очень важным критерием, поскольку оно проходит через иерархию, и в начале рендеринга используется графика Intel Xe, которая улучшает сканирование иерархии игровых объектов для компонента Mujoco, а также других компонентов Physx вместе. Вся комбинация результатов была очень многообещающей для окончательного рендеринга, он был значительно улучшен с помощью Intel Xe Graphics и улучшил всю симуляцию.

Игровой движок Unity и сцена

Чтобы начать работу с Unity, нам сначала нужно создать 3D-проект.

Убедитесь, что проект находится в корневой папке.

Прежде чем начать работу с Mujoco, нам нужно импортировать файл package.json, который можно загрузить с



Нам нужно добавить файл package.json.

Чтобы сначала перейти к файлу package.json, нам нужно найти менеджер пакетов, который находится в опции окна.

Изучение других файлов XML.

Я использовал файл ant.xml из пакета Open AI GYM.



Нам придется импортировать сцену mujoco в единство.

Затем импортировал файл ant.xml внутри единства.

Поскольку файлы ant.xml были доступны, убедитесь, что MjGeom (скрипт), который имеет экстент плоскости, обнулен.

Добавьте плоскость 3D-объекта из параметра «Игровой объект». Удалите камеру слежения с торса.

Просто увеличьте масштаб самолета, так как мы будем добавлять к нему дополнительные активы.

Перетащите объект муравья в папку с ресурсами, чтобы он стал сборным.

Теперь нам нужно добавить скрипт C# для префаба Unity, чтобы он работал во время выполнения. Чтобы было интереснее, я добавил префабы по кругу.

Сценарий приведен ниже.

using UnityEngine;
public class CircleFormation : MonoBehaviour
{
   // Instantiates prefabs in a circle formation
   public GameObject prefab;
   public int numberOfObjects = 12;
   public float radius = 5f;
   void Start()
   {
       for (int i = 0; i < numberOfObjects; i++)
       {
           float angle = i * Mathf.PI * 2 / numberOfObjects;
           float x = Mathf.Cos(angle) * radius;
           float z = Mathf.Sin(angle) * radius;
           Vector3 pos = transform.position + new Vector3(x, 0, z);
           float angleDegrees = -angle*Mathf.Rad2Deg;
           Quaternion rot = Quaternion.Euler(0, angleDegrees, 0);
           Instantiate(prefab, pos, rot);
       }
   }
}

Префаб — это префаб муравья, который мы создали. Результаты показаны ниже.

Пока я просматривал сцену, я сделал фрагмент обоих графических процессоров в своей книге ASUS Vivo. Результаты

Заключение.

Графика Intel Iris Xe Max помогла мне в результатах моделирования, поскольку она давала более потрясающие визуальные эффекты, а рендеринг вывода был быстрее.

Он смог объединить как Nvidia PhysX, так и Mujoco Physics в тандеме.

Дальнейшая работа над Unity ML с графикой Intel Xe будет продолжена. Следите за обновлениями.