Визуализация с клиентом виртуальной реальности

Предупреждение

Это содержимое характерно для программного обеспечения Simscape™ Multibody™ First Generation. Функции первого поколения намечают, чтобы быть удержанными от использования и нужно избежать.

О виртуальных мирах для машин и моделей

Можно обойти визуализацию Simscape Multibody и создать механическую анимацию в виртуальном мире собственного проекта. Вы создаете виртуальный мир, заполняете его с телами, представленными как виртуальные объекты с помощью Языка моделирования виртуальной реальности (VRML), затем соединяете интерфейсом с виртуальным миром с моделью Simscape Multibody. Создание вашей собственной виртуальной анимации требует нового или существующего виртуального мира для вашей модели и интерфейса между ними.

Этот раздел объясняет, как связать отдельно созданный виртуальный мир с моделью Simscape Multibody.

Создание виртуальных миров

Этот раздел принимает, что программное обеспечение Simulink 3D Animation установлено в вашей системе и что вы знакомы с ним и с созданием виртуальных миров. Обратитесь к документации Simulink® 3D Animation™ для полного изложения при установке и использовании этого тулбокса.

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

Создание виртуальных миров для моделей Simscape Multibody

Документация Simulink 3D Animation и книги VRML [1] объясняют, как создать виртуальные объекты и собрать их в виртуальные миры. Отображенный виртуальный мир называется виртуальной сценой. Лучший способ стать удобным перемещением вокруг в виртуальный мир состоит в том, чтобы практиковать со множеством режимов перемещения и точек зрения. Этот раздел подсвечивает требования, чтобы сделать виртуальный мир применимым как визуализация для модели Simscape Multibody.

Редактирование виртуальных миров и файлов VRML

Когда вы создаете виртуальный мир, заполненный виртуальными телами, необходимо создать каждое тело компонента, затем запланировать и реализовать геометрию начального состояния тел. Используйте инструмент разработки VRML, который может считать VRML как собственный формат, чтобы создать и отредактировать виртуальную реальность .wrl файлы. Программное обеспечение Simulink 3D Animation включает инструмент разработки VRML под названием V-Realm Builder®. Если вы знакомы с нативным исходным кодом VRML, можно использовать редактор простого текста или редактор MATLAB®, чтобы отредактировать файлы.

Представление тел как виртуальные объекты

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

Можно вложить ссылки тела на другие тела в иерархиях VRML, но необходимо задать положение по крайней мере одного тела и ориентацию относительно полного виртуального мира. Поместите и ориентируйте тела в их начальных состояниях, соответствующих с начальным состоянием симуляции Simscape Multibody.

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

Создание вашего собственного виртуального мира дает вам большую гибкость в представлении вашей машины:

  • Можно отобразить тела в так или такая маленькая деталь, как вы хотите, с формами, цветами, структурами, и т.д., вашего собственного выбора.

  • Можно включать или не использовать тела, как желаемый.

  • Можно создать блок автоматизированного проектирования (CAD) машины и экспортировать ее в файлы VRML.

  • Если вы только переводите тело, можно не использовать поле вращения от его узла Преобразования.

  • Если вы только вращаете тело, можно не использовать поле перевода от его узла Преобразования.

Взаимодействие через интерфейс с моделями Simscape Multibody с виртуальными мирами

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

Добавление и конфигурирование датчиков тела

Соедините Датчики Тела с системами координат Тела (CSS) на телах, движения которых вы хотите анимировать. Ссылка блока Body обсуждает, как создать и сконфигурировать CSS Тела. Необходимо сделать эти дополнительные шаги, чтобы экспортировать сигналы датчика тела к виртуальному миру:

  1. Убедитесь, что источник ссылки CS Корпуса Датчика Тела и ориентация следуют за иерархией VRML определения тела.

    Пример: Вы задаете новый CS Тела на теле, чтобы соединить Датчик Тела. Если бы вы задали положение тела VRML относительно центра тяжести (CG) второго, соседнего тела в ваших файлах VRML, необходимо установить поле Translated from origin of нового CS Тела до начала координат CS CG второго тела.

  2. В диалоговом окне Датчика Тела установите флажок [x; y; z] Position, если вы хотите анимировать поступательное движение тела.

    Установите флажок [3 x 3] Rotation matrix, если вы хотите анимировать вращательное движение тела.

  3. Выберите систему координат, в которой движения тела измеряются в выпадающем меню With respect to coordinate system. Можно выбрать Absolute (World) или Local (Body CS). Эта система координат должна быть эквивалентной, система координат раньше задавала положение тела и ориентацию в файлах VRML.

