MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Virtual Reality

С.Г.Соловьев. Vitrual Reality Toolbox - обзор

  В оглавление

Vitrual Reality Toolbox

VR Toolbox это пакет, решающий задачи взаимодействия и управления виртуальными моделями динамических систем во времени. Он является расширением возможностей MATLAB и SIMULINK в мир графики виртуальной реальности.

Большинство материалов взято из стандартной документации www.mathworks.com что является довольно ествественным, так что для более полного ознакомления с данным вопросом рекомендую и Вам обратиться к ней, так как некотороые аспекты связанные с VR Toolbox не нашли своего отражения в этой статье, по одной простой причине - в одной статье это не описать.

VR Toolbox. Основные понятия

Обратимся к основным понятиям, связанным с рассматриваемой технологией.

  • Виртуальный мир (Virtual World) - трехмерная сцена созданная с помощью VRML (Virtual Reality Modeling Language) технологии.
  • Динамическая система(Dynamic sustem) - система созданная с помощью MATLAB или SIMULINK, описывающая систему объектов созданных с помощью VRML.
  • Анимация(Animation) - изменяющаяся под воздействием сигналов из SIMULINK трехмерная сцена.
  • Манипуляция(Manipulation) - изменение позиций или свойств объектов виртуального мира в процессе моделирования
  • VRML браузер(viewer) - используется для просмотра миртуальных миров. Можно использовать встроенный в VR Toolbox браузер, или установить плагин к вашему Web-браузеру.
  • VRML редактор - редактор для написания VRML кода. Есть специализированные редакторы и конструкторы, например VRMLPad или V-Realm Builder. Если вы уверены в своих силах, то подойдет даже обычный текстовый редактор.

Возможности VR Toolbox

Virtual Reality Toolbox предоставляет много возможностей для создания и просмотра моделей динамических систем в виртуальной реальности, а также возможность взаимодействия с этими моделями в реальном времени. Опишем эти возможности:

Поддержка VRML

VRML это открытый стандарт разработанный ISO(International Organization for Standartization). Язык VRML является обычным текстом, использующим WWW-ориентированный формат. С помощью VRML вы создаете виртуальный мир, который можно просмотреть с помощью VRML-браузера(см. ниже) и затем связываете VRML-модель с моделью SIMULINK.

Последней на текущий момент спецификацией VRML является VRML97, стандарт ISO/IEC 14772-1:1997. Спецификафия доступна по адресу www.web3d.org. Спецификация содержит описание создания 3D-сцен, звуков, локальной и удаленной работы с VRML.

VR Toolbox анализирует структуру виртуального мира, определяет какие для него доступны типы сигналов и делает возможным посылку этих сигналов из MATLAB и SIMULINK. Встроенный в VR Toolbox VRML-браузер поддерживает большинство узлов описанных в стандарте VRML97 (понятие узла будет определено ниже или читайте спецификацию), позволяя осуществлять полный контроль созданным виртуальным миром. В любом случае существует множество plug-in'ов к Web- браузерам, которые поддерживают все возможные узлы.

Благодаря VR Toolbox все изменения сделанные в виртуальном мире отражаются и в MATLAB или SIMULINK. Например, если изменить расположение камеры в виртуальном мире, то и изменится соответствующее свойство объекта vrworld в MATLAB или SIMULINK. Также VR Toolbox содержит функции позволяющие читать и изменять свойства объектов виртуального мира.

Поддержка интерфейса MATLAB

VR Toolbox поддерживает гибкий MATLAB интерфейс для работы с виртуальным миром. После создания объектов в MATLAB и ассоциирования их с виртуальным миром, можно осуществлять управление этим виртуальным миром посредством предоставленных для этого функций и методов. Из MATLAB можно изметять позиции и свойства VRML объектов, связать те или иные действия с графическим интерфейсом пользователя (GUIs) посредством так называемых callback функций. Можно также просматривать мир посредством VRML-браузера и устанавливать значения для всех доступных узлов и их полей.

VR Toolbox также предоставляет функции для чтения и изменения свойств виртуального мира и сохранения VRML файлов с текущей конфигурацией виртуального мира.

Т.е. MATLAB предоставляет средства для для управления и манипуляции виртуальными объектами посредством использования объектов самого MATLAB.

Поддержка интерфейса SIMULINK

Построив модель динамической системы в SIMULINK с помощью VR Toolbox можно наблюдать имитацию ее поверения в реальном времени в 3D реальности.

VR Toolbox содержит блоки которые позволяют непосредственно соединить и передавать сигналы от SIMULINK к построенному виртуальному миру. Такой подход позволяет воспроизвести динамическую модель как трехмерную анимацию.

С помощью блоков SIMULINK можно использовать многие возможности предоставляемые VR Toolbox. Достаточно поместить блок на SIMULINK диаграмму и выбрать виртуальный мир которому будут посылаться сигналы. VR Toolbox автоматически проверяет виртуальный мир на доступные VRML узлы, которые SIMULINK сможет использовать.

