Розробка програмних засобів для відтворення віртуальної реальності

  • Вид работы:
    Статья
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    13,06 Кб
  • Опубликовано:
    2017-11-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка програмних засобів для відтворення віртуальної реальності















Розробка програмних засобів для відтворення віртуальної реальності



Довгалець С.М.,

Карпюк Ю.В.

Анотація

В роботі проведено аналіз методів фільтрації даних отриманих з інерційного вимірювального пристрою, методи подолання дрейфу нуля гіроскопа, розроблено програму стереоскопічного рендеру для мобільного телефону та безпровідний інерційний маніпулятор. Що дозволяє користувачам поглибитись у світ віртуальної реальності за не велику суму. Вибрані методи фільтрування даних дозволяють збирати в автоматичному режимі збирати, фільтрувати, та згладжувати дані практично будь-якого виду. програма рендер стереоскопічний

Ключові слова: віртуальна реальність, алгоритми фільтрації шуму, інерційний маніпулятор, стереоскопічний рендер, Unity 3d.

Постановка проблеми. В даний момент технології віртуальної реальності (ВР) широко застосовуються в різних областях людської діяльності: проектування і дизайні, видобутку корисних копалин, військових технологіях, будівництві, тренажерах і симуляторах, маркетингу і рекламі, індустрії розваг і т.д. Обсяг ринку технологій віртуальної реальності оцінюється в 15 млрд доларів на рік [1].

На початку 1990-х років віртуальна реальність ще тільки знаходилася на стадії розвитку, і обмежувалася лише декількома "квадратними" шаховими фігурками на шахівниці. Але з розвитком індустрії розваги віртуальна реальність стала нарощувати свої темпи розвитку. Її стали використовувати в кінотеатрах і для створення відеоігор. Пізніше за допомогою ВР багато архітекторів почали створювати фасади будівель, ще до того як закладали сам фундамент. Замовники проекту могли вільно подорожувати по віртуальній будівлі, ставити питання архітекторові і вносити свої зміни в його дизайн. Віртуальна реальність давала значно більше можливостей замовникам при виборі дизайну будівлі, ніж мініатюрний макет з дахом що знімається.

Будівельники, архітектори, медики, інженери і багато інших професій, де працюють з якими- небудь матеріальними обєктами, вимагають від студентів відмінної кваліфікації. Для цього їм регулярно проводити практики, де вони набувають усі необхідні знання і уміння [2].

Але віртуальна реальність може вивести процес навчання на новий рівень. Створення програм, здатних продемонструвати будову людського тіла або в режимі реального часу показати, як змінюється навантаження на окремі вузли будівлі залежно від використаних технічних рішень, дозволить продемонструвати студентам вже на перших курсах практичну частину їх роботи не витрачаючи часу фахівців і не ризикуючи життями людей.

Плюсом стає і краще засвоєння матеріалу, адже куди зрозуміліше розташування і принцип роботи органів людини, коли на них можна подивитися в 3Б-форматі, доторкнутись своїми руками і покрутивши з усіх боків, а не просто оглянувши в розрізі на картинці в підручнику і запамятавши їх. При цьому у викладачів зявиться прекрасна можливість для підтримки інтересу студента за рахунок інтерактивних лекцій, наповнених корисною інформацією [3-5].

Тому програми з віртуальною реальністю використовуються для навчання солдатів, льотчиків, космонавтів і медиків. Віртуальна реальність сприяла розвитку медицини, адже в таких умовах можна було спокійно навчати нових медиків, не побоюючись за здоровя пацієнта. В деяких випадках віртуальну реальності використовували для проведення так би мовити попередньої операції, коли лікар робив операцію у віртуальному світі і дивився за своїми помилками, щоб потім усунути їх на практиці. Також розвиток ВР привів до того, що операції стали проводити за допомогою роботів. Перша операція за участю робота була зроблена в 1998 році в одній з лікарень Парижу. Єдиний недолік такої операції полягає в тому, що під час роботи пристроїв ВР можуть статися збої або затримка, які можуть коштувати пацієнтові життя.