Выходной порт Simulink > появляется на блоке для каждого из сигналов движения. Поступательный сигнал является с 3 векторами из пространственных координат, (x, y, z). Вращательный сигнал является постолбцовым представлением с 9 векторами 3х3 ортогональной матрицы вращения R, (R 11, R21, R 31, R 12... ).

Анимация тел виртуального мира

Анимация виртуальных тел требует взаимодействия через интерфейс с сигналами датчика тела в модели Simscape Multibody с полями перевода и/или вращения VRML в .wrl файлы. Вы выполняете это с блоком VR Sink, который можно найти в библиотеке блоков Simulink 3D Animation.

  1. Введите vrlib в командной строке. Перетащите копию блока VR Sink в вашу модель.

  2. Откройте диалоговое окно VR Sink. (Модель Загрузчика Конвейера фигуры: Диалоговое окно Приемника VR отображается пример диалогового окна.)

  3. В поле Source file в области World properties введите имя файла VRML, который представляет виртуальный мир вашей модели. Это - файл, который относится к другому .wrl файлы, представляющие корпуса компонента вашей машины. Если файл VRML виртуального мира не находится в той же папке как ваша модель, введите путь файла относительно модели.

    Нажмите Apply. В окне VRML Tree, списке узлов виртуального мира .wrl файл появляется.

  4. Расширьте дерево каждого тела компонента в списке, чтобы просмотреть список флажков того тела. Установите флажки rotation и/или translation по мере необходимости для каждого тела. Входной порт Simulink > появляется на значке блока для каждого из этих установленных флажков.

Порты помечены nodeполе . node имя для тела. field назван любым rotation или translation.

Преобразование сигналов датчика тела в формат VRML

Вы теперь готовы соединить выходные сигналы Датчика Тела с блоком VR Sink. Но вы можете должны быть изменить те сигналы для допустимого использования в VRML.

  • Можно соединить поступательную сигнальную линию движения непосредственно от выходного порта Датчика Тела к node.translation входной порт на Приемнике VR. Дерево узла VRML непосредственно принимает движение перевода как сигнал с 3 векторами прямоугольных координат (x,y,z).

    Убедитесь, что поступательный сигнал движения относится к той же системе координат, используемой, чтобы задать положение тела в файлах VRML.

  • Вы не можете непосредственно соединить вращательную сигнальную линию движения с Приемником VR. Body Sensor выход представляет ориентацию с 3х3 матрицей вращения R, в то время как VRML принимает ориентацию, представленную как угол оси форма с 4 векторами [n θ], где n = (n x, n y, n z) является представлением с 3 векторами оси вращения и θ, является углом поворота.

    Откройте библиотеку Simscape Multibody Utilities. Для каждого вращательного сигнала движения перетащите блок RotationMatrix2VR в свою модель. Соедините сигнал вращения от блока Body Sensor до блока RotationMatrix2VR. Затем соедините последний блок с соответствующим node.rotation входной порт на Приемнике VR для того тела. Этот блок преобразует 3х3 матричный сигнал R в форму VRML с 4 векторами.

Закройте диалоговое окно блока VR Sink. Ваша модель Simscape Multibody теперь анимирует виртуальный мир.

Создание и взаимодействие через интерфейс с виртуальным миром модели

Модель mech_conveyor_vr является модифицированной версией исходной модели конвейера mech_conveyor.

Просмотр пользовательских внешних файлов VRML

