Мир виртуальной реальности и примеры динамической системы

Примеры интерфейса Simulink

Для всех примеров, которые имеют модель Simulink®, используйте следующую процедуру, чтобы запустить пример и просмотреть модель:

  1. В Командном окне MATLAB® введите имя модели Simulink. Например, введите:

    vrbounce
    

    Окно Simulink открывается блок-схемой для модели. По умолчанию виртуальный мир также открывается в Средстве просмотра Simulink 3D Animation™ или вашем HTML5-поддерживающем веб-браузере. Если вы закрываете окно виртуального мира, дважды кликаете блок VR Sink, чтобы отобразить его снова.

    Примечание

    Если средство просмотра не открывает, дважды кликает блок VR Sink в модели Simulink. В Средстве просмотра Simulink 3D Animation, в меню Simulation, нажимают Block Parameters. Диалоговое окно Block Parameters открывается. Открытое средство просмотра автоматически флажок должно быть выбрано по умолчанию. Когда вы дважды кликаете блок VR Sink, этот выбор позволяет окну виртуального мира открыться.

  2. В окне Simulink, в меню Simulation, нажимают Run. (В качестве альтернативы в Средстве просмотра Simulink 3D Animation, в меню Simulation, нажимают Start.)

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

В следующей таблице перечислены примеры Simulink, которым предоставляют продукт Simulink 3D Animation. Описания примеров следуют таблице.

ПримерГотовый Simulink Coder™Приемник VRИсточник VRДжойстикМышь пробела
sl3dex_rigidbodytree X   
sl3dex_uav XX X

vrbounce

X

X

   

vrcrane_joystick

 

X

 

X

 

vrcrane_panel

 

X

X

  

vrcrane_traj

X

X

   

vrlights

X

X

   

vrmaglev

 

X

X

  

vrmaglev_sldrt

X

X

   

vrmanipul

 

X

  

X

vrmanipul_global

 

X

X

  

vrmemb1

X

X

   

vrmorph

X

X

   

vr_octavia

X

X

   
vr_octavia_2cars 

X

   
vr_octavia_graphs 

X

   
vr_octavia_mirror 

X

   

vr_octavia_video

 

X

   

vrdemo_panel

 

X

X

  

vrpend

X

X

   

vrplanets

X

X

   

vrtkoff

X

X

   

vrtkoff_trace

 

X

   

vrtkoff_hud

 

X

   

vrcollisions

 

X

X

  
vrcollisions_lidar 

X

X

  

vrmaze

 

X

X

  

Пример соревнования UAV (sl3dex_uav)

sl3dex_uav пример показывает, как виртуальные датчики столкновения могут использоваться, чтобы в интерактивном режиме управлять симуляцией и изменить внешний вид объектов виртуального мира с помощью Simulink® 3D Animation™. Пример представляет простую проблему беспилотного воздушного транспортного средства (UAV).

Сцена соревнования UAV основана на Соревнованиях Рейса IMAV, проведенных в 2 013 в Тулузе, Франция. (http://www.imav2013.org)

Визуализация дерева твердого тела (sl3dex_rigidbodytree)

sl3dex_rigidbodytree пример демонстрирует функциональность блока Simulink 3D Animation VR RigidBodyTree. Этот пример требует Robotics System Toolbox™

Блок VR RigidBodyTree вставляет визуальное представление объекта Robotics System Toolbox RigidBodyTree в виртуальном мире и отображает его в средстве просмотра виртуальной реальности. В процессе моделирования дерево твердого тела впоследствии анимировано согласно настройке, заданной во входе Config.

В этом примере настройка манипулятора обеспечивается блоком Robotics System Toolbox Inverse Kinematics. Можно использовать ползунки, чтобы сменить положение исполнительного элемента конца робота и ориентацию об одной оси.

Пример прыгающего мяча (vrbounce)

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

Портала подъемный кран с управлением джойстиком (vrcrane_joystick)

vrcrane_joystick пример иллюстрирует, как модель Simulink может взаимодействовать с виртуальным миром. Портала движущие силы подъемного крана моделируются в интерфейсе Simulink и визуализируются в виртуальной реальности. Модель использует блок Joystick Input, чтобы управлять заданным значением. Джойстик 3 оси управляют положением заданного значения и кнопкой 1, запускает подъемный кран. Этот пример требует стандартного джойстика по крайней мере с тремя независимыми осями, соединенными с PC.

Чтобы минимизировать количество сигналов, переданных между моделью Simulink и миром виртуальной реальности, и сохранить модель максимально простой и гибкой, только, минимальный набор перемещения свойств объектов отправляется от модели до блока VR Sink. Все другие значения, которые необходимы, чтобы описать перемещение объектов виртуальной реальности, вычисляются из этого минимального набора с помощью VRMLScript в связанном виртуальном мире 3D файл.

Для получения дополнительной информации о том, как иерархия модели подъемного крана и логика сценариев реализованы, смотрите связанный прокомментированный виртуальный мир 3D файл portal_crane.wrl.

Виртуальная панель управления (vrdemo_panel)

vrdemo_panel пример показывает использование обнаружения объектов, которые доступны в библиотеке Components 3D World Editor. Эти объекты комбинируют датчики виртуального мира с логикой, которая изменяет их общий вид на основе ввода данных пользователем. Значения датчика могут быть считаны в Simulink Исходным блоком VR. Логика реализована с помощью Скриптов VRML и Маршрутов.

Панель управления содержит кнопку, кнопку переключателя, переключите переключатель и 2D область выбора заданного значения. Выходные параметры этих элементов читаются в модель Simulink и впоследствии отобразили приемники стандарта использования или использовали в качестве входных параметров блоков, которые управляют назад некоторыми объектами в виртуальном мире.

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

Два выходных параметров 2D области заданного значения используются, чтобы достигнуть следующего поведения. Значение "SetPoint_Changed" eventOut постоянно обновляется, когда указатель по области датчика. Это значение инициировано вторым выходом - "isActive", который верен только при нажатии кнопки указателя. Инициированное значение - координаты активной точки на плоскости датчика отображены с помощью Графика XY и переданы обратно в виртуальный мир двумя способами: как положение зеленого конического маркера и как текст, который блок VR Text Output отображает на панели управления.

Портала подъемный кран с предопределенным примером траектории (vrcrane_traj)

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

Магнит подъемного крана присоединяет поле загрузки, перемещает его в другое место, затем выпускает поле и возвращается к исходному положению. Этот эффект достигается с помощью дополнительного, геометрически идентичного теневого объекта, который помещается как независимый объект за пределами иерархии объектов подъемного крана. В любой момент времени, только один из Load или Shadow объекты отображены, с помощью двух Switch узлы соединяются ROUTE оператор.

После того, как подъемный кран перемещает загрузку в новое положение, во время релиза загрузки, скрипт VRMLScript присваивает новое теневое положение объекта согласно текущему Load положение. Shadow объект становится видимым. Поскольку это независимо от остальной части иерархии подвижных частей подъемного крана, это остается в своем положении, когда подъемный кран переезжает.

Подсветка примера (vrlights)

vrlights пример использует источники света. В сцене можно переместить Sun (смоделированный как DirectionalLight) и лампа (смоделированный как PointLight) объекты вокруг модели Simulink. Это перемещение создает иллюзию изменений между днем и ночью и ночным освещением ландшафта. 3D файл связанного виртуального мира задает несколько точек зрения, которые позволяют вам наблюдать постепенные изменения в свете с различных точек зрения.

Пример модели магнитной левитации (vrmaglev)

vrmaglev пример показывает взаимодействие между динамическими моделями в окружении Simulink и виртуальных мирах. Модель Simulink представляет HUMUSOFT® CE 152 Magnetic Levitation образовательная масштабная модель / масштабная модель представления. Моделью объекта управления управляет ПИД-регулятор с feedforward, чтобы справиться с нелинейностью системы магнитной левитации. Чтобы более легко наблюдать и контролировать мяч, установите средство просмотра виртуального мира на Камеру 3 точки зрения.

Можно установить заданное значение положения мяча двумя способами:

  • Используя блок Signal Generator (Simulink)

  • Нажатие в сцене виртуальной реальности в положении, которое вы хотите

Чтобы достигнуть эффекта перетаскивания, используйте PlaneSensor присоединенный к геометрии мяча с ее выходом, ограниченным <0,1> в вертикальной координате и обработанный блоком VR Sensor Reader. vrextin S-функция обеспечивает информационное соединение.

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

Модель магнитной левитации для примера Simulink Desktop Real-Time (vrmaglev_sldrt)

В дополнение к vrmaglev пример, vrmaglev_sldrt пример работает непосредственно с фактическим оборудованием CE 152 масштабной модели в режиме реального времени. Эта модель, чтобы работать с платой HUMUSOFT MF 624 сбора данных и программным обеспечением Simulink Coder и Simulink Desktop Real-Time™. Однако можно адаптировать эту модель к другим целям и платам приобретения. Цифровой БИХ-фильтр, от библиотеки DSP System Toolbox™, фильтрует физическую систему выход. Можно обойти физическую систему при помощи встроенной модели объекта управления. Выполнение этой модели в режиме реального времени является примером, показывающим возможности продукта Simulink в проекте систем управления и быстром прототипировании.

После включения удаленного представления в диалоговом окне блока Приемника VR можно управлять моделью Simulink даже от другого (удаленного) клиентского компьютера. Это управление может быть полезно для распределения вычислительной мощности между моделью Simulink в реальном времени, работающей на одной машине и рендерингом мира виртуальной реальности на другой машине.

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

Манипулятор с примером мыши пробела (vrmanipul)

vrmanipul пример иллюстрирует использование программного обеспечения Simulink 3D Animation для прототипирования виртуальной реальности и тестирования жизнеспособности проектов перед фазой реализации. Кроме того, этот пример иллюстрирует использование входа мыши пробела для управления объектами в виртуальном мире. Необходимо было ввести мышь пробела, чтобы запустить этот пример.

Модель виртуальной реальности представляет ядерный горячий манипулятор емкости. Этим управляет простая модель Simulink, содержащая блок Space Mouse Input. Эта модель использует все шесть степеней свободы мыши пробела для управления механической рукой и использует кнопку мыши 1, чтобы закрыть власть челюстей манипулятора.

Мышь пробела является устройством ввода данных с шестью степенями свободы. Это полезно для навигации и управления объектами в виртуальном мире. Мышь пробела также подходит как общее устройство ввода данных для моделей Simulink. Можно использовать мышь пробела для более высоких производительных приложений и пользовательского комфорта. Вход мыши пробела поддерживается через блок Space Mouse Input, который включен в библиотеку блоков Simulink 3D Animation для окружения Simulink.

Блок Space Mouse Input может действовать в трех режимах, чтобы покрыть самое типичное использование такого устройства в 3D контексте:

  • Скорости

  • Положения

  • Координаты точки зрения

Манипулятор, перемещающий загрузку с использованием глобальных координат (vrmanipul_global)

vrmanipul_global пример иллюстрирует использование глобальных координат в моделях Simulink 3D Animation. Можно использовать глобальные координаты в модели во многих отношениях, включая:

  • Объектное отслеживание и манипуляция

  • Простое обнаружение столкновений

  • Симуляция относящихся к осязанию эффектов

Поддержки Исходного блока VR с помощью глобальных координат для объектов в виртуальном мире. Для каждого Преобразования в сцене структурный вид в диалоговом окне параметра Исходного блока VR отображает Extensions ветвь. В той ветви можно выбрать translation_abs и rotation_abs поля . Поля с _abs суффикс содержит глобальные координаты объекта. Поля без _abs снабдите суффиксом вводит их данные в локальные координаты объекта модели Simulink (относительно их родительских объектов в иерархии модели).

Модель виртуальной реальности представляет ядерный горячий манипулятор емкости. Манипулятор перемещает загрузку от одной серой цилиндрической платформы до другого. Траектория для исполнительного элемента конца манипулятора предопределена с помощью Signal Builder. Каждая часть руки манипулятора независимо приводится в движение с помощью анализируемых компонентов траектории, с помощью блоков Расширителя VR (см. VR Transformations подсистема).

Исходный блок VR в дереве виртуальной сцены на левых глобальных координатах получений всех объектов, важных для манипуляции с загрузками:

  • Контрольная точка власти манипулятора (центр зажима)

  • Целевая контрольная точка

  • Исходное положение загрузки

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

На основе наличия глобальных координат всех важных объектов можно реализовать простую управляющую логику манипулятора.

Вращение мембранного примера (vrmemb1)

vrmemb1 пример похож на vrmemb пример, но в vrmemb1 пример связанный виртуальный мир управляется из модели Simulink.

Пример превращающегося геометрии (vrmorph)

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

Визуализация динамики аппарата (vr_octavia)

vr_octavia пример иллюстрирует преимущества визуализации комплексной динамической модели в среде виртуальной реальности. Это также показывает Simulink 3D Animation 3-D оффлайновую функциональность записи анимации.

Визуализация динамики аппарата - симуляция нескольких объектов (vr_octavia_2cars)

Этот пример расширяет vr_octavia пример, чтобы показать нескольким - возражает визуализации сценария.

Предварительно вычисленные данные моделирования представляют маневр стандартного двухместного изменения маршрута, проводимый в настройках 2D транспортного средства. Одна настройка затрагивает блок управления Электронной программы устойчивости. Другая настройка выключает тот блок управления. Пример отправляет два набора данных о динамике аппарата параллельно к сцене виртуальной реальности, чтобы управлять двумя различными транспортными средствами.

Модели транспортных средств используют EXTERNPROTO механизм. В основном виртуальном мире, сопоставленном с блоком VR Sink, можно создать несколько идентичных транспортных средств как экземпляры общего 3-D объекта. Этот подход значительно упрощает авторскую разработку виртуального мира. Например, очень легко создать третье транспортное средство, чтобы одновременно визуализировать другой сценарий симуляции. octavia_scene_lchg_2cars.wrl виртуальный мир, код после определения PROTOS иллюстрирует подход для легко задаваемых допускающих повторное использование объектов.

В дополнение к свойствам транспортного средства, которыми управляют в vr_octavia пример, прототипы транспортного средства также позволяют вам задавать цвет транспортного средства и шкалу. Эти свойства отличают отдельные автомобильные экземпляры (цвет) и избегают неприятного визуального взаимодействия двух почти выровненных 3-D объектов (шкала). При масштабировании одного из автомобилей небольшим количеством, охватывает один автомобиль в другого так, чтобы их поверхности не отсекали случайным образом, на основе текущих данных моделирования в каждом шаге симуляции.

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

Визуализация динамики аппарата с графиками (vr_octavia_graphs)

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

Визуализация динамики аппарата с живым задним зеркальным отображением (vr_octavia_mirror)

vr_octavia_mirror пример расширяет vr_octavia пример путем показа возможности блока VR Sink обработать видеопоток на входе. В виртуальном мире, PixelTexture текстурная карта задана при транспортном средстве, оставленном заднее зеркало. Пример помещает 2D изображение с точки зрения в том же (смотрящем назад) положении. То изображение циклично выполняется назад в тот же виртуальный мир и проецируется на заднем зеркальном стекле, создавая впечатление от живого отражения. Изображения структуры могут иметь различные форматы (соответствующий доступному SFImage определения согласно стандарту VRML97). Этот пример использует изображение RGB, которое имеет тот же формат как выход от VR до блока Video. В виртуальном мире 3D файл сопоставил со сценой, можно задать только тривиальную структуру (в этом случае, шахматная доска на 4x4 пикселя), который изменен в процессе моделирования, согласно текущему размеру сигнала на входе. Смотрите, что Плоская Манипуляция Использует Мышь Пробела пример Объекта MATLAB.

Визуализация динамики аппарата с примером видеовыхода (vr_octavia_video)

vr_octavia_video пример иллюстрирует, как использовать видеовыход от блока VR To Video. Эта модель выполняет простые операции на видеовыходе. Это требует продукта Computer Vision Toolbox™.

Инвертированный пример маятника (vrpend)

vrpend пример иллюстрирует различные способы, динамическая модель в интерфейсе Simulink может взаимодействовать со сценой виртуальной реальности. Это - модель двумерного инвертированного маятника, которым управляет ПИД-регулятор. Что различает, эта модель из общих инвертированных моделей маятника методы для установки сетбола. Вы визуализируете и взаимодействуете с виртуальным миром при помощи Графика Траектории и блоков Приемника VR. Блок Trajectory Graph позволяет вам отслеживать историю положения маятника и изменять сетбол тремя способами:

  • Мышь — Перетаскивание указатель мыши в Графике Траектории двумерное окно

  • Вход Input Signal — External Trajectory Graph в этой модели (управляемый генератором случайных чисел)

  • Датчик VR — Активирует вход от VRML TouchSensor

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

Заметьте псевдоортогональное представление, заданное в связанном виртуальном мире 3D файл. Вы достигаете этого эффекта путем создания точки зрения, которая расположена далекая от предмета интереса с очень узким представлением, заданным FieldOfView параметр. Ортогональное представление полезно для устранения панорамного искажения, которое происходит, когда вы используете широкоугольный объектив. Недостаток этого метода - то, что определение местоположения точки зрения на расстоянии делает стандартную навигацию средства просмотра хитрой или трудной в некоторых режимах навигации, таких как режим Examine. Если вы хотите перейти вокруг виртуального места размещения маятника, необходимо использовать некоторую другую точку зрения.

Пример солнечной системы (vrplanets)

vrplanets пример показывает динамическое представление первых четырех планет солнечной системы, Луны, движущейся по кругу вокруг Земли и самого Sun. Модель использует действительные свойства небесных тел. Только относительные размеры планеты и расстояние между Землей и Луной настроены, чтобы обеспечить интересное представление.

Несколько точек зрения заданы в виртуальном мире, и статическом и присоединенном к наблюдателю на Земле. Вы видите, что тела планеты не представлены как совершенные сферы. Используя Sphere графический примитив, который представляется этим путем, упростил модель. Если вы хотите сделать планеты более реалистичными, вы могли бы использовать более комплексный IndexedFaceSet тип узла.

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

Плоский пример взлета (vrtkoff)

vrtkoff пример представляет упрощенный самолет, взлетающий со взлетно-посадочной полосы. Несколько точек зрения заданы в этой модели, и статической и присоединенной к плоскости, позволив вам видеть взлет от различных перспектив.

Модель показывает метод объединения нескольких объектов, импортированных или полученных из других источников (пакеты CAD, общие 3-D средства моделирования, и так далее) в сцену виртуальной реальности. Обычно необходимо для вас перенести такие импортированные объекты с дополнительным Transform узел. Эта обертка позволяет вам устанавливать соответственно масштабирование, положение и ориентацию объектов поместиться в сцену. В этом примере модель самолета от Ligos® V-Realm Builder Object Library включена в сцену. Файл vrtkoff2.wrl использует ту же сцену с другим типом самолета.

Плоский взлет с примером трассировки траектории (vrtkoff_trace)

vrtkoff_trace вариант vrtkoff пример, который иллюстрирует, как проследить траекторию движущегося объекта (плоскость) в сцене. Это использует блок VR Tracer. Используя предопределенный шаг расчета, этот блок позволяет вам помещать маркеры в текущем положении объекта. Когда симуляция останавливается, маркеры указывают на путь к траектории объекта. Этот пример использует октаэдр в качестве маркера.

Плоский взлет с текстовым примером HUD (vrtkoff_hud)

vrtkoff_hud пример иллюстрирует, как отобразить значения сигналов как текст в виртуальном мире и простом Главном отображении (HUD). Это - вариант vrtkoff пример.

Пример отправляет текст в виртуальный мир с помощью блока VR Text Output. Этот блок форматирует входной вектор с помощью строки формата, заданной в ее маске (см. sprintf для получения дополнительной информации), и отправляет получившую строку в 'string' поле связанного Text узел в сцене.

Пример достигает поведения HUD (поддерживающий постоянное относительное положение между пользователем и Text узел) путем определения ProximitySensor. Этот датчик обнаруживает пользовательское положение и ориентацию, когда это перешло через сцену и направляет эту информацию к переводу и вращению объекта HUD (в этом случае, Transform это содержит Text узел).

Обнаружение столкновений Используя датчик линии (vrcollisions)

vrcollisions пример показывает простой путь, как реализовать обнаружение столкновений.

В виртуальном мире, X3D LinePickSensor задан. Этот датчик обнаруживает аппроксимированные столкновения нескольких лучей (смоделированный как IndexedLineSet) с произвольными конфигурациями в сцене. Для геометрических примитивов обнаруживаются точные столкновения. Один из LinePickSensor выходные поля \\поле, которое становится TRUE как только столкновение между любым из лучей и окружающими объектами сцены обнаруживается.

Робот в комнате с несколькими препятствиями. Во время симуляции робот продвигается, пока его датчик не возвращается в стенку или препятствие. Используйте кнопки Left и Right, чтобы повернуть робота так, чтобы был свободный путь вперед, и робот начинает перемещаться снова.

Модель задает и VR Sink и блоки VR Source, сопоставленные с той же виртуальной сценой. VR Source читает датчик isActive предупредите и текущее положение робота. Блок VR Sink устанавливает положение робота, вращение и цвет.

В виртуальном мире существует две заданные точки зрения - одна статическая и один присоединенный к роботу.

Дифференциальный колесный робот с датчиком лидара (vrcollisions_lidar)

vrcollisions_lidar пример показывает как LinePickSensor может использоваться к поведению датчика лидара модели в Simulink 3D Animation.

В простом виртуальном мире задан колесный робот с датчиком лидара, смонтированным на его верхней части. Этот датчик лидара реализован с помощью LinePickSensor это обнаруживает столкновения нескольких лучей (смоделированный как IndexedLineSet) с окружающими объектами сцены. Датчик pickedRange и pickedPoint поля используются в этой модели для целей визуализации только, но вместе с информацией о положении робота они могут использоваться для Одновременной локализации и картографии (SLAM) и других подобных целей.

Линии обнаружения датчика отображаются, показавшие прозрачными зелеными линиями. Существует 51 распознающийся луч, равномерно расположенный с интервалами в горизонтальной плоскости между-90 и 90 градусами. область значений лидара составляет 10 метров.

Для того, чтобы визуализировать датчик лидара выход, существует прокси визуализации LineSet заданный с линиями, идентичными линиям, заданным как LinePickSensor обнаружение геометрии. Линии визуализации являются синими. Комбинация pickedPoint и pickedRange LinePickSensor выходные параметры используются, чтобы визуализировать точки столкновения. pickedPoint выведите содержит координаты точек, которые столкнулись с окружающими объектами. Этот выход имеет переменный размер в зависимости от того, сколько лучей датчика столкнулось. pickedRange выведите размер, фиксируется, равен количеству обнаружения лучей. Выход возвращает расстояние от источника датчика лидара до точки столкновения для каждой линии обнаружения. Для лучей, которые не сталкиваются, этот выход возвращается-1. pickedRange используется, чтобы определить индексы линий, для которых точки столкновения возвращены в pickedPoint датчик выводится. В действительности синие линии сокращены так, чтобы только линейный сегмент между источником вентилятора луча и точкой столкновения был отображен для каждой линии.

Траектория робота моделируется в тривиальном способе использовать Signal Builder и блоки Ramp. В Signal Builder простая квадратная траектория на 1x1 метр задана в течение первых 40 секунд симуляции. После возврата его исходному положению робот только вращается неопределенно.

В модели, существуют и VR Sink и блоки VR Source, заданные, сопоставленные с тем же виртуальным миром. VR Source используется, чтобы считать сигналы датчика. VR Sink используется, чтобы установить положение Робота / вращение и координаты конечных точек датчика визуальные линии прокси.

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

Дифференциальный колесный робот в лабиринте (vrmaze)

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

Вертевший робот простого дифференциала оборудован двумя виртуальными сверхзвуковыми датчиками. Один из датчиков смотрит вперед, и другой направлен слева от робота. Датчики упрощены, их активная область значений представлена зелеными линиями. Датчики реализованы как X3D LinePickSensor узлы. Эти датчики обнаруживают аппроксимированные столкновения лучей (смоделированный как IndexedLineSet) с произвольными конфигурациями в сцене. Для геометрических примитивов обнаруживаются точные столкновения. Один из LinePickSensor выходными полями является isActive поле, которое становится TRUE как только столкновение между его лучом и окружающими объектами сцены обнаруживается. Когда активировано, линии датчика изменяют свой цвет от зеленого до красного использования скрипта, написанного непосредственно в виртуальном мире.

В модели, существуют и VR Sink и блоки VR Source, заданные, сопоставленные с той же виртуальной сценой. VR Source читает датчики isActive сигналы. VR Sink устанавливает положение робота и вращение в виртуальном мире.

Алгоритм управления робота реализован с помощью графика Stateflow®.

Примеры интерфейса MATLAB

В следующей таблице перечислены примеры интерфейса MATLAB, которым предоставляют программное обеспечение. Описания примеров следуют таблице. Примеры интерфейса MATLAB отображают виртуальные миры в вашем средстве просмотра по умолчанию. Если вашим значением по умолчанию является Средство просмотра Simulink 3D Animation, некоторые кнопки недоступны. В частности, кнопки симуляции для симуляции и записи недоступны.

ПримерПеремещение
Объекты
Превращение
Объекты
ТекстЗаписьvrml () Функциональное ИспользованиеМышь пробела
vrcar

X

     
vrheat 

X

X

   
vrheat_anim 

X

X

X

  
vrmemb

X

 

X

 

X

 
vrterrain_simple 

X

    
vrtkoff_spacemouse  

X

  

X

Автомобиль в горном примере (vrcar)

Этот пример иллюстрирует использование продукта Simulink 3D Animation с интерфейсом MATLAB. В пошаговом руководстве это показывает команды для навигации по виртуальному автомобилю вдоль пути через горы.

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

    vrcar
    
  2. Учебный скрипт начинает запускаться. Следуйте инструкциям в командном окне MATLAB.

Пример теплопередачи (vrheat)

Этот пример иллюстрирует использование продукта Simulink 3D Animation с интерфейсом MATLAB для управления сложными объектами.

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

Это - постепенный пример. Показанный следующие функции:

  • Изменение объекта

  • Применение цветовой палитры, чтобы представлять распределенные параметры через форму объекта

  • Работа с VRML или текстовыми объектами X3D

  • Анимация сцены с помощью интерфейса MATLAB

  • Синхронизация нескольких свойств сцены

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

Визуализация теплопередачи с 2D анимацией (vrheat_anim)

Этот пример иллюстрирует использование интерфейса C Simulink 3D Animation, чтобы создать 2D оффлайновые файлы анимации.

Можно управлять оффлайновым механизмом записи анимации путем установки соответствующего vrworld и vrfigure свойства объектов. Необходимо использовать Средство просмотра Simulink 3D Animation, чтобы записать анимации. Однако прямое управление записью также возможно.

Этот пример использует данные о распределении тепла из vrheat пример, чтобы создать файл анимации. Можно позже распределить этот файл анимации, который будет независимо просматриваться другими. Для этого вида визуализации, где статическая геометрия представлена IndexedFaceSet узел окрашен на основе симуляции некоторого физического явления, это подходит, чтобы создать 2D .avi файлы анимации. Программное обеспечение использует VideoWriter MATLAB возразите, чтобы записать 2D анимацию, как это появляется на рисунке средства просмотра.

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

При использовании интерфейса Simulink 3D Animation MATLAB вы задаете тон время, как желаемый. Это обычно - с точки зрения симулированного явления равноотстоящие времена. Это - наиболее важное различие от записи анимаций для виртуальных миров, которые сопоставлены с моделями Simulink, где время сцены соответствует непосредственно времени Simulink.

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

Это - постепенный пример. Показанный следующие функции:

  • Запись 2D оффлайновых анимаций с помощью интерфейса MATLAB

  • Применение цветовой палитры, чтобы визуализировать распределенные параметры через форму объекта

  • Анимация сцены

  • Проигрывание созданного 2D файла анимации с помощью системы проигрыватель AVI

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

Вращение мембраны с примером графического интерфейса MATLAB (vrmemb)

vrmemb пример показывает, как использовать 3-D графический объект, сгенерированный средой MATLAB с продуктом Simulink 3D Animation. Мембрана была сгенерирована logo функционируйте и сохраненный в формате VRML с помощью стандартного vrml функция. Можно сохранить все объекты Handle Graphics® этот путь и использовать их с программным обеспечением Simulink 3D Animation как компоненты связанных виртуальных миров.

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

В виртуальной сцене заметьте текстовый объект. Это - дочерний элемент Billboard узел. Можно сконфигурировать этот узел так, чтобы его локальная ось z перешла к вопросу к средству просмотра в любом случае. Это может быть полезно для моделирования виртуальных панелей управления и возглавить отображения (КОЖУРА).

Пример визуализации ландшафта (vrterrain_simple)

Этот пример иллюстрирует преобразующие доступные Цифровые Модели Вертикального изменения в формат VRML для использования в сценах виртуальной реальности.

Как источник данных о ландшафте, использовалась модель South San Francisco DEM (включенный в программное обеспечение Mapping Toolbox™). Простая модель Boeing® 747® включена в сцену, чтобы показать метод создания виртуальных миров из нескольких источников на лету.

Этот пример требует программного обеспечения Mapping Toolbox от MathWorks®.

Плоская манипуляция Используя мышь пробела объект MATLAB

Этот пример иллюстрирует, как использовать мышь пробела с помощью интерфейса MATLAB. После того, как вы запустите этот пример, виртуальный мир с самолетом отображен в Средстве просмотра Simulink 3D Animation. Можно переместиться по плоскости в сцене с помощью устройства ввода данных мыши пробела. Нажмите кнопку 1, чтобы поместить маркер в текущем плоском положении.

Этот пример требует мыши пробела или совместимого устройства.

Похожие темы