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

Примеры интерфейса 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 образовательная масштабная модель / масштабная модель представления. Моделью объекта управления управляет ПИД-регулятор с форвардом канала, чтобы справиться с нелинейностью системы магнитной левитации. Чтобы более легко наблюдать и контролировать мяч, установите средство просмотра виртуального мира на Камеру 3 точки зрения.

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

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

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

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

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

Модель магнитной левитации для примера 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 Sink можно управлять моделью 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 и Исходные блоки VR, сопоставленные с той же виртуальной сценой. Источник VR читает датчик сигнал isActive и текущее положение робота. Блок VR Sink устанавливает положение робота, вращение и цвет.

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритм управления робота реализован с помощью графика 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)

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

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

Этот пример использует данные о распределении тепла из примера vrheat, чтобы создать файл анимации. Можно позже распределить этот файл анимации, который будет независимо просматриваться другими. Для этого вида визуализации, где статическая геометрия, представленная узлом IndexedFaceSet, окрашена на основе симуляции некоторого физического явления, это подходит, чтобы создать 2D файлы анимации .avi. Программное обеспечение использует объект MATLAB VideoWriter записать 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, чтобы поместить маркер в текущем плоском положении.

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

Похожие темы