mech_conveyor_vr модель идет с внешними файлами VRML, содержащими статические конфигурации частей машины в их исходных положениях. Этот пример использует редактор V-Realm Builder®, чтобы просмотреть файлы.

  1. В matlabroot\toolbox\physmod\mech\mechdemos\ папка, откройте эти внешние файлы VRML с V-Realm Builder:

    base.wrl, convmech.wrl, link1.wrl, link2.wrl, link3.wrl, 
    link4.wrl, pusher.wrl
    
  2. С convmech.wrl мир в особом внимании, нажмите кнопку Test Mode на панели инструментов V-Realm Builder и просмотрите полную машину в представлении Main. Щелкните правой кнопкой по этому окну, чтобы сконфигурировать навигацию. Если цвета кажутся размытыми, отключают фару.

  3. На левой стороне вашего редактора VRML окно исследуйте дерево узла convmech.wrl это относится к шести файлам VRML, представляющим каждое тело компонента:

    Иерархия положения тела и ссылок ориентации является плоской в этой модели. На каждое тело отдельно ссылаются к верхнему уровню иерархии, New World.

  4. Расширьте один из узлов. Каждый узел тела имеет, среди других, вращения и полей перевода:

    Исключением является основа. Будучи основанным и неподвижный, это не имеет ни перевода, ни поля вращения.

Взаимодействие через интерфейс с моделью и виртуальным миром

В mech_conveyor_vr, открытом блок Body Sensor1. Блок измеряет поступательное и вращательное движение Link3 в конвейере:

Блок Body Sensor1 имеет два выходных сигнала Simulink.

Другие блоки Датчика Тела подобны, за исключением Тела Sensor2, который измеряет только поступательное движение толкателя. Все Датчики Тела измеряют движения тела относительно Мира, системы координат, в которой основа конвейера в покое. Каждый сигнал движения представляет смещение тела относительно своего исходного положения.

mech_conveyor_vr модель содержит подсистему Simulink 3D Animation, взаимодействующую через интерфейс к пользовательским файлам VRML модели.

Модель загрузчика конвейера с пользовательским интерфейсом анимации виртуальной реальности

Пользовательская подсистема интерфейса анимации виртуальной реальности

  1. Проследите каждый сигнал датчика тела. Сигналы направляются через пары Simulink блоки Goto (в модели) и От блоков (в пользовательской библиотеке).

  2. Откройте подсистему Simulink 3D Animation, и путем двойного клика по ее значку и путем взгляда под ее маской. Блок VR Sink, соединенный с От блоков, передающих сигналы движения тела и средство просмотра виртуальной сцены, появляется. Виртуальная сцена загрузчика конвейера похожа на это видимое в редакторе VRML (см. Просмотр Пользовательских Внешних Файлов VRML).

    Модель загрузчика конвейера: Simulink 3D AnimationViewer

  3. Из панели меню средства просмотра виртуальной сцены выберите Simulation, затем Block Parameters. Диалоговое окно блока VR Sink открывается.

    Source file является convmech.wrl, основной файл для этого виртуального мира. VRML Tree справа воспроизводит дерево узла, видимое в редакторе VRML для convmech.wrl.

    Модель загрузчика конвейера: диалоговое окно приемника VR

  4. Расширьте и прокрутите деревья VRML вниз. Деревья для Link1, Link2, Link3, Link4 и Толкателя перечисляют полевые входные параметры для принятия сигналов движения.

    • Тела компонента Ссылки требуют и поступательных и вращательных движений. Все Ссылки активно установили флажки для своих входных параметров поля rotation и translation.

    • Корпус Толкателя требует только поступательного движения. Только флажок поля translation устанавливается для Толкателя.

    Каждый из девяти входных портов Simulink на блоке VR Sink называют node.field. Основа конвейера не перемещается, таким образом, его узел не имеет никаких полей ввода движения.

  5. Если вы закрыли средство просмотра Simulink 3D Animation, можно вновь открыть его от диалогового окна Приемника VR. Нажмите View в области World properties / Source file диалогового окна.

  6. Закройте все диалоговые окна путем нажатия на OK, оставления средства просмотра открытым.

  7. Нажмите кнопку Start в окне модели.

    Как в исходном mech_conveyor примере, запуская модель открывает панель ползунка Reference Position, которую можно переместить поперек. Когда вы делаете так, см. толкатель в перемещении средства просмотра параллельно.