Все доступные VRML узлы будут представлены в иерархическом порядке, иными словами в виде иерархического дерева(узлы могут быть и вложенными). Также можно указать степень свободы для управления из SIMULINK. После закрытия диалогового окна Block Parameters SIMULINK изменит праметры блока вместе со входами и выходами в соответствии с выделенными узлами виртуального мира. После того как такие входы преобразуются в соответствующие SIMULINK сигналы можно будет наблюдать полученную сцену в VRML-браузере.

Т.е. SIMULINK дает средства для управления и манипуляции объектами виртуальной реальности с использованием блоков предоставляемых VR Toolbox.

VRML-браузеры

Как уже было сказано VR Toolbox содержит встроенный браузер(браузер по умолчанию) для просмотра виртуальных миров. Этот браузер поддерживается на PC,UNIX, MAC OS X, и Linux платформах. Если вы работаете на PC платформе, то можете установить VRML plug-in к вашему WEB-браузеру и пользоваться им. Для PC платформ VR Toolbox включает plug-in blaxxun Contact. Это единственный поодерживаемый VRML plug-in.

Если вы установили VRML plug-in, то для отображения процесса моделирования VR Toolbox устанавливает связь MATLAB и SIMULINK с активным VRML-браузером используя протокол TCP/IP. Такой подход позволяет просматривать процесс моделирования не только с локального узла, где были запущены MATLAB и SIMLINK, но и с любого удаленного узла через интернет-соединение.

VRML-редакторы

VRML-редакторы - это редакторы, использующиеся для создания 3D сцен с помощью языка VRML.

  • PC платформы - V-Realm Builder v2.0, поставляемый вместе в VR Toolbox. Если не хотите его использовать, то пользуйтесь своим любимым VRML-редактором(Я, например, предпочитаю VRMLPad) Установить редактор можно командой vrinstall. Как пользоваться V-Realm Builder'ом я расскажу в следующих статьях.
  • UNIX/LINUX платформы - редактор по умолчанию для них это редактор MATLAB. Здесь опять та же ситуация. Если не нравится измените свойство Editor на свой любимый текстовый редактор.

Поддержка SimMechanics

VR Toolbox также можно использовать для исследования поведения модели созданной с помощью SimMechanics. Сначала создаете модель механизма в SIMULINK используя блоки SimMechanics. Затем создаете детальную ее картину в виртуальном мире. Затем подключаете созданный мир к выходному элементу SimMechanics и смотрите как ведет себя соответствующая часть(или части) созданной системы в VRML-браузере.

Поддержка клиент-серверной архитектуры

Как уже было сказано VR Toolbox подключает MATLAB и SIMULINK к активному VRML-браузеру используя протокол TCP/IP. Сам Toolbox может быть использован в 2-х конфигурациях:

  • Один компьютер - SIMULINK, MATLAB и изображение сцены в виртуальном мире запущены на одном компьютере.
  • Сетевой компьютер - анимационная картинка с виртуальным миром просматривается, будучи запущенной на удаленном от компьютера на котором запущен VR Toolbox сервер узле. К этому одному серверу могут подключаться много клиентов. Изменять необходимые вам параметры вы можете и по сети.

Кратко о VRML

История VRML

С тех пор, как люди стали публиковать свои документы в World Wide Web(WWW), они все время пытались усилить эффект показом современных трехмерных сцен(лучше ведь один раз увидеть), а также иметь возможность взаимодействовать с этой сценой(а еще лучше, если и пощупать).

Сам же термин Virtual Reality Modeling Language(VRML) был озвучен Тимом Бернерсом Ли на Европейской Web конференции в 1994 году, где он заговорил о необходимости создания 3D Web стандарта. Вскоре после этого появилась активная группа инженеров и художников, которые приступили к работе над проектом www-vrml.Но потом они изменили название стандарта на Virtual Reality Modeling Language, чтобы подчеркнуть особую роль в нем графики. Результатом их усилий явилась спецификация VRML 1. В основу этой спецификации лег файловый формат изобретенный компанией Silicon Graphics(а точнее его часть).

Стандарт VRML 1 был реализован в некоторых VRML-браузерах, но позволял создавать только статичные виртуальные миры. Это ограничение существенно мешало их широкому использованию. Довольно быстро стало очевидно, что язык нуждается в серьезной доработке, в добавлении возможностей анимации и интерактивности, в придаче виртуальному миру жизни. Так был создан стандарт VRML 2 и в 1997 году он был принят как интернациональный стандарт ISO/IEC 14772-1:1997. С тех пор он известен как VRML97.

