Построение и подключение виртуального мира

Введение

В этом примере показано, как создать простой виртуальный мир с помощью 3D World Editor. Пример показывает не все, что можно сделать с редактором. Однако в примере показано, как выполнить некоторые основные задачи, чтобы начать.

Этот пример предполагает, что редактор по умолчанию был настроен как 3D World Editor. Для получения дополнительной информации смотрите Задать редактор по умолчанию.

В этом примере описываются шаги по созданию упрощенной версии виртуального мира, которую вы видите, если ввести эту команду в MATLAB® командное окно:

edit(vrworld('vrdeform.wrl'))

Определите задачу

Предположим, что вы хотите моделировать и визуализировать в виртуальной реальности деформацию сферы. В вашем виртуальном мире вы хотите иметь две коробки, представляющие жесткие пластины (B1, B2) и упругую сферу (S) между ними. Все три объектов выровнены по центру вдоль оси X. Коробки B1 и B2 двигаются к S с одинаковыми скоростями, но они движутся в противоположных направлениях. Когда они достигают сферы S, они начинают деформировать его, уменьшая его размерность x и растягивая как его размерности y, так и z.

Вот как выглядит этот виртуальный мир:

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

ОбъектПоложение по центруРазмерности

B1

[3 0 0]

[0.3 1 1]

B2

[-3 0 0]

[0.3 1 1]

S

[0 0 0]

r = 0.9

Simulink® 3D Animation™ продукт включает учебную модель vrtut3. Эта упрощенная модель моделирует деформацию эластичной сферы. После столкновения с твердыми блоками размерность x сферы уменьшается в 1 - 0,4 раза. Кроме того, размерности y и z расширяются, чтобы сохранить объем деформированного сферически-эллипсоида постоянным. Дополнительные блоки в модели подают векторы правильного размера в блок Simulink 3D Animation. Симуляция останавливается, когда сфера деформируется до 0,4 ее первоначального размера в направлении x.

Ваша первая задача - открыть модель Simulink и добавить блок Simulink 3D Animation к вашей модели.

Добавьте Simulink 3D Animation блок

Эта процедура использует модель Simulink vrtut3 чтобы показать, как добавить блок Simulink 3D Animation к модели. Модель генерирует значения положения B1, положения B2 и размерностей S (как описано в разделе Задать задачу).

  1. Откройте Tutorial #3. пример.

    1. В верхней части открывшейся страницы выберите Open Model.

    2. Сохраните vrtut3 файл в рабочую папку MATLAB.

  2. В MATLAB смените текущую папку на рабочую папку MATLAB.

  3. В Командном Окне MATLAB введите:

    vrtut3 
    

    Окно Simulink открывается моделью, которая содержит блоки Simulink 3D Animation VR Signal Expander, но не VR Sink блок для записи данных из модели в Simulink 3D Animation. Вместо этого эта модель использует блоки Scope, чтобы временно контролировать соответствующие сигналы.

  4. В Командном Окне MATLAB введите

    vrlib
    

    Откроется библиотека Simulink 3D Animation.

  5. Из окна Library перетащите блок VR Sink в схему Simulink. Затем можно закрыть окно браузера библиотек.

Ваша следующая задача - создать виртуальный мир, который вы будете связывать с блоком VR Sink. Смотрите Открыть новый виртуальный мир.

Откройте новый виртуальный мир

Вы должны создать виртуальный мир, чтобы соединиться с моделью Simulink для визуализации сигналов.

Эта процедура открывает новый виртуальный мир, в котором вы добавляете узлы для визуализации сигналов модели vrtut3. Связь между виртуальным миром и моделью Simulink требует, чтобы модель содержала блок VR Sink, как описано в Add a Simulink 3D Animation Block.

  1. Запустите 3D World Editor с пустым виртуальным миром. На панели инструментов MATLAB, на вкладке Apps, в разделе Simulation Graphics and Reporting, нажмите 3D World Editor.

    В 3D World Editor отображаются:

    • На левой панели виртуальной сцены дерево с только ROOT узел

    • На правой панели - пустой виртуальный мир

    • На нижней панели пустая панель для редактирования объектов

  2. Вы можете спасти виртуальный мир в любой точке. Сохраните виртуальный мир как vrtut3.wrl в той же рабочей папке, где вы vrtut3 файл находится. Не закрывайте 3D World Editor.

Ваши следующие две задачи создают виртуальный мир, который можно использовать с vrtut3 модель:

Добавление узлов

Создание коробок

