Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Физика Шаг 71 из 99

Введение в физику артикуляции

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

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

Настройка сочленения по сравнению с обычными соединениями

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

Unity компонент Артикуляторная установка Настройка с обычным соединением
Hierarchy
  • GameObject + Артикуляционный корпус
    • GameObject + Артикуляционный корпус
  • GameObject + жесткий корпус
  • GameObject + жесткий корпус + соединение
Связь GameObjects имеют иерархическое отношение (родитель-ребёнок).
Примечание: Физика использует иерархию преобразований Unity для выражения отношения родитель-ребёнок.
GameObjects не обязательно имеют иерархическое отношение.
Примечание: В более сложных сценариях вы можете свободно имитировать кинематические петли.
Физические тела Оба GameObjects имеют компонент Артикулятор Тела, который определяет свойства физического тела (в числе прочих). Оба GameObjects имеют компонент RigidBody, который определяет свойства физического тела (среди прочих).
Совместное Тело Артикулятора дочернего объекта GameObject содержит свойства соединения, где можно выбрать тип соединения. Один из GameObjects также имеет компонент Joint. Свойства Joint зависят от типа добавляемого компонента Joint.

Однако, общее поведение не одинаково в обоих случаях, особенно если вы распространяете этот принцип на множество физических тел и суставов.

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

Создание артикуляции в Unity

Чтобы создать физическую артикуляцию в Unity, вы должны добавить компонент Тело артикуляции к каждому GameObject, из которого состоит артикуляция. Каждый компонент Тело артикуляции позволяет настроить в одном месте:

  • Физические свойства тела соответствующего GameObject. В основном, его масса и то, как он реагирует на физическую среду.

  • Тип и свойства соединения, которое соединяет GameObject с его родительским GameObject (за исключением корня соединения).

Следующий пример показывает простую физическую артикуляцию, которая включает 3 физических тела и 2 сустава:

Физика артикуляции с тремя физическими телами и двумя суставами.
Физика артикуляции с тремя физическими телами и двумя суставами.

Чтобы построить такую артикуляцию в Unity:

  1. Создайте линейную иерархию из 3 GameObjects.

  2. Добавьте компонент «Артикуляторный корпус» к каждому из этих трех GameObjects.

  3. Настроить каждый компонент тела шарнира (согласно вышеприведенной графике):

GameObject Конфигурация деталей кузова
А (корень) Вы можете определить свойства физического тела только для GameObject A.
B Можно определить:
  • Физические свойства тела для GameObject B.
  • Тип и свойства соединения с GameObject A.
C Можно определить:
  • Физические свойства тела для GameObject C.
  • Тип и свойства соединения с GameObject B.

Примечание: По определению, соединение может иметь только один корень и не может иметь кинематических петель. Если вам нужны кинематические петли, используйте обычные соединения.

Ограничение: Если вы хотите построить очень длинные цепочки артикуляции, вы все равно должны знать, что Unity поддерживает максимальную глубину иерархии 64 GameObjects.

Типы суставов и степени свободы

Существует четыре типа артикуляторных соединений, которые можно выбрать и настроить с помощью тела артикулятора:

  • Неподвижное соединение: обеспечивает жесткое, неразрушающееся и не растягивающееся соединение между кузовами.

  • Призматический шарнир: предотвращает любое движение, кроме скольжения по определенной оси.

  • Revolute соединение: позволяет вращение вокруг определенной оси (как петля).

  • Шаровое соединение: анатомическое соединение, которое позволяет два поворота и один поворот.

Все заблокированные степени свободы в сочленении являются неразрушимыми и нерастягиваемыми по конструкции. Чтобы достичь этого, движок физики использует уменьшенное координатное пространство, в котором тела имеют координаты только вокруг разблокированных осей движения.

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

Физика артикуляции демо

Ознакомьтесь с демонстрационным проектом по робототехнике от Unity, чтобы поэкспериментировать с последовательно связанной рукой робота с шарнирными соединениями.