Пілотажні тренажери є різновидом систем віртуальної реальності. Усі льотчики і космонавти перед польотом тренуються на таких тренажерах для того, щоб бути готовим до усіх труднощів, які можуть виникнути під час польоту. Льотчики і космонавти намагаються керувати своїм віртуальним літаком або шатлом за будь- яких погодних умов - під час грози, туману, вітру, метеоритного дощу і так далі. Для цього існують спеціальні програми. І хоча таке устаткування для віртуальної реальності коштує декілька десятків тисяч доларів, пілотажний тренажер все одно виходить дешевше, ніж якщо проводити навчання на справжніх літальних апаратах [3].

Сфера розваг все більше звертається до мультимедійних технологій, тим більше що у світі давно експериментують з віртуальною реальністю. Віртуальні декорації - це панорамні муль- тиекранні проекції віртуальних світів. Екрани сприймаються глядачем як вікна в інший світ. Розташовувати їх можна по-різному. Все залежить від можливостей майданчика, бажань і можливостей замовника. Віртуальні декорації можуть не лише замінювати собою інтерєр, але і доповнювати його. Можна використати їх для створення повністю ілюзорного 3Б-пространства, аж до покриття проекціями підлоги.

Але самі шоломи віртуальної реальності та маніпулятори для них які використовуються в сфері розваг досить не дешеві.

Аналіз останніх досліджень і публікацій. Daydream - платформа віртуальної реальності (VR), розроблена компанією Google [5]. Вона була анонсована на виставці Google I/O 2016, та представлена 10 листопада 2016 [6].

На відміну від першої платформи VR від Google, Google Cardboard, Daydream буде вбудована в ОС Android починаючи з моменту випуску Android 7.1 Nougat. Платформа включає в себе специфікації як програмного, так і апаратного забезпечення, призначених для сумісних з нею телефонів "Daydream-Ready". Google також анонсувала режим VR в Android Nougat для обробки високопродуктивних обчислень додатків віртуальної реальності. Це буде перша VR платформа, виконана в матеріальному дизайні. Google планує оновити деякі зі своїх встановлених Android- додатків до VR-версій. Вартість VR-гарнітури Google Daydream View становить $79, що дешевше ніж більшість її конкурентів на ринку.

У комплекті з Daydream-гарнітурами поставляється бездротовий контролер. Цей контролер може бути використаний для взаємодії з віртуальним світом за допомогою натискання кнопок або руху пристрою в просторі. Пульт дистанційного керування використовується для навігації в меню, ігор і навіть віртуальних прогулянок в Google Street View. Встановлені датчики використовуються для визначення орієнтації контролера і примірного положення руки користувача. Контролер забезпечує користувача шістьма ступенями свободи в просторі. Для власника Google Daydream View контролер може зберігатися в гарнітурі, поки він не використовується [7].

Проблемою цієї платформи є те що на даний момент вона працює тільки з двома пристроями - Google Pixel, Motorola Moto Z, Samsung Galaxy S8 та S8+. Тобто з найдорощими флагманами.

Таж сама ситуація з шоломами від Samsung під назвою GearVR, такий шолом сумісний тільки з деякими телефонами самої фірми Samsung.

Розроблюваний набір із засобів розробки та утиліт може бути сумісний з усіма мобільними телефонами на операційній системі Android, та iOS. Але є певні технічні обмеження продуктивності.

Виділення невирішених раніше частин загальної проблеми. Шоломи віртуальної реальності та маніпулятори для них які використовуються в сфері розваг досить не дешеві. Тому в сфері розваг їх може собі дозволити тільки досить обмежене коло людей. Ця проблема повязана з великими вимогами до апаратної складової, відсутністю єдиного стандарту, та єдиного набора засобів розробки та утилі для усіх платформ.

Мета статті. Полягає у розробці прототипу шолома на базі смартфону та розробку безпровідного маніпулятора. Які б працювали з усіма мобільними платформами такими як Android та iOS.

Головною метою цієї роботи є:

1.Дослідити існуючі підходи до отримання стереоскопічного зображення.

2.Розглянути основні алгоритми фільтрації даних з датчиків.

3.Дослідити Unity Engine як графічний двигун для розробки додатків віртуальної реальності (ВР).

4.Розробити алгоритм трекінга положення та повороту маніпулятора.

5.Дослідити основні методи та протоколи без- провідного зєднання.

Виклад основного матеріалу. Гіроскопи дуже точно міряють кутову швидкість і після інтеграції можна отримати кути. Але у них є проблема - свідчення спливають з часом. Для корекції цього дрифта застосовується акселерометр, який завжди (ну або майже завжди в довгостроковій перспективі) знає, де земля. Але акселерометр нічого не відчує, якщо його крутити навколо осі Z, тому нам потрібний магнітометр, який завжди знає, де північ. Таке поєднання датчиків називають інерційним вимірювальним пристроєм [17].

Термін ІВП (англ. IMU або інерційно вимірювальний пристрій) широко використовується маючи на увазі пристрій, якій містить в собі три акселерометри і три гіроскопи, а також може містити додатково три магнітометри. Акселерометри розташовуються так, що їх три осі вимірювання ортогональні одна одній. Вони визначають інерційне прискорення, яке ще називають G-силами.

Три гіроскопи розташовуються таким самим чином, ортогонально один одному, і вимірюють позицію обертання відносно довільно обраної координатної системи.

Все більше і більше виробників додають також три магнітометри в ІВП модулі. Це покращує швидкодію при підрахунку динамічної орієнтації в системах визначення ставлення і напрямку, що зроблені на базі ІВП.

Модулі ІВП використовуються в установлених на літаках інерційних навігаційних системах. На сьогоднішній день майже кожен комерційний або військовий надводний засіб має такий пристрій. Більшість літаків також обладнані ІВП [19].

Основним недоліком використання ІВП в навігації є те, що він зазвичай має накопичувану похибку, включаючи похибку Еббе. Оскільки навігаційна система постійно сумує зафіксовані зміни, до попередньо розрахованої позиції, будь-які помилки вимірювань, навіть малі, акумулюються від точки до точки. Це призводить до дрейфу, або до постійного зростання різниці між координатами місця, де система думає що знаходиться, і фактичним її місцезнаходженням.

Ніби все просто - зі значення по осі Z віднімемо константу 1g, дістанемо лінійне вертикальне прискорення. Двічі проінтегруємо його (фактично підсумуємо у вимірювальному циклі) і отримаємо швидкість і відносне зміщення. Але і тут не все так добре, як хотілося б. Нахил апарату викличе зміну проекції вектору прискорення А на вісь Z. Рух датчика або зміна температури можуть викликати "зрушення" чутливості, і наша константа 1g вже не відповідатиме реальності. Але навіть у разі ідеально нерухомого датчика і точно виставленою 1g, будь-який сенсор видає шум. Адже навіть крихітна помилка впродовж десятка секунд подвійної інтеграції зростає до розміру слона, і ось ми в окулярах бачимо боком, або з нахиленим поглядом.

Найпоширеніші фільтри які використовуються в ІВП:

1)Фільтр Калмана.

2)Complimentary filter, точний аналог, це "альфа-бета фільтр".

3)Фільтр Маджвика.

Фільтр Калмана став визнаною основою для побудови більшості алгоритмів визначення орієнтації і комерційних систем орієнтації та інерційних модулів:

1)xsens.

2)Microstrain.

3)VectorNav.

4)InterSense.

5)PNI.

6)Crossbow.

Всі вони засновані на його використанні. Широке використання рішень Калмана є доказом їх точності та ефективності, однак вони мають ряд недоліків. Вони можуть бути складні в реалізації. Лінійна регресія ітерації, є основоположним для процесів Калмана, вимоги до частоти дискретизації, значно перевищують пропускну здатність обєкта. Наприклад, частота дискретизації між 512 Гц і 30 кГц може бути використана в додатках захоплення руху. Стан відносин, що описує рухому кінематику в трьох вимірах, як правило, вимагають більше векторів стану і реалізації розширеного фільтра Калмана для лінеаризації задачі. Ці проблеми вимагають великого обчислювального навантаження для реалізації рішень Калмана.

Один з новітніх методів розрахунку орієнтації в просторі за показаннями датчиків акселерометра, гіроскопа і компаса - фільтр Маджвіка, який, за словами автора, дає результат кращий, ніж застосування фільтра на основі методу Калмана в результатах і продуктивності. Автор - Себастьян Маджвік. Метод описаний в статті англійською. Дана робота захищена в Університеті м. Брістоля.

Дрейф нуля гіроскопа буде відбуватися від зміни температур, від руху і просто з часом. Будь-яка практична реалізація ІВП повинна враховувати це. Перевагою Калмано-подібних рішень є те, що вони здатні оцінити зміщення гіроскопа в якості додаткового стану в рамках моделі системи. Тим не менш Махоні та інші показали, що дрейф нуля гіроскопа також може бути скомпенсований простими фільтрами орієнтації, представляючи його як частину помилки від швидкості зміни орієнтації.

Оскільки для реалізації маніпулятора буде використовуватись MPU-6050, він має ряд переваг. MPU6050 - перший на ринку інтегрований шестиосьовий сенсор руху, трьохосьовий гіроскоп, що поєднує в мініатюрному корпусі, трьохосьовий акселерометр і сигнальний процесор DMP (Digital Motion Processor). Дані з сенсорів оцифровуються за допомогою 16-бітових АЦП. За допомогою послідовної шини І2С додатково може бути підключений трьохосьовий магнітометр, що дозволить обчислювати на основі даних з сенсорів і технології MotionFusion переміщення виробу в просторі. Вбудований буфер FIFO глибиною 1024 байт дозволяє зберігати отримані дані, розвантажуючи тим самим послідовну шину [16].

Аналіз ігрового двигуна Unity 3d для розробка ВР додатків. Unity - багатоплатформовий інструмент для розробки дво- та тривімирних додатків та ігор, що працює на операційних системах Windows і OS X. Створені за допомогою Unity застосування працюють під системами Windows, OS X, Android, Apple iOS, Linux, а також на гральних консолях Wii, PlayStation 3 і XBox 360. Також головний плюс це мова C# яка популярна та має багато бібліотек. Unity має найбільше ко- мюніті серед розробників ігрових додатків.

Графічний рушій використовує DirectX (Windows), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS), та спеціальне власне API для Wii. Також підтримуються bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), динамічні тіні з використанням shadow maps, render-to- texture та повноекранні ефекти post-processing.

Unity підтримуює файли 3ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks та Allegorithmic Substance. В ігровий проект Unity можна імпортувати об'єкти цих програм та робити налаштовування за допомогою графічного інтерфейсу.

Для написання шейдерів використовується ShaderLab, що підтримує шейдерні програми написані на GLSL або Cg. Шейдер може включати декілька варіантів реалізації, що дозволяє Unity визначати найкращий варіант для конкретної ві- деокарти. Unity також має вбудовану підтримку фізичного рушія Nvidia PhysX (колишнього Ageia), підтримку симуляції одягу в системі реального часу на довільній та прив'язаній полігональній сітці, підтримку системи ray casts та шарів зіткнення.

Також Unity дозволяє підключення сторонніх DLL скомпільованих на С++, це дає змогу оптимізувати складні алгоритми інкапсулюючи їх всередині бібліотеки [20].

Багатогігабайтні проекти з тисячами мега-байтних файлів піддаються легкому керуванню. Налаштування імпорту та інші метадані також зберігаються разом з історією їх версій. Переглядати зміни ресурсів\версій можна одразу всередині Редактора Unity. Якщо файли змінюються, їх статус негайно оновлюється. Перейменування і переміщення ресурсів не створює будь-яких перешкод для безперервного робочого процесу.

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

Вибрані методи фільтрування даних дозволяють збирати в автоматичному режимі збирати, фільтрувати, та згладжувати дані практично будь-якого виду.

Було розроблено структурну схему програми, функціонал, обґрунтований вибір модулів та їхня реалізація. Було розглянуто 3 аналоги та виявлені недоліки. Реалізовано 3 варіанти реалізації програми та технічні вимоги до неї.


1.Sky N. Virtual Reality Insider: Guidebook for the VR Industry - New York: Inside, 2014. - 140 с.

2.Parisi T. Learning Virtual Reality - Sebastopol: OReilly Media, 2015. - 21 с.

3.Benton A. Oculus Rift in Action - New York: Manning Publications, 2015. - 2 с.

4.Smith M. Unity 5.x Cookbook - Birmingham: Packt Publishing Limited, 2015. - 2 с.

5.Craig A. Developing Virtual Reality Applications - San Francisco: eLsEVIER SCIENCE & TECHNOLOGY, 2009. - 53 с.

6.Torn A. Mastering Unity Scripting - Birmingham: ELSEVIER SCIENCE & TECHNOLOGY, 2015. - 31 с.

7.Zucconi A. Unity 5.x Shaders and Effects Cookbook - Birmingham: ELSEVIER SCIENCE & TECHNOLOGY, 2016. - 55 с.

8.Daydream is Googles Android-powered VR platform. [Електронний ресурс] / Robertson, Adi // - Режим доступу: http://www.theverge.com/2016/5718/11683536/google-daydream-virtual-reality-announced-android-n-io-2016

9.Google Daydream Launch Date Confirmed. [Електронний ресурс] / Zeena Al-Obaidi // - Режим доступу: https://www.vrfocus.com/2016/05/google-daydream-launch-date-confirmed/

10.Использование инерциальной навигационной системы (ИНС) с несколькими датчиками. [Електронний ресурс] / Алексей Москаленко // - Режим доступу: https://geektimes.ru/post/255736/

11.MPU-6050. [Електронний ресурс] / InvenSense Inc. // - Режим доступу: https://www.terraelectronica.ru/ catalog_info.php?CODE=660710

12.Фильтр Калмана. [Електронний ресурс] / Худавердян Давид // - Режим доступу: https://habrahabr.ru/ post/166693

13.VR-Overview. [Електронний ресурс] / Zeena Al-Obaidi // - Режим доступу: https://unity3d.com/ru/learn/ tutorials/topics/virtual-reality/vr-overview?playlist=22946

14.Asynchronous Timewarp Examined. [Електронний ресурс] / Michael Antonov // - Режим доступу: https://developer3.oculus.com/blog/asynchronous-timewarp-examined/

15.Asynchronous Spacewarp. [Електронний ресурс] / Dean Beerl // - Режим доступу: https://developer.oculus. com/blog/asynchronous-spacewarp/

16.Фильтр Маджвика. [Електронний ресурс] / Петерсен Антон // - Режим доступу: https://habrahabr.ru/ post/255661/

17.Googles Daydream View VR headset goes on sale next month for $79. [Електронний ресурс] / Adi Robertson // - Режим доступу: http://www.theverge.com/2016/10/4/13161506/google-vr-headset-photos-daydream-view- virtual-reality

18.Як VR змінює світ: історія компютерних інтерфейсів. [Електронний ресурс] / Березов П.П. // - Режим доступу: https://designtalk.club/yak-vr-zminyuye-svit-abo-majbutnye-bez-monitoriv/

19.История развития технологий виртуальной реальности. [Електронний ресурс] / Корнинко П.А. // - Режим доступу: http://www.psychologov.net/view_post.php?id=1425

20.Виртуальная реальность: История, теория, практика. [Електронний ресурс] / Мелков Ю.П. // - Режим доступу: http://itc. ua/articles/virtualnaya-realnost-istoriya-teoriya-praktika/

Похожие работы на - Розробка програмних засобів для відтворення віртуальної реальності

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!