Тип работы:
Предмет:
Язык работы:


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

Работа №43161

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы42
Год сдачи2018
Стоимость6300 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
215
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
1. ОБЪЕДИНЕНИЕ УСТРОЙСТВ В СЕТЬ 5
1.1. Принцип работы Multipeer Connectivity 5
1.2. Подключение к проекту и первоначальная настройка 7
1.3. Объединение устройств в сеть 8
2. ПЕРЕДАЧА ДАННЫХ ОБ УСТРОЙСТВАХ 10
2.1. Расположение и ориентация объектов в SceneKit 10
2.2. Передача потоковых данных в Multipeer Connectivity 11
2.3. Визуализация расположения и ориентации устройств 14
3. СИНХРОНИЗАЦИЯ СОСТОЯНИЯ СЦЕНЫ 15
3.1. Описание структуры сцены 15
3.2. Распознавание плоскостей и способы обновления сцены 16
3.3. Передача событий 17
3.4. Получение событий и их обработка 18
3.5. Визуализация обновлений состояния сцены 19
4. СИНХРОНИЗАЦИЯ СИСТЕМ КООРДИНАТ 21
4.1. Распознавание и локализация изображений в ARKit 21
4.2. Определение взаимного расположения устройств 22
4.3. Синхронизации систем координат двух устройств 24
4.4. Синхронизация систем координат нескольких устройств 26
4.5. Полученные результаты и их оценка 27
5. РЕАЛИЗАЦИЯ ПРОГРАММНОЙ БИБЛИОТЕКИ 29
5.1. Архитектура библиотеки 29
5.2. Основные принципы работы с библиотекой 30
ЗАКЛЮЧЕНИЕ 31
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 32
ПРИЛОЖЕНИЕ

Дополненная реальность — среда с прямым или косвенным дополнением физического мира цифровыми данными в режиме реального времени при помощи компьютерных устройств.
На мобильных устройствах технологии дополненной реальности могут быть использованы например для отображения маячков или иконок на карте в реальном времени при наведении камеры на местность.
В iOS 11 компанией Apple был представлен новый фреймворк ARKit, позволяющий применять технологию дополненной реальности (AR, augmented reality) в iOS приложениях [1].
ARKit, используя информацию со встроенных датчиков устройства, таких как акселерометр, гироскоп, магнитометр, а также анализируя изображение, полученное с камеры, позволяет определять положение устройства в пространстве относительно других объектов — реальных или виртуальных. Помимо отображения виртуальных объектов данный фреймворк способен распознавать горизонтальные поверхности, (а, начиная с версии 1.5, и вертикальные) в реальном мире. Это позволяет, например, размещать виртуальные объекты на распознанных поверхностях реального мира, благодаря чему виртуальные объекты остаются зафиксированными в конкретных точках на поверхностях реального мира и выглядят более естественными. А также позволяет, например, проводить измерения расстояний или площадей на данных поверхностях.
Стандартные методы в ARKit предоставляют разработчику информацию о расположении устройства относительно начальной точки отсчета и распознанных горизонтальных и вертикальных плоскостях в реальном мире.
В текущей версии ARKit все эти данные хранятся внутри одной сессии дополненной реальности (AR сессии) на устройстве пользователя, а система координат на каждом устройстве находится в разных точках, в которых сессия была начата. Данные ограничения не позволяют делиться данными сессии с другими устройствами, а также не позволяет корректно размещать виртуальные объекты из сессий других устройств, так как системы координат расположены по-разному. Таким образом, в текущей версии ARKit не представляется возможным создавать сессии дополненной реальности с несколькими участниками для их совместного взаимодействия с одними и теми же объектами дополненной реальности. Отсутствие возможности создания сессий дополненной реальности с несколькими участниками сильно ограничивает области, в которых технологии дополненной реальности могли бы применяться на мобильных устройствах. В таких сферах как образование, медицина, проектирование, а также развлечения, дополненная реальность может быть применена гораздо эффективнее, если в процесс взаимодействия с виртуальными объектами будет вовлечено несколько пользователей [2].
Целью данной работы является реализация алгоритма передачи и синхронизации данных различных AR сессий между несколькими устройствами и обеспечение совместной работы этих устройств внутри одной сессии дополненной реальности.
Для реализации данного алгоритма используются нативные для iOS инструменты и технологии: язык программирования Swift 4.0, фреймворк ARKit 1.5 и системный фреймворк SceneKit для 3D графики, а также системный фреймворк Multipeer Connectivity для организации передачи данных между устройствами.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной работы был реализован алгоритм передачи данных и синхронизации систем координат AR-сессий различных устройств, а также обеспечение их совместной работы внутри одной сессии дополненной реальности.
Полученный алгоритм выполняет три ключевые функции:
• Передача данных о положении устройств в пространстве.
• Синхронизация состояния сцены, на которой происходит взаимодействие с дополненной реальностью.
• Синхронизация систем координат сессий дополненной реальности на различных устройствах.
В ходе работы над алгоритмом были решены следующие задачи:
1. Объединение устройств в сеть для передачи данных.
2. Передача потоковых данных о расположении и ориентации устройств, а также данных о происходящих на сцене событиях.
3. Реализация алгоритма синхронизации систем координат сессий дополненной реальности.
4. Реализация алгоритма внутри библиотеки cocoapods.
Данный алгоритм имеет широкий спектр применения, так как позволяет реализовывать многопользовательские AR приложения — игры, приложения для совместного просмотра 3D контента и взаимодействия с ним, навигационные приложение и другие.
На основе алгоритма, разработанного в результате выполнения данной работы, была реализована программная библиотека для ОС iOS. Разработанная библиотека опубликована на CocoaPods [14], что позволяет сторонним разработчикам реализовывать собственные многопользовательские AR-приложения и игры.



1. Представление ARKit на WWDC [Электронный ресурс]. - Режим
доступа: https://developer.apple.com/videos/play/wwdc2017/602/ (дата
обращения: 03.05.2018).
2. Wagner, Daniel et al. Towards Massively Multi-user Augmented Reality on Handheld Devices [Электронный ресурс]. - Режим доступа: https://pdfs.semanticscholar.org/05be/d977601c84ae581a9a8b2054ce484b3 42el0.pdf (дата обращения: 05.05.2018).
3. Описание принципов работы ARKit [Электронный ресурс]. - Режим доступа: https://developer.apple.com/arkit/ (дата обращения: 05.05.2018).
4. Multipeer Connectivity Framework iOS 7 [Электронный ресурс]. - Режим
доступа: https://habrahabr.ru/company/touchinstinct/blog/198814/ (дата
обращения: 05.05.2018).
5. Multipeer Connectivity — принцип работы [Электронный ресурс]. -
Режим доступа: http://nshipster.com/multipeer-connectivity/ (дата
обращения: 05.05.2018).
6. SceneKit — руководство для начинающих [Электронный ресурс]. - Режим доступа: https://www.raywenderlich.com/83748/beginning-scene- kit-tutorial (дата обращения: 07.05.2018).
7. Класс Stream — документация Apple [Электронный ресурс]. - Режим
доступа: https://developer.apple.com/documentation/foundation/stream
(дата обращения: 07.05.2018).
8. Структура сцены в SceneKit [Электронный ресурс]. - Режим доступа:
https://www.invasivecode.com/weblog/scenekit-tutorial-part-l/7doing_wp_c гоп=1513691954.5071899890899658203125 (дата обращения:
05.05.2018) .
9. Шаблон проектирования Observer [Электронный ресурс]. - Режим доступа: http://design-pattern.ru/pattems/observer.html (дата обращения:
10.05.2018) .
10. Свойства геометрии SCNPlane [Электронный ресурс]. - Режим доступа: http: //spec-zone .ш/RU/OSX/documentation/SceneKit/Reference/
SCNPlane Class/index.html (дата обращения: 23.04.2018).
11. Распознавание изображений в ARKit 1.5 [Электронный ресурс]. —
Режим доступа: https://developer.apple.com/documentation/arkit/
recognizingimagesinanarexperience (дата обращения: 11.05.2018).
12. Сравнение размеров экрана iOS устройств [Электронный ресурс]. -
Режим доступа: https://developer.apple.com/library/content/
documentation/Devicelnformation/Reference/iOSDeviceCompatibility/Displ ays/Displays.html (дата обращения: 22.05.2018).
13. Менеджер зависимостей Cocoapods [Электронный ресурс]. - Режим доступа: https://cocoapods.org (дата обращения: 14.05.2018).
14. Библиотека ARSync [Электронный ресурс]. - Режим доступа: https://cocoapods.org/pods/ARSync (дата обращения: 15.06.2018).


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