VRML97 предлагает открытую и гибкую основу для создания интерактивных трехмерных сцен (виртуальных миров). Компьютеры постоянно наращивают свои вычислительные мощности и возможности работы с графикой, а линии связи становятся все быстрее, в свою очередь трехмерная графика уже стала невероятно популярной в компьютерных играх и современных видах искусства. Сейчас уже существует огромное колличество доступных VRML97-браузеров под различные платформы. Кроме того, наростает число авторских VRML-инструментов, коих уже богатый выбор. В добавок, много традиционных графических пакетов(CAD, visual art, и т.д.) предлагают возможномть экспорта/импорта моделей в формат VRML97.

Стандарт VRML97 продолжает развиваться консорциумом Web 3D. Новейший стандарт X3D(eXtensible 3D) явился наследником VRML97. X3D эластичный стандарт, который совместим и с текущим языком VRML и его браузерами. Для более детальной информации смотрите www.web3d.org

Координатная система VRML

В VRML используется правосторонняя Декартова координатная система. Для простоты рассмотрим большой, указательный и средний пальцы на правой руке человека. Пусть этот человек вы. Поставьте локоть правой руки на стол и зафиксируйте указанные пальцы перпендикулярно друг другу, держа ладонь и кисть на одной прямой. Большой палец - это ось x, указательный - ось y, средний - ось z.

Система координат VRML отличается от того, какая она в MATLAB. Эта разница легко видна из рисунка. Факт различия систем координат очень важно осознавать в ситуациях, когда приходится делать преобразования из одной из этих систем в другую. SimMechanics например использует координатную систему принятую в VRML.

Преобразования поворота - в VRML поворот происходит по правилу правого винта(как на рисунке).

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

Все длины и дистанции измеряются в метрах, а все углы в радианах.

Формат VRML-файла

Для использования различных авторских инструментов по созданию виртуальных миров вовсе не требуются знания формата VRML файлов. Однако умение создавать простейшие 3D-сцены является весьма полезным. Эти знания помогут создавать виртуальные миры более эфективно и дадут понимание того как происходит управление виртуальным миром из VR Toolobox.

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

В VRML 3D сцена описываетя иерархической структурой(точнее деревом) объектов(узлов). Каждый узел в дереве определяет часть функциональности сцены. Всего существуют 54 различных типа узлов. Некоторые из них представдяют собой геометрические узлы(реальные 3D объекты). А некоторые представляют собой группирующие узлы и предназначены единственно для создания иерархии. Вот некоторые из них:

  • Узел(node) Box
  • Узел Transform - определяет позицию, масштаб, ориентацию, поворот, перенос всех дочерних элементов включенных в этот узел(группирующий узел).
  • Узел Material(материал) - отвечает за материал на сцене
  • Узел DirectionalLight(направленный источник света) - отвечает за освещение сцены.
  • Узел Fog(туман) - позволяет изменять оптические свойства окружения
  • Узел ProximitySensor - придает интерактивность VRML97. Этот узел генерирует события активности пользователя(Enter,Exit,Moves)

Каждый перечисленный узел содержит поля, значения которых определяют функциональность каждого из них.

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

Каждому узлу можно присвоить уникальное имя, для чего используется ключевое слово DEF. Например, DEF MyNodeName Box задает имя MyNodeName для узла Box. Доступ к полям улов возможет только по их именам.

Приведу пример описанный в документации к VR Toolbox. На 3D сцене имеются два графических объекта: Сцена изображает некий, если хотите - пол, узлом Box и красный шарик над ним. Напишите в своем VRML-редакторе (или же в любом текстовом) следующий код.

Итак что же представляет из себя этот код? Первая строчка - заголовок, яволяется обязательной и показывает какую версию языка VRML вы используете(тут v2.0) и в какой кодировке написан текст(тут utf8). Вообще говоря, кодировка utf8 описана в стандарте как обязательная и поддерживается любым VRML-браузером. Значок (#) используется для обозначения комментария везде, за исключением первой строки - заголовка. Напрмер, как видно и написано - вторая строчка это уже обычный комментарий и при интерпритации все написанное после символа (#) игнорируется.

Узел WorldInfo содержит информацию о созданном мире. В данном случае описан только один параметр заголовок(title). Он используется VRML браузерами для того чтобы различать различные виртуальные миры. Узел ViewPoint является описанием месторасположения камеры. В данном случае в поле позиция(position) определена точка на 3D сцене в которой будет расположена камера.

Значения полей узла Box как видно, в большинстве своем оставлены по умолчанию. Например, дистанция от центра координатной системы, материал, цвет и так далее. Узлу лишь присвоено имя - Floor и присвоены размеры(длина, ширина, высота). Для того чтобы иметь возможность изменять позицию и остальные свойства нашего шарика он определен как дочерний узео узла Transform. Здесь стандартной сфере(значения всех полей по умолчанию) присвоена позиция - 10 метров от пола и цвет материала задан как красный.

При отображении в VRML-браузере сцена будет выглядеть примерно так:

  В оглавление книги \ К следующему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика