УДК 004.5, 004.35

АРХИТЕКТУРА УНИВЕРСАЛЬНОЙ ИНТЕРАКТИВНОЙ СИСТЕМЫ НА БАЗЕ СОВРЕМЕННЫХ УСТРОЙСТВ ВЗАИМОДЕЙСТВИЯ С ПОЛЬЗОВАТЕЛЕМ

Баранов Антон Александрович
Пермский национальный исследовательский политехнический университет

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

Ключевые слова: архитектура универсальной интерактивной системы, современные устройства взаимодействия с пользователем


THE ARCHITECTURE OF UNIVERSAL INTERACTIVE SYSTEM BASED ON MODERN DEVICES INTERACT WITH USERS

Baranov Anton Alexandrovich
Perm National Research Polytechnic University

Abstract
In this paper, based on the proposed criteria, were chosen modern devices interact with users. The architecture of universal interactive system was developed based on these devices. The architecture was considered in terms of hardware and software aspects. Finally, conclusions were drawn regarding the scope and prospects of development of this system.

Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Баранов А.А. Архитектура универсальной интерактивной системы на базе современных устройств взаимодействия с пользователем // Современные научные исследования и инновации. 2015. № 4. Ч. 1 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2015/04/50554 (дата обращения: 04.06.2017).

Введение

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

Одним из направлений дальнейшего развития работы с данными устройствами является создание систем с использованием нескольких из них для комбинирования функций и получения дополнительных возможностей. На данный момент уже существует множество примеров таких систем [1-3], но при их разработке возникает проблема соответствия того или иного устройства требованиям системы, способно ли устройство обеспечить необходимую точность, скорость, обработку и т.д.

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

Универсальная интерактивная система не может поддерживать все существующие устройства, поэтому необходимо определить критерии и в соответствии с ними выбрать ряд устройств. Цель статьи – определить критерии выбора устройств, проанализировать и выбрать устройства, предложить архитектуру системы.

Обоснование выбора устройств

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

Для выбора поддерживаемых устройств каждой группы были определены следующие четыре критерия:

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

2)      Поддержка операционных систем Windows 7,8 и Mac OS. Данные операционные системы являются самыми распространенными на сегодняшний день среди пользователей ПК и ноутбуков [4]

3)      Открытость устройства для разработчиков, наличие SDK и полноценной документации. Данный критерий связан с первым и является его следствием.

4)      Устройство не является самодостаточным или автономным, т.е. для его работы необходим ПК или его можно использовать совместно с другими устройствами. Применение других устройств – это нестандартное использование их функционала, что ограничивает и усложняет реализацию системы.

В таблице 1 по группам перечислены устройства [5] и их соответствие критериям. Некоторые устройства на данный момент находятся в процессе доработки и, например, не ясно, будут ли они поддерживать все выбранные операционные системы или предоставлять открытый пакет SDK для разработчиков (соответствие критериям таких устройств обозначено знаком вопроса). Для получения SDK некоторых устройств требуется заполнение специальной формы, обязательная покупка устройства или какая-либо специальная регистрация, такие устройства имеют дополнительное обозначение (р).

Таблица 1 – Соответствие устройств критериям

Устройство

Критерии

1

2

3

4

Бесконтактные контроллеры взаимодействия с компьютером

1

Kinect

+

+

+

+

2

The Leap

+

+

+

+

3

The Xtion

-

-

+ (p)

+

Различные контроллеры взаимодействия с компьютером

4

Razer Hydra

+

+

+

+

5

Virtuix Omni

+

?

+ (p)

+

6

PS Move

-

-

+

+

7

Wii Remote

-

-

+

+

8

IMotion

+

+

+ (p)

+

9

The 3DRudder

+

+

?

+

Перчатки виртуальной реальности

10

Peregrine

+

+

+

+

11

5DT Data glove

+

+

+ (p)

+

12

DG5 glove

-

+

+ (p)

+

13

CyberGlove

-

-

+ (p)

+

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

14

Control VR

+

?

?

+

15

Oculus Rift

+

+

+

+

16

Google glass

+

-

+ (р)

-

17

Recon Jet

+

+

+

-

18

VrAse

+

+

+

-

19

HoloLens

+

-

?

-

Таким образом для разработки универсальной интерактивной системы были выбраны следующие устройства: Kinect, The Leap, Razer Hydra, Peregrine, Oculus Rift. Также разрабатываемая система поддерживает работу с джойстиком и монитором, которые по умолчанию удовлетворяют перечисленным критериям.

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

Технический аспект архитектуры

Технический (аппаратный) аспект – является анализом структуры системы, состава ее технических (аппаратных) средств и их взаимодействия между собой. Общая схема взаимодействия устройств в рамках системы представлена на рисунке 1 (без сохранения пропорций устройств относительно друг друга). Кроме того, на схеме показано место пользователя в системе и с какими устройствами он взаимодействует.

Рисунок 1 – Визуальная схема взаимодействия устройств и пользователя (технический аспект архитектуры системы)

Для взаимодействия с компьютером все устройства используют стандартные интерфейсы передачи данных (USB) и видеоизображения (DVI/HDMI), реализуя между устройствами несколько потоков данных, которые цифрами обозначены на рисунке:

1)      В зависимости от используемого бесконтактного контроллера, возможно получение следующих видов данных:

  1. Данные с цветной и инфракрасной камеры, сенсора глубины, а также аудиопоток с массива из четырех микрофонов Kinect [6]:

KinectSensor _sensor;

MultiSourceFrameReader _reader;

_reader = _sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth | FrameSourceTypes.Infrared);

_reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived; //данное событие срабатывает, когда доступен определенный тип данных

  1. Данные камеры The Leap в виде кадров, с которыми далее пользователь начинает работать [7]:

_controller = Leap.Controller();

_frame = _controller.frame(); //последний кадр

//далее кадры могут быть по-разному обработаны, например

hands = _frame.hands;

fingers = _frame.fingers;

2)      Данные от джойстиков и различных контроллеров взаимодействия

  1. Данные о нажатии кнопок и использование стиков управления, а также передача сигнала для джойстика о включении вибрации.
  2. Данные с контроллера Razer Hydra: правый или левый контроллер, нажатие кнопок и стиков, позиция и угол каждого контроллера.
  3. Данные с перчаток Peregrine – при помощи специального программного обеспечения, все действия, выполненные с помощью перчаток, ассоциируются нажатию определенных клавиш на клавиатуре/мыши или их сочетанию.

3)      Данные от устройств визуализации

  1. Данные о положении головы, получаемые от Oculus Rift.

4)      Взаимодействие пользователя с бесконтактными контроллерами:

  1. Kinect – отслеживание движений всех частей тела;
  2. The Leap – отслеживание движения рук и пальцев.

5)      Взаимодействие пользователя с джойстиками и различными контроллерами взаимодействия.

6)      Взаимодействие пользователя с устройствами отображения информации.

Программный аспект архитектуры

Программный аспект – является анализом системы с точки зрения составных программных модулей и подсистем, а также их взаимодействия между собой на программном уровне. Общая схема взаимодействия программных модулей между собой и с устройствами в рамках системы представлена на рисунке 2.

Рисунок 2 – Визуальная схема взаимодействия программных модулей (программный аспект архитектуры системы)

Таким образом, с точки зрения программной реализации можно выделить следующие модули, разделенные на четыре группы:

1)      Модули получения, обработки и стандартизации данных:

  1. Модуль получения, обработки и стандартизации данных Kinect – решает задачу получения и обработки данных устройства с использованием необходимых API. Данный модуль включает в себя несколько стадий: непосредственно получение данных, в том формате, который позволяют сделать API; предварительная обработка данных, исключение ошибочных значений; стандартизация данных, приведение их к формату, заданного в системе.
  2. Модуль получения, обработки и стандартизации данных The Leap – аналогично модулю Kinect.
  3. Модуль получения, обработки и стандартизации данных джойстика – аналогично модулю Kinect, но также возможно обратное преобразование, данных из системы в данные, которые способно использовать устройство.
  4. Модуль получения, обработки и стандартизации данных Razer Hydra – аналогично модулю Kinect.
  5. Модуль получения, обработки и стандартизации данных Peregrine – аналогично модулю Kinect.
  6. Модуль получения, обработки и стандартизации данных Oculus Rift – аналогично модулю Kinect.

2)      Модули симуляции данных:

  1. Модуль симуляции данных Kinect – решает задачу генерирования данных, аналогичных поведению пользователя. Модуль предоставляет данные сразу в стандартизованном формате, используемой системой.
  2. Модуль симуляции данных The Leap – аналогично модулю Kinect.
  3. Модуль симуляции данных джойстика – аналогично модулю Kinect.
  4. Модуль симуляции данных Razer Hydra – аналогично модулю Kinect.
  5. Модуль симуляции данных Peregrine – аналогично модулю Kinect.
  6. Модуль симуляции данных Oculus Rift – аналогично модулю Kinect.

3)      Модуль сопоставления и совместной обработки данных – решает задачу сопоставления данных, полученных от модулей получения, обработки и стандартизации входных данных, а также от модулей симуляции данных. На выходе данного модуля мы получаем массив объектов информации (в данном контексте «объект» в терминах объектно-ориентированного программирования), который содержит в себе информацию со всех устройств в один момент времени.

4)      Модуль визуализации данных – решает задачу визуализации данных на дисплей монитора, а также на дисплей шлема виртуальной реальности.

Заключение

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

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


Библиографический список
  1. Nicole Lee, NASA JPL controls rover with Leap Motion, shows faith in consumer hardware // Международный информационный ресурс. URL: http://www.engadget.com/2013/03/30/nasa-athlete-rover-leap-motion/ (дата обращения 20.01.2015)
  2. Katie Drummond, Virtual Rx: how Oculus Rift could revolutionize mental health // Международный информационный ресурс. URL: http://www.theverge.com/2013/4/22/4251926/oculus-rift-virtual-reality-therapy-mental-health (дата обращения 25.01.2015)
  3. Mengyuan Li, IEEE Student Member, Paola Savvidou, Bradley Willis and Marjorie Skubic, IEEE Senior Member, Using the Kinect to Detect Potentially Harmful Hand Postures in Pianists // Conf Proc IEEE Eng Med Biol Soc. – 2014
  4. StatCounter Global Stats // Международный ресурс статистики. URL: http://gs.statcounter.com/#desktop+tablet-os-ww-monthly-201401-201501 (дата обращения 10.02.2015)
  5. Баранов А.А. Современные методы и устройства взаимодействия пользователя с информационными системами // APRIORI. Серия: Естественные и технические науки. – 2014. – №6.
  6. Vangos Pterneas, Kinect for Windows version 2: Color, depth and infrared streams // Международный ресурс программистов. URL: http://www.codeproject.com/Articles/730842/Kinect-for-Windows-version-Color-depth-and-infra (дата обращения 05.02.2015)
  7. Официальная документация устройства // Официальный сайт Leap Motion. URL: https://developer.leapmotion.com/documentation/python/devguide/Leap_Frames.html (дата обращения 07.02.2015)


Все статьи автора «Баранов Антон Александрович»


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

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

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

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: