Для всех примеров, которые имеют Simulink® model, используйте следующую процедуру, чтобы запустить пример и просмотреть модель:
В MATLAB® Командное окно, введите имя модели Simulink. Для примера введите:
vrbounce
Откроется окно Simulink с блоком для модели. По умолчанию виртуальный мир также открывается в Simulink 3D Animation™ Viewer или в вашем HTML5-enabled веб-браузере. Если вы закрываете окно виртуального мира, дважды кликните блок VR Sink, чтобы отобразить его снова.
Примечание
Если средство просмотра не открывается, дважды кликните блок VR Sink в модели Simulink. В Simulink 3D Средство Просмотра, из меню Simulation, нажмите Block Parameters
. Откроются Параметры блоков диалоговое окно. Флажок Открыть средство просмотра автоматически должен быть установлен по умолчанию. При двойном клике по блоку VR Sink этот выбор позволяет открыть окно виртуального мира.
В окне Simulink, в меню Simulation, нажмите запуск. (Также в Simulink 3D Средство Просмотра в меню Simulation нажмите Start.)
Симуляция начинает работать, и виртуальный мир анимируется с помощью данных сигнала от симуляции.
В следующей таблице перечислены примеры Simulink, предоставленные с продуктом Simulink 3D Animation. Описания примеров следуют за таблицей.
Пример | Simulink Coder™ готов | Приемник VR | Источник VR | Джойстик | Пространственная мышь |
---|---|---|---|---|---|
sl3dex_rigidbodytree | X | ||||
sl3dex_uav | X | X | X | ||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
vr_octavia_2cars | X | ||||
vr_octavia_graphs | X | ||||
vr_octavia_mirror | X | ||||
| X | ||||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | ||||
| X | ||||
| X | X | |||
vrcollisions_lidar | X | X | |||
| X | X |
The sl3dex_uav
пример показывает, как виртуальные датчики столкновения могут использоваться для интерактивного управления симуляцией и изменения внешнего вида объектов виртуального мира с помощью Simulink ® 3D Animation™. Пример представляет вызов простого беспилотного летательного транспортного средства (БПЛА).
Сцена соревнований БПЛА основана на Конкурсе рейсов IMAV, проходившем в 2013 году в Тулузе, Франция. (http://www.imav2013.org)
The sl3dex_rigidbodytree
пример демонстрирует функциональность
блока Simulink 3D Animation VR RigidBodyTree. Этот пример требует Robotics System Toolbox™
Блок VR RigidBodyTree вставляет визуальное представление объекта Robotics System Toolbox RigidBodyTree в виртуальном мире и отображает его в средстве просмотра виртуальной реальности. Во время симуляции древовидное твердое тело впоследствии анимируется в соответствии с строением, заданной во входе Config.
В этом примере строение манипулятора обеспечивается блоком Robotics System Toolbox Inverse Kinematics. Можно использовать ползунки, чтобы изменить положение конца и ориентацию робота вокруг одной оси.
The vrbounce
пример представляет мяч, прыгающий с пола. Мяч деформируется, когда он ударяется о пол, сохраняя объем мяча постоянным. Деформация достигается путем изменения масштабного поля мяча.
The vrcrane_joystick
пример иллюстрирует, как модель Simulink может взаимодействовать с виртуальным миром. Динамика портальных кранов моделируется в интерфейсе Simulink и визуализируется в виртуальной реальности. Модель использует блок Joystick Input, чтобы управлять уставкой. Оси джойстика 3 управляют положением уставки, и кнопка 1 запускает кран. Этот пример требует стандартного джойстика с по крайней мере тремя независимыми осями, подключенными к ПК.
Чтобы минимизировать количество сигналов, переданных между моделью Simulink и миром виртуальной реальности, и сохранить модель максимально простой и гибкой, из модели в блок VR Sink отправляется только минимальный набор свойств движущихся объектов. Все другие значения, необходимые для описания перемещения объектов виртуальной реальности, вычисляются из этого минимального набора с помощью VRMLScript в связанном файле 3D виртуального мира.
Для получения дополнительной информации о том, как реализована иерархия модели крана и логика скриптов, смотрите связанный с ней файл 3D виртуального мира с комментариями portal_crane.wrl
.
The vrdemo_panel
пример показывает использование объектов измерения, которые доступны в библиотеке 3D World Editor Components. Эти объекты объединяют датчики виртуального мира с логикой, которая изменяет их визуальный внешний вид на основе пользовательского ввода. Значения датчика могут быть считаны в Simulink исходным блоком VR. Логика реализована с помощью скриптов VRML и маршрутов.
Панель управления содержит кнопку, кнопку переключателя, тумблер и область выбора 2-D уставки. Выходы этих элементов считываются в модель Simulink и впоследствии отображаются с помощью стандартных приемников или используются в качестве входов блоков, которые управляют некоторыми объектами в виртуальном мире.
Кнопка, кнопка переключения и переключатели имеют выходы состояния логического типа. Их значения отображаются с помощью возможности.
Два выхода области уставки 2D используются для достижения следующего поведения. Значение «SetPoint_Changed» eventOut постоянно обновляется, когда указатель мыши находится над областью датчика. Это значение запускается вторым выходом - «isActive», который верен только при нажатии кнопки указателя. Срабатывающее значение - координаты активной точки на плоскости датчика отображаются с помощью XY Graph и отправляются обратно в виртуальный мир двумя способами: как положение маркера зеленого конуса и как текст, который блок VR Text Output отображает на панели управления.
The vrcrane_traj
пример основан на vrcrane_joystick
пример, но вместо интерактивного управления, он имеет предопределенную траекторию нагрузки. The vrcrane_traj
модель иллюстрирует метод создания визуального впечатления от соединения и разделения движущихся объектов в виртуальном мире.
Магнит крана присоединяет ящик нагрузки, перемещает его в другое место, затем отпускает ящик и возвращается в исходное положение. Этот эффект достигается с помощью дополнительного, геометрически идентичного теневого объекта, который помещается в качестве независимого объекта вне иерархии объектов крана. В любой момент времени только один из Load
или Shadow
отображаются объекты, используя два Switch
узлы, соединенные ROUTE
оператор.
После того, как кран переместит нагрузку в новое положение, во время релиза нагрузки скрипт VRMLScript присваивает новое положение теневого объекта в соответствии с текущим Load
положение. The Shadow
объект становится видимым. Поскольку он не зависит от остальной иерархии движущихся частей крана, он остается в своем положении, когда кран удаляется.
The vrlights
В примере используются источники света. В сцене можно переместить Солнце (смоделировано как DirectionalLight
) и лампа (моделируется как PointLight
) объекты вокруг модели Simulink. Это движение создает иллюзию изменений между днем и ночью и ночной подсветкой местности. Связанный файл 3D виртуального мира задает несколько точек зрения, которые позволяют вам наблюдать постепенные изменения света с различных точек зрения.
The vrmaglev
пример показывает взаимодействие между динамическими моделями в окружение Simulink и виртуальными мирами. Модель Simulink представляет HUMUSOFT® CE 152 Модель шкалы обучения/презентации магнитной левитации. Модель объекта управления управляется ПИД-регулятор с feedforward, чтобы справиться с нелинейностью системы магнитной левитации. Чтобы легче наблюдать и управлять мячом, установите средство просмотра на точку обзора Camera 3.
Задать уставку мяча положения можно двумя способами:
Использование Signal Generator (Simulink) блока
Кликнув в сцене виртуальной реальности в нужном положении
Для достижения эффекта перетаскивания используйте PlaneSensor
прикреплен к шаровой геометрии с ограничением выходного выхода < 0,1 > в вертикальной координате и обработан блоком VR Sensor Reader. The vrextin
S-функция обеспечивает подключение к данным.
Для получения дополнительной информации о том, как считать значения из виртуальных миров программно, смотрите Добавить датчики в виртуальные миры.
В дополнение к vrmaglev
пример, vrmaglev_sldrt
пример работает непосредственно с фактическим оборудованием модели шкалы CE 152 в реальном времени. Эта модель для работы с платой сбора данных HUMUSOFT MF 624, и программным обеспечением Simulink Coder и Simulink Desktop Real-Time™. Однако можно адаптировать эту модель для других целей и плат сбора. Цифровой БИХ из библиотеки DSP System Toolbox™ фильтрует выходы физической системы. Можно обойти физическую систему при помощи встроенной модели объекта управления. Запуск этой модели в реальном времени является примером, показывающим возможности продукта Simulink в проекте систем управления и быстром прототипировании.
После включения удаленного представления в диалоговом окне блока VR Sink можно управлять моделью Simulink даже с другого (удаленного) клиентского компьютера. Это управление может быть полезно для распределения вычислительной степени между моделью Simulink в реальном времени, работающей на одной машине, и визуализацией мира виртуальной реальности на другой машине.
Чтобы работать с этой моделью, используйте максимально мощную машину или разделите вычисления и визуализацию на две машины.
The vrmanipul
пример иллюстрирует использование программного обеспечения Simulink 3D Animation для прототипирования виртуальной реальности и проверки жизнеспособности проектов перед фазой реализации. Кроме того, этот пример иллюстрирует использование входа пространственной мыши для манипулирования объектами в виртуальном мире. Для запуска этого примера необходимо ввести пробел мыши.
Модель виртуальной реальности представляет собой манипулятор с ядерной горячей ёмкостью. Им манипулирует простая модель Simulink, содержащая блок Space Mouse Input. Эта модель использует все шесть степеней свободы пространственной мыши для манипулирования механической рукой и использует кнопку мыши 1, чтобы закрыть захват челюстей манипулятора.
Пространственная мышь является входом с шестью степенями свободы. Он полезен для навигации и манипулирования объектами в виртуальном мире. Пространственная мышь также подходит в качестве общего устройства входа для моделей Simulink. Вы можете использовать пространственную мышь для повышения эффективности приложений и комфорта пользователя. Вход мыши Space поддерживается через блок Space Mouse Input, который входит в библиотеку блоков Simulink 3D Animation для окружения Simulink.
Блок Space Mouse Input может работать в трех режимах, чтобы охватить наиболее типичное использование такого устройства в трехмерном контексте:
Скорости
Положения
Координаты точки зрения
The vrmanipul_global
пример иллюстрирует использование глобальных координат в моделях Simulink 3D Animation. Можно использовать глобальные координаты в модели многими способами, включая:
Отслеживание объектов и манипуляции
Простое обнаружение столкновения
Симуляция гаптических эффектов
Исходный блок VR поддерживает использование глобальных координат для объектов в виртуальном мире. Для каждого Преобразования в сцене в древовидном виде в диалоговом окне параметра VR Source block отображается Extensions
ветвь. В этой ветви можно выбрать translation_abs
и rotation_abs
поля. Поля с _abs
суффикс содержит глобальные координаты объекта. Поля без _abs
суффикс вводит их данные в локальные координаты объекта модели Simulink (относительно их родительских объектов в иерархии модели).
Модель виртуальной реальности представляет собой манипулятор с ядерной горячей ёмкостью. Манипулятор перемещает нагрузку с одной серой цилиндрической платформы на другую. Траектория для конечного эффектора манипулятора предопределена с помощью Signal Builder. Каждая часть рычага манипулятора независимо приводится в действие с помощью разложенных компонентов траектории, с помощью блоков VR Expander (см. VR Transformations
подсистема).
Блок VR Source в дереве виртуальной сцены слева захватывает глобальные координаты всех объектов, важных для манипуляции нагрузкой:
Контрольная точка захвата манипулятора (центр хомута)
Контрольная точка назначения
Начальное положение нагрузки
Положение захвата манипулятора является результатом комплексного перемещения частей рычага манипулятора, которые образуют иерархическую структуру. Обычно очень трудно вычислить глобальные координаты для таких объектов, затронутых иерархическими связями в сцене. Однако Simulink 3D Animation предоставляет простой способ чтения глобальных координат объектов, затронутых иерархическими отношениями, в модель Simulink.
Основываясь на наличии глобальных координат всех важных объектов, можно реализовать простую логику управления манипулятором.
The vrmemb1
пример аналогичен vrmemb
пример, но в vrmemb1
пример связанный виртуальный мир управляется из модели Simulink.
The vrmorph
пример иллюстрирует, как можно передать сигнальные данные матричного типа или переменного размера между интерфейсом Simulink и миром виртуальной реальности. С помощью этой возможности можно выполнить массовые изменения цвета или морфинг. Эта модель морфирует кубик в октаэдр, а затем изменяет его обратно на кубик.
The vr_octavia
пример иллюстрирует преимущества визуализации сложной динамической модели в среде виртуальной реальности. Также показана функциональность записи анимации 3D Simulink 3-D Animation в автономном режиме.
Этот пример расширяет vr_octavia
пример, чтобы показать визуализацию сценария с несколькими объектами.
Предварительно рассчитанные данные моделирования представляют стандартный маневр с двухполосным переходом, проводимый в двухмашинных строениях. Один из строения взаимодействует с управляющим модулем Electronic Stability Program. Другие переключатели строения, которые управляют модулем off. Пример отправляет два набора данных динамики аппарата параллельно в сцену виртуальной реальности, чтобы управлять двумя различными транспортными средствами.
Модели транспортных средств используют EXTERNPROTO
механизм. В главном виртуальном мире, сопоставленном с блоком VR Sink, можно создать несколько одинаковых транспортных средств как образцов общего объекта 3-D. Этот подход значительно упрощает разработку виртуального мира. Например, очень легко создать третье транспортное средство, чтобы одновременно визуализировать другой сценарий симуляции. The octavia_scene_lchg_2cars.wrl
виртуальный мир, код после определения PROTOS
иллюстрирует подход к простым в определении переиспользуемым объектам.
В дополнение к свойствам автомобиля, управляемым в vr_octavia
например, прототипы транспортных средств также позволяют вам определять цвет и шкалу транспортного средства. Эти свойства различают отдельные образцы автомобиля (цвет) и избегают неприятного визуального взаимодействия двух почти выровненных 3-D объектов (шкала). Масштабирование одного из автомобилей на небольшое количество, охватывает один автомобиль в другой, так что их лица не зажимаются случайным образом, основываясь на текущих данных моделирования на каждом шаге симуляции.
Чтобы визуализировать транспортные средства один за другим, добавьте смещение к положению одного транспортного средства.
The vr_octavia_graphs
пример расширяет vr_octavia
пример, показывающий, как объединить холст виртуальной реальности на одном рисунке с другими объектами графического интерфейса пользователя. В этом случае виртуальный мир отображает три графика, которые обновляются на каждом главном временном шаге симуляции.
The vr_octavia_mirror
пример расширяет vr_octavia
пример, показывающий возможность блока VR Sink обрабатывать видеопоток на входе. В виртуальном мире, PixelTexture
текстурная карта определяется в точке левого заднего зеркала транспортного средства. Пример помещает 2-D изображение с точки зрения в то же положение (глядя назад). Это изображение закольцовывается назад в тот же виртуальный мир и проецируется на заднее зеркальное стекло, создавая впечатление живого отражения. Текстурные изображения могут иметь различные форматы (соответствующие доступному SFImage
определения согласно VRML97 стандарту). Этот пример использует изображение RGB, которое имеет тот же формат, что и выход из блока VR в видео. В файле 3D виртуального мира, сопоставленном со сценой, можно задать только тривиальную текстуру (в этом случае - шахматную доску 4х4 пикселя), которая изменяется во время симуляции, согласно текущему размеру сигнала на входе. Смотрите пример Plane Манипуляции Using Space Mouse MATLAB Объекта.
The vr_octavia_video
пример иллюстрирует, как использовать выход видео из блока VR To Video. Эта модель выполняет простые операции на выходе видео. Для этого требуется продукт Computer Vision Toolbox™.
The vrpend
пример иллюстрирует различные способы взаимодействия динамической модели в интерфейсе Simulink со сценой виртуальной реальности. Это модель двумерного перевернутого маятника, управляемый ПИД-регулятор. То, что отличает эту модель от общих моделей инвертированного маятника, является методами для установки заданной точки. Вы визуализируете и взаимодействуете с виртуальным миром с помощью блоков Trajectory Graph и VR Sink. Блок Trajectory Graph позволяет вам отслеживать историю положения маятника и изменять заданную точку тремя способами:
Мышь - щелкните и перетащите указатель мыши в двумерное окно График
Входной сигнал - вход графика внешней траектории в этой модели (управляется генератором случайных чисел)
Датчик VR - активирует вход от VRML TouchSensor
Когда указывающее устройство в средстве просмотра виртуального мира перемещается по активной области TouchSensor, форма курсора изменяется. Логика запуска в этой модели установлена, чтобы применить новое значение заданной точки с помощью нажатия кнопки левой кнопки мыши.
Заметьте псевдоортографическое представление, заданное в связанном файле 3D виртуального мира. Вы достигаете этого эффекта путем создания точки зрения, которая находится далеко от объекта интереса с очень узким видом, заданным FieldOfView
параметр. Ортогональное представление полезно для устранения панорамных искажений, возникающих при использовании широкоугольного объектива. Недостатком этого метода является то, что размещение точки обзора на расстоянии делает стандартную навигацию средства просмотра сложной или трудной в некоторых навигационных режимах, таких как режим Exampine. Если вы хотите перемещаться вокруг скамейки виртуальных маятников, вам следует использовать другую точку зрения.
The vrplanets
пример показывает динамическое представление первых четырех планет Солнечной системы, Луны, вращающейся вокруг Земли, и самого Солнца. Модель использует реальные свойства небесных тел. Только относительные размеры планеты и расстояние между Землей и Луной регулируются, чтобы обеспечить интересный вид.
Несколько точек зрения определены в виртуальном мире, как статические, так и прикрепленные к наблюдателю на Земле. Можно видеть, что тела планеты не представлены как совершенные сферы. Использование Sphere
графический примитив, который визуализирован таким образом, упростил модель. Если вы хотите сделать планеты более реалистичными, можно использовать более сложные IndexedFaceSet
тип узла.
Ускорения взаимной гравитации тел вычисляются с помощью поддержки данных матричного типа Simulink.
The vrtkoff
пример представляет собой упрощенный самолет, взлетающий с взлетно-посадочной полосы. В этой модели задано несколько точек обзора, как статических, так и присоединенных к плоскости, что позволяет видеть выборку с различных ракурсов.
Модель показывает метод объединения нескольких объектов, импортированных или полученных из различных источников (пакеты CAD, общие 3-D моделисты и так далее), в сцену виртуальной реальности. Обычно вам необходимо обернуть такие импортированные объекты дополнительным Transform
узел. Эта обертка позволяет вам соответствующим образом задать масштабирование, положение и ориентацию объектов, помещаемых в сцене. В этом примере модель самолета из Ligos® Библиотека объектов V-Realm Builder включена в сцену. Файл vrtkoff2.wrl
использует ту же сцену с другим типом самолетов.
The vrtkoff_trace
является вариантом vrtkoff
пример, который иллюстрирует, как проследить траекторию движущегося объекта (плоскости) в сцене. Он использует блок VR Tracer. Используя предопределённый шаг расчета, этот блок позволяет вам помещать маркеры в текущее положение объекта. Когда симуляция останавливается, маркеры указывают путь траектории объекта. Этот пример использует октаэдр в качестве маркера.
The vrtkoff_hud
пример иллюстрирует, как отобразить значения сигналов как текст в виртуальном мире и простом Head-Up Display (HUD). Это вариант vrtkoff
пример.
Пример отправляет текст в виртуальный мир, используя блок VR Text Output. Этот блок форматирует вектор входа, используя строку формата, заданную в его маске (см. sprintf
для получения дополнительной информации) и отправляет получившуюся строку в 'string'
поле связанного Text
узел в сцене.
Пример достигает поведения HUD (поддержание постоянного относительного положения между пользователем и Text
узел) путем определения ProximitySensor
. Этот датчик чувствует положение и ориентацию пользователя, когда он перемещается через сцену и направляет эту информацию к перемещению и вращению объекта HUD (в этом случае a Transform
который содержит Text
узел).
The vrcollisions
пример показывает простой способ реализации обнаружения столкновения.
В виртуальном мире X3D LinePickSensor
задан. Этот датчик обнаруживает приблизительные столкновения нескольких лучей (смоделированы как IndexedLineSet
) с произвольными геометриями в сцене. Для геометрических примитивов обнаруживаются точные столкновения. Один из LinePickSensor
выходные поля являются полем\\, которое становится TRUE
как только обнаруживается столкновение между любым из лучей и окружающими объектами сцены.
Робот находится внутри комнаты с несколькими препятствиями. Во время симуляции робот движется вперед, пока его датчик не прыгает в стенку или препятствие. Используйте Left и Right кнопки, чтобы повернуть робота так, чтобы впереди был свободный путь, и робот снова начинает движение.
Модель задает как VR Sink, так и VR Source блоки, сопоставленные с одной и той же виртуальной сценой. Датчик считывается с VR Source isActive
сигнал и текущее положение робота. Блок VR Sink устанавливает положение, поворот и цвет робота.
В виртуальном мире заданы две точки зрения - одна статическая и одна прикрепленная к роботу.
The vrcollisions_lidar
пример показывает, как LinePickSensor
может использоваться, чтобы смоделировать поведение датчика лидара в Simulink 3D Animation.
В простом виртуальном мире задан колесный робот с установленным на его верхней части датчиком лидара. Этот датчик лидара реализован с помощью LinePickSensor
который обнаруживает столкновения нескольких лучей (моделируется как IndexedLineSet
) с окружающими объектами сцены. Датчик pickedRange
и pickedPoint
поля используются в этой модели только в целях визуализации, но вместе с информацией о положении робота они могут использоваться для одновременной локализации и отображения (SLAM) и других аналогичных целей.
Линии измерения датчика видны, показаны как прозрачные зеленые линии. В горизонтальной плоскости между -90 и 90 степенями равномерно расположен 51 чувствительный луч. Область значений лидара составляет 10 метров.
В порядок визуализации выхода датчика лидара существует прокси визуализации LineSet
задается линиями, идентичными линиям, заданным как LinePickSensor
измерение геометрии. Линии визуализации синие. Комбинация pickedPoint
и pickedRange
LinePickSensor
выходы используются для визуализации точек столкновения. The pickedPoint
выход содержит координаты точек, которые столкнулись с окружающими объектами. Этот выход имеет переменный размер в зависимости от того, сколько лучей датчика столкнулось. The pickedRange
фиксируют выходной размер, равный количеству чувствительных лучей. Выход возвращает расстояние от источника датчика лидара до точки столкновения для каждой измерительной линии. Для лучей, которые не сталкиваются, этот выход возвращает -1. The pickedRange
используется для определения индексов линий, для которых точки столкновения возвращаются в pickedPoint
выход датчика. В эффект синие линии сокращаются так, что для каждой линии отображается только сегмент линии между источником вентилятора луча и точкой столкновения.
Траектория робота моделируется тривиальным способом с помощью блоков Signal Builder и Ramp. В Signal Builder для первых 40 секунд симуляции задается простая квадратная траектория 1x1 метр. После возвращения в исходное положение робот вращается только на неопределённое время.
В модели заданы как VR Sink, так и VR Source блоки, сопоставленные с одним и тем же виртуальным миром. Этот VR Source используется для считывания сигналов датчика. Этот VR Sink используется, чтобы задать положение/вращение робота и координаты конечных точек визуальных прокси-линий датчика.
В виртуальном мире задано несколько точек зрения, как статических, так и прикрепленных к роботу, что позволяет наблюдать лидарную визуализацию с разных точек зрения.
The vrmaze
пример показывает, как можно использовать обнаружение столкновения для симуляции дифференциального колесного робота, который решает проблему лабиринта. Алгоритм управления роботом использует информацию от виртуальных ультразвуковых датчиков, которые чувствуют расстояние до окружающих объектов.
Простой дифференциальный колесный робот оснащен двумя виртуальными ультразвуковыми датчиками. Один из датчиков смотрит вперед, а другой направлен налево от робота. Датчики упрощены, их активная область значений представлена зелеными линиями. Датчики реализованы следующим X3D LinePickSensor
узлы. Эти датчики обнаруживают приблизительные столкновения лучей (моделируются как IndexedLineSet
) с произвольными геометриями в сцене. Для геометрических примитивов обнаруживаются точные столкновения. Один из LinePickSensor
выходные поля являются isActive
поле, которое становится TRUE
как только обнаруживается столкновение его луча с окружающими объектами сцены. При активации линии датчика изменяют свой цвет с зеленого на красный с помощью скрипта, написанного непосредственно в виртуальном мире.
В модели заданы как VR Sink, так и VR Source блоки, сопоставленные с одной и той же виртуальной сценой. В VR Source считываются датчики isActive
сигналы. Этот VR Sink устанавливает положение робота и вращение в виртуальном мире.
Алгоритм управления роботом реализован с помощью графика Stateflow ®.
В следующей таблице перечислены примеры интерфейса MATLAB, поставляемые вместе с программным обеспечением. Описания примеров следуют за таблицей. Примеры интерфейса MATLAB отображают виртуальные миры в вашем средстве просмотра по умолчанию. Если по умолчанию используется Simulink 3D Средство Просмотра, некоторые кнопки недоступны. В частности, кнопки симуляции для симуляции и записи недоступны.
Пример | Перемещение Объекты | Превращение Объекты | Текст | Запись | vrml () Использование функции | Пространственная мышь |
---|---|---|---|---|---|---|
vrcar | X | |||||
vrheat | X | X | ||||
vrheat_anim | X | X | X | |||
vrmemb | X | X | X | |||
vrterrain_simple | X | |||||
vrtkoff_spacemouse | X | X |
Этот пример иллюстрирует использование продукта Simulink 3D Animation с интерфейсом MATLAB. В пошаговом руководстве он показывает команды для навигации виртуального автомобиля по пути через горы.
В Командном Окне MATLAB введите
vrcar
Запускается учебный скрипт. Следуйте инструкциям в Командном Окне MATLAB.
Этот пример иллюстрирует использование продукта Simulink 3D Animation с интерфейсом MATLAB для манипулирования сложными объектами.
В этом примере данные матричного типа передаются между программным обеспечением MATLAB и миром виртуальной реальности. Используя эту функцию, можно добиться массивных изменений цвета или морфинга. Это полезно для представления различных физических процессов. Используются предварительно рассчитанные данные основанного на времени распределения температуры в L-образном металлическом блоке. Данные затем отправляются в виртуальный мир. Это формирует анимацию с относительно большими изменениями.
Это пошаговый пример. Показаны следующие функции:
Изменение формы объекта
Применение цветовой палитры для представления распределенных параметров по форме объекта
Работа с текстовыми объектами VRML или X3D
Анимация сцены с помощью интерфейса MATLAB
Синхронизация нескольких свойств сцены
В конце этого примера можно сохранить объект виртуального мира в рабочем пространстве MATLAB, затем сохранить полученную сцену в соответствующий файл 3D виртуального мира или выполнить другие последующие операции над ним.
Этот пример иллюстрирует использование интерфейса Simulink 3D Animation C для создания 2-D автономных файлов анимации.
Можно управлять автономным механизмом записи анимации путем установки соответствующей vrworld
и vrfigure
свойства объекта. Для записи анимации следует использовать Simulink 3D Средство Просмотра. Однако непосредственное управление записью также возможно.
Этот пример использует данные распределения тепла из vrheat
пример для создания файла анимации. Можно позже распространить этот файл анимации, чтобы его независимо просматривали другие. Для этого вида визуализации, где статическая геометрия, представленная IndexedFaceSet
узел окрашен на основе симуляции некоторого физического явления, он подходит для создания 2-D .avi
файлы анимации. Программное обеспечение использует MATLAB VideoWriter
объект для записи 2-D анимации в точности так, как она появляется на рисунке средства просмотра.
Для записи анимации можно использовать несколько методов. В этом примере мы используем запланированную запись. Когда запланированная запись активна, в файл анимации записывается временная система координат с каждой настройкой виртуального мира Time
свойство. Запись завершается, когда вы устанавливаете время сцены в конце или вне предопределенного интервала записи.
При использовании интерфейса MATLAB Simulink 3D Animation вы устанавливаете требуемое время сцены. Это обычно с точки зрения моделируемого явления равноудаленное время. Это является наиболее важным различием от записи анимации для виртуальных миров, которые связаны с моделями Simulink, где время сцены соответствует непосредственно времени Simulink.
Время сцены может представлять любую независимую величину, вдоль которой вы хотите анимировать вычисляемое решение.
Это пошаговый пример. Показаны следующие функции:
Запись 2-D автономную анимацию с помощью интерфейса MATLAB
Применение цветовой палитры для визуализации распределенных параметров по форме объекта
Анимация сцены
Воспроизведение созданного 2-D файла анимации с помощью системного AVI-плеера
В конце этого примера полученный файл vrheat_anim.avi
остается в рабочей папке для дальнейшего использования.
The vrmemb
пример показывает, как использовать 3-D графический объект, сгенерированный из окружения MATLAB, с продуктом Simulink 3D Animation. Мембрана генерируется logo
функция и сохранена в формате VRML с помощью стандартной vrml
функция. Вы можете сохранить всю дескриптивную графику® Объекты таким образом и используйте их с программным обеспечением Simulink 3D Animation в качестве компонентов связанных виртуальных миров.
После запуска примера вы увидите панель управления с двумя ползунками и тремя флажками. Используйте ползунки для поворота и масштабирования мембраны во время использования флажков для определения оси поворота вокруг.
В виртуальной сцене заметьте текстовый объект. Это ребенок Billboard
узел. Можно сконфигурировать этот узел так, чтобы его локальная ось Z поворачивалась, чтобы постоянно указывать на средство просмотра. Это может быть полезно для моделирования виртуальных панелей управления и головных отображений (HUDs).
Этот пример иллюстрирует преобразование доступных цифровых моделей повышения в формат VRML для использования в сценах виртуальной реальности.
В качестве источника данных о местности использовалась модель South San Francisco DEM (включенная в программное обеспечение Mapping Toolbox™). Простой Boeing® 747® модель включена в сцену, чтобы показать метод создания виртуальных миров из нескольких источников на лету.
Этот пример требует программного обеспечения Mapping Toolbox от MathWorks®.
Этот пример иллюстрирует использование пространственной мыши с помощью интерфейса MATLAB. После запуска этого примера в Simulink 3D Animation Viewer отображается виртуальный мир с самолетом. Вы можете перемещаться по плоскости в сцене с помощью пространственного устройства входа мыши. Нажмите кнопку 1, чтобы разместить маркер в текущем положении плоскости.
Для этого примера требуется пространственная мышь или совместимое устройство.