Разработка мобильного приложения с технологией дополненной реальности
Автор: Крючков А.А.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Основной раздел
Статья в выпуске: 8 (14), 2016 года.
Бесплатный доступ
В ходе выполнения работы было разработано и реализовано клиент-серверное приложение, которое поддерживает технологию дополненной реальности.
Технология дополненной реальности
Короткий адрес: https://sciup.org/140269663
IDR: 140269663
Текст научной статьи Разработка мобильного приложения с технологией дополненной реальности
Нельзя не согласиться с тем, что в современном мире огромное значение имеют информационные технологии, которые с каждым годом становятся сложнее и приобретают первостепенное значение в жизни людей. Новые технологии сильно упрощают жизнь людям: в течение минуты в своём телефоне можно найти любую интересующую информацию, заказать билет на поезд или самолёт, купить какой-нибудь товар с доставкой на дом. Так же с помощью мобильных устройств можно следить за своим домом, за здоровьем благодаря датчикам на теле. Смартфон или планшетный компьютер есть уже у большей части жителей Земли.
Дополненная реальность (англ. augmented reality, AR — «расширенная реальность») - результат введения в поле восприятия любых сенсорных данных с целью дополнения сведений об окружении и улучшения восприятия информации. На сегодняшний день технология дополненной реальности является одним из основных направлений IT-разработок. Используется в IT-технологиях, в развлекательной сфере, в спорте, в военной сфере.
В данной работе описана разработка мобильного приложения с технологией дополненной реальности на примере Android приложения для поиска достопримечательностей.
Серверная часть
Для разработки достаточно простого сервера с поддержкой PHP и MySQL. Создадим базу данных “Attr_DB” и таблицу “Attractions” с полями “Name” (имя), “Description” (описание), “Address” (адрес), “LocationX” (координата X), “LocationY” (координата Y). Далее заполним данную таблицу достопримечательностями.
На PHP напишем обработчик запросов. Для реализации API используется REST модель, в которой все запросы посылаются на URL нашего сервера. Данные, возвращаемые сервером, имеют формат JSON вида:
{
“name”: “Название достопримечательности”,
“description”: “Описание”,
“address”: “Адрес”,
“locationx”: “Координата X”,
“locationy”: “Координата Y”
}
Разработка архитектуры системы
Огромная популярность и распространённость Android-устройств, а так же бесплатная среда разработки, отсутствие надобности покупать аккаунт разработчика для тестирования на устройстве поспособствовали выбору Android в качестве платформы для мобильного приложения.
Выбор минимальной версии ОС должен решить задачу – максимально охватить диапазон пользователей и при этом использовать функционал последних версий Android. Минимальной версией ОС, на которой гарантированно будет работать приложение, решено было выбрать версию 4.1 JellyBean (API 16 и выше). Выбор был сделан на основании того, что в данной версии добавили много удобных и, в первую очередь, важных возможностей для приложения (Memory management, Customizable app navigation, Activity launch animations и др.). Так же с данной минимальной версией охватывается 95,2 % пользователей.
Разрабатывать приложение было решено в Android Studio.
Разработка мобильного приложения
Для создания приложения по достопримечательностям Псковской области в первую очередь нужно создать класс Attraction. Данный класс и его поля описаны ниже в таблице 1.
Таблица 1. Класс Attraction и его поля
Поле |
Тип |
Описание |
name |
String |
Название достопримечательности |
address |
String |
Адрес |
xLocation |
double |
Координата восточной долготы |
yLocation |
double |
Координата северной широты |
description |
String |
Историческая справка |
При разработке под Android важнейшим элементом является Activity (Активность или Экран). Activity – другими словами, это и есть экран приложения. Любое Activity, которое мы напишем, должно наследоваться от основного класса Activity. Рассмотрим активности данного приложения на рисунке 1.

Рисунок 1. Структура активностей (экранов) данного приложения
Экран списка достопримечательностей выводит на экран полный список достопримечательностей, который последовательно подгружается с сервера. Экран достопримечательности – описание выбранной достопримечательности и кнопку-переход для включения Видоискателя. Активность с видоискателем реализует технологию дополненной реальности в данной работе. На экране отображается метка, на которой приведена информация о выбранной достопримечательности. Данная метка изменяет своё положение в зависимости от положения пользователя в пространстве. Благодаря данной технологии пользователь может увидеть в какой стороне находится нужное ему место. Внешний вид экранов показан на рисунке 2.


Рисунок 2. Экраны приложения
Реализация дополненной реальности
Для реализации дополненной реальности существует 2 пути: разработать систему определения положения пользователя относительно пространства и объектов своими силами, либо выбрать уже существующее решение (найти готовую библиотеку).
Разработка своими силами является трудоемкой: после изучения предметной области (получение данных с GPS, с акселерометра и других датчиков), необходимо собрать все эти данные воедино и разработать систему, которая будет предоставлять информацию о текущем положении в реальном времени. Данный подход затруднителен и тем, что помимо потраченного времени на написание данной системы потребуется некоторое время на тестирование, а также на исправление найденных ошибок. Также возможна ситуация остановки на какой-либо проблеме, которую ввиду отсутствия достаточного опыта работы с подобного рода системами будет затруднительно решить.
Использование готовой библиотеки для реализации дополненной реальности является предпочтительнее по нескольким причинам:
-
- наличие подробной документации;
-
- наличие готовых примеров, которые можно протестировать на устройстве и проверить работоспособность библиотеки;
-
- нет необходимости в тестировании (но при этом не надо забывать, что ошибки могут быть найдены не зависимо от уровня тестирования библиотеки).
В результате проведенного анализа были найдены несколько библиотек с поддержкой дополненной реальности, самые популярные их которых WikitudeSDK и MetaioSDK.
WikitudeSDK – библиотека от компании Wikitude. Поддерживает большой набор различных возможностей:
-
- распознавание изображений;
-
- распознавание изображений и отображение 3D-моделей поверх них;
-
- отображение видео поверх меток;
Из минусов стоит отметить, что бесплатная версия библиотеки отображает водяной знак компании Wikitude поверх экрана
MetaioSDK – библиотека от компании Metaio. Имеет следующие возможности:
-
- сканер штрих-кодов и QR-кодов;
-
- распознавание и отслеживание лиц;
-
- отображение 3D моделей.
Из минусов также присутствует водяной знак компании в бесплатной версии библиотеки.
Обе библиотеки имеют тестовое приложение с открытым кодом, которое можно запустить на своём приложении. При тестировании данных приложений была выбрана библиотека Wikitude, так как она субъективно быстрее обновляет положения меток в зависимости от изменения положения пользователя в пространстве.
WikitudeSDK – это программный продукт австрийской компании WikitudeGmbH. Данная библиотека имеет множество возможностей:
-
- дополненная реальность, основанная на геопозиции пользователя;
-
- отрисовка 3D моделей;
-
- распознавание изображений.
От данной библиотеки нам потребуется возможность реализации дополненной реальности, основанной на геопозиции пользователя. Данная библиотека позволяет с легкостью реализовать данную возможность, причем готовые примеры программ в документации могут очень сильно в этом помочь.
Для того чтобы созданный экран видоискателя камеры отображал геометки с достопримечательностями, необходимо унаследовать созданный класс CameraActivity от класса CamActivity, предоставленного библиотекой.
Предоставленный библиотекой класс CamActivity отображает геометки на экране с помощью WebView. Данные о геометках необходимо передать в функцию callJavaScript класса CamActivity в виде JSON-объекта.
Алгоритм работы CameraActivity представлен на рисунке 3.

Рисунок 3. Диаграмма алгоритма отображения метки достопримечательности на экране мобильного устройства
Заключение
Результатом выполнения работы является программный продукт, который представляет собой мобильное приложение с возможностью обновления, реализующее поиск и просмотр информации о достопримечательностях, а так же технологию дополненной реальности.
Список литературы Разработка мобильного приложения с технологией дополненной реальности
- Сьерра К., Бэйтс Б. Изучаем Java. Пер. с англ. - Москва:ЭКСМО, 2012. - 720 с.: ISBN: 978-5-699-54574-2
- Гриффинс Д., Гриффинс Д. Head First. Программирование для Android. Пер. с англ. - Спб.: Питер, 2016. - 704 с.: ISBN: 978-5-496-02171-5
- Wikitude - The World's leading Augmented Reality SDK [Электронный ресурс]: URL: http://www.wikitude.com