Розробка програмних засобів для відтворення віртуальної реальності
Проведення аналізу методів фільтрації даних отриманих з інерційного вимірювального пристрою та методів подолання дрейфу нуля гіроскопа. Розробка програми стереоскопічного рендеру для мобільного телефону та безпровідного інерційного маніпулятору.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 13.11.2017 |
Размер файла | 26,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Розробка програмних засобів для відтворення віртуальної реальності
Довгалець С.М.,
Карпюк Ю.В.
Анотація
В роботі проведено аналіз методів фільтрації даних отриманих з інерційного вимірювального пристрою, методи подолання дрейфу нуля гіроскопа, розроблено програму стереоскопічного рендеру для мобільного телефону та безпровідний інерційний маніпулятор. Що дозволяє користувачам поглибитись у світ віртуальної реальності за не велику суму. Вибрані методи фільтрування даних дозволяють збирати в автоматичному режимі збирати, фільтрувати, та згладжувати дані практично будь-якого виду. програма рендер стереоскопічний
Ключові слова: віртуальна реальність, алгоритми фільтрації шуму, інерційний маніпулятор, стереоскопічний рендер, 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.
А от Google Cardboard може працювати майже на всіх Android смартфонах, але використання обмежується використанням тільки на операційній системі Android.
Розроблюваний набір із засобів розробки та утиліт може бути сумісний з усіма мобільними телефонами на операційній системі 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: O'Reilly 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 Google's 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. Google's 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/
21. Мобильная виртуальная реальность. [Електронний ресурс] / Судницкий В.А. // - Режим доступу: https://vrgeek.ru/2016/05/23/1395_mobilnaya-virtualnaya-realnost/
Размещено на Allbest.ru
Подобные документы
Проектування програми з метою автоматизації обліку продажу квитків на автостанції та отримання потрібної інформації. Розробка структур та вибір методів обробки даних. Алгоритми функціонування програмних модулів, забезпечення якісних показників їх роботи.
курсовая работа [1,2 M], добавлен 07.01.2012Оцифровування карти за допомогою програмного продукту ArcGis. Порівняння методів інтерполяції за допомогою програмних продуктів Surfer та ArcGis. Згладжування отриманих сіткових даних за допомогою сплайнів і фільтрації. Застосування сіткових чисел.
курсовая работа [2,1 M], добавлен 31.01.2014Загальна характеристика методів проектування та документації додатків. Розробка інтерфейсу програми для медичного діагностичного центру. Вибір архітектури. Описання логічної структури програми. Розробка структури бази даних проекту, полів таблиць.
курсовая работа [2,0 M], добавлен 21.08.2015Зміст методу низпадаючої розробки програми. Документація по супроводженню програмних засобів. Основні класи інструментальних середовищ розробки і супроводження програмних засобів. Приклад програми для автоматичного розрахунку значень складної функції.
контрольная работа [28,7 K], добавлен 19.09.2009Редагування за допомогою текстового редактора NotePad вхідного файлу даних. Програмна реалізація основного алгоритму з використанням засобів об'єктно-орієнтованого програмування. Об’ява та опис класів і об'єктів. Розробка допоміжних програмних засобів.
курсовая работа [69,4 K], добавлен 14.03.2013Опис предметної області по темі "Перевантаження методів". Методика розробки тестових завдань. Проектування та розробка програми. Опис елементів управління, які використовуються в проекті. Опис текстів процедур та опрацювання подій. Отримані результати.
курсовая работа [620,9 K], добавлен 06.08.2013Соціальні медіа, їх функціональні особливості та напрямки вивчення. Вибір мови програмування та загальна структура програми, вимоги до неї, аналіз і зберігання отриманих даних. Розробка моделі поведінки у соціальних медіа, оцінка кількості користувачів.
дипломная работа [2,0 M], добавлен 18.04.2015Аналіз методів і засобів вирішення задачі автоматизації робочого місця працівника бібліотеки. Розробка логічної моделі бази даних "Бібліотека", інтерфейсу програми. Створення візуального додатку, що дозволяє переглядати, додавати інформацію в базу даних.
курсовая работа [2,8 M], добавлен 06.02.2013Обстеження і аналіз фільмотеки. Постановка задачі. Розроблення проекту бази даних фільмотеки. Розробка концептуальної моделі, специфікації програмних модулів, алгоритмів і графічних інтерфейсів програми. Кодування і тестування.
курсовая работа [2,9 M], добавлен 12.07.2007Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.
курсовая работа [1,1 M], добавлен 22.09.2015