Определение объектов виртуального мира включает в себя определение иерархии узлов. В этом примере показано, как определить Transform узлы под ROOT узел, с каждым Transform узел, включающий иерархию children, Shape, Appearance, Geometry, и определенная форма (в данном случае a Box) узлы.

  1. В дереве на левой панели нажмите ROOT (самый верхний элемент).

  2. Добавление Transform узел, используя следующую последовательность выбора меню.

  3. Этот Transform узел предназначен для поля B1. Как назвать Transform узел:

    1. Щелкните правой кнопкой мыши по Transform узел.

    2. Выберите Edit Name меню элемента.

    3. В поле редактирования слева от Transform узел, тип B1.

  4. Добавление Shape узел:

    1. Разверните B1 Transform узел.

    2. Выберите children узел.

    3. Добавление Shape узел, используя следующую последовательность выбора меню:

  5. Добавление Appearance узел для узла Shape:

    1. Под Shape узел, выберите appearance (SFNode) узел.

    2. Добавление Appearance узел, используя следующую последовательность выбора меню.

  6. Добавление Material узел к Appearance узел:

    1. Разверните (Appearance) Узлом и выберите material(SFNode) узел.

    2. Добавление Material узел, используя следующую последовательность выбора меню.

  7. Добавление Box узел к geometry узел:

    1. Выберите geometry(SFNode) узел (Shape) узел.

    2. Добавление Box узел, используя следующую последовательность выбора меню.

    Теперь, когда все узлы развернуты, 3D World Editor отображает рамку на панели virtual world display.

  8. Уменьшите коробку путем редактирования ее size свойство:

    1. Выберите size свойство Box узел.

    2. На панели object properties edit в нижней части редактора 3D World Editor введите 0.3 в первом столбце и 1 во втором и третьем столбцах.

    3. Нажмите Apply.

    Коробка становится меньше.

  9. Переместить ящик вправо путем изменения translation(SFVec3f) свойство B1(Transform) узел. На панели object properties edit установите в первом столбце значение 3 и оставьте второй и третий столбцы установленными на 0.

  10. Добавьте второй блок, аналогичный первому блоку.

    1. Под ROOT узел, добавить Transform узел (см. шаг 2) и назовите его B2 (см. шаг 3).

    2. Скопируйте Shape узел. Под B1 Transform узел, щелкните правой кнопкой мыши по Shape узел в B1 Transform Узлом и выберите Copy меню элемента.

    3. Вставьте скопированный узел Shape в B2 Transform узел. Под B2 Transform узел), щелкните правой кнопкой мыши по children Узлом и выберите Paste Node меню Paste > элемент.

      С B1 узел свернут, и B2 узел развернут, 3D World Editor выглядит как следующая графика.

  11. Переместить созданный вами прямоугольник влево путем изменения translation свойство B2(Transform) узел. На панели object properties edit установите в первом столбце значение -3 и оставьте второй и третий столбцы установленными на 0.

Создайте сферу

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

  1. Чтобы упростить фокусировку панели tree structure на узлах, которые вы хотите добавить, сверните B1(Transform) и B2(Transform) узлы.

  2. В дереве на левой панели нажмите ROOT узел.

  3. Добавление Sphere узел. В состав 3D World Editor входит библиотека объектов для создания виртуального мира, включая Sphere объект.

    Добавление Sphere объект библиотеки с помощью следующей последовательности выбора меню.

    Из списка Component Library папок выберите Shapes папка, а затем выберите Sphere.wrl файл.

  4. Выберите Transform узел и назовите его S.

    С S Transform узел полностью развернут, а другой Transform узлы свернуты, 3D World Editor выглядит как следующая графика.

  5. Сделать сферу синей, под Material узел, выберите diffuseColor свойство. На панели object properties edit измените значение первого столбца на 0.2, второй столбец для 1, и третий столбец для 1.

  6. Сохраните виртуальный файл привязки.

Ваша следующая задача - соединить выходы модели с блоком Simulink 3D Animation в вашей модели Simulink. См. Ссылка на модель Simulink.

Ссылка на модель Simulink

После того, как вы создали виртуальный мир и модель Simulink с блоком VR Sink, задайте связи между сигналами модели и виртуальным миром.

Примечание

Эта процедура использует модель vrtut3 в качестве примера. Это предполагает, что вы открыли модель и что вы добавили блок VR Sink, и что вы создали виртуальный мир под названием vrtut3.wrl. Смотрите руководство, начиная с Add a Simulink 3D Animation Block.

  1. Откройте диалоговое окно VR Sink Параметров блоков. В редакторе Simulink дважды кликните блок VR Sink.

  2. Рядом с Source file полем редактирования нажмите Browse.

  3. Выберите vrtut3.wrl, а затем нажмите Open.

  4. На панели Output выберите Open Viewer automatically. Этот флажок задает, что средство просмотра для виртуального мира запускается, когда вы запускаете модель.

  5. Для параметра Description введите vrtut3.

  6. В диалоговом окне VR Sink нажмите Apply.

  7. На панели tree structure установите флажки B1 translation, B2 translation и S scale в качестве узлов, которые вы хотите соединить с сигналами модели. Нажмите OK.

    Появляется VR Sink блок с соответствующими входами.

  8. Удалите три блока Scope и связанные с ними входные сигналы строки.

  9. Соедините входные линии из двух блоков VR Signal Expander и S Scaling in XYZ блокируйте соответствующие порты в блоке VR Sink.

  10. Дважды кликните VR Sink блок.

    Появится средство просмотра.

  11. В средстве просмотра выберите опцию Simulation > Block Parameters. Ваше средство просмотра по умолчанию откроется и отобразит виртуальный мир. Дополнительные сведения об изменении средства просмотра по умолчанию см. в разделе «Установка средства просмотра по умолчанию».

  12. В диалоговом окне VR Sink Параметров блоков нажмите кнопку View.

  13. В редакторе Simulink выберите Simulation > Run.

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

    Когда ширина сферы уменьшается до 0,4 от ее исходного размера, симуляция прекращает вращаться.

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

См. также

Функции

Блоки

Похожие темы