Библиотека сайта rus-linux.net
Разработка приложений с открытым исходным кодом, использующих дополненную реальность
Оригинал: "A Who's Who Guide to Open Source Augmented Reality Apps"Автор: Nathan Willis
Дата публикации: 09 March 2011
Перевод: Н.Ромоданов
Дата перевода: февраль 2012 г.
Дополненная реальность (Augmented Reality - AR) является одним из тех туманных компьютерных терминов, которые у двух любых поставщиков могут означать совершенно разные вещи. AR охватывает все: от игр, использующих компьютерные изображения, и до гибко настраивающихся веб-сервисов, но наиболее полезными приложениями являются мобильные браузеры, которые получают информацию о вашем текущем местоположении и выдают на экран фрагмент изображения с информацией, относящейся к тому, что вас окружает. Например, Layar, Google Goggles и Wikitude могут предоставить вам на экране фотографии, веб-страницы или множество другой информации о вашем окружении. Но если вы интересуетесь открытым исходным кодом, не бойтесь: есть много альтернатив приложениям, работающих с дополненной реальностью и предлагаемых проприетарными поставщиками. Давайте посмотрим, что предлагается, чем они отличаются от проприетарной дополненной реальности и каковы тенденции.
Платформа Android
У пользователей платформы Android есть целый розарий приложений, использующих дополненную реальность. К приложениям с открытым исходным кодом, которые по использованию похожи на коммерческие браузеры с дополненной реальностью, относятся Mixare, AugmentThis и ARviewer. Их все можно получить из Android Market в виде автономно работающих приложений или с сайтов их личных проектов — и каждый из них можно использовать в качестве движка для сборки других приложений.
Некоторые из проектов браузеров дополненной реальности, предназначенных для платформы Android, состоят из нескольких составляющих — есть приложение - браузер, плюс фреймворк, который предназначен для сборки других браузерных приложений и добавления или редактирования своего собственного контента. Слабой стороной является то, что ни в одном из них не потрачено достаточно усилий для создания большой библиотеки исходных данных, используемых по умолчанию. В приложении Mixare по умолчанию отображаются достопримечательности (points of interest / POI — интнересные места), указанные в Википедии, и есть инструкции о том, как можно адаптировать приложение под свои собственные данные. На данный момент, на сайте Mixare приведены три производных приложения, каждое из которых адаптировано к конкретным регионам Европы. Однако, если просто укажите ссылки на данные, вы сможете использовать браузер Mixare для доступа к другим источникам данных. В инструкции Display Your Own Data (Изображение ваших данных) рассказывается, как это работает, вы просто передаете в браузер запрос в формате JSON, в котором указывается адрес данных, которые вы хотите добавить, и его геолокационные данные. В Mixare камера телефона используется для того, чтобы на видеоизображение накладывать изображения, на которые указывают ссылки; это самый популярный интерфейс для дополненной реальности.
В приложении AugmentThis с добавлением ваших собственных данных все еще более очевидно — это похоже на базу данных Wiki-AR. Вы можете создать на языке KML файл с данными с геотегами (с помощью приложения Google Earth или с помощью любого другого приложения, совместимого с KML) и загрузить его на сайт AugmentThis. Затем вы сможете в мобильном браузере получить доступ к собственным геоданным, а также к общедоступной библиотеке с геоданными всех достопримечательностей POI. Приложение AugmentThis может отображать либо двумерные карты, либо может накладывать точки маршрута и информацию о POI на изображение, выдаваемое видеокамерой.
Естественно, нет недостатка во мнениях, касающихся того, какой способ отображения лучше, и если в вашем устройстве быстрый процессор, то, как сообщают многие пользователи, двухмерная карта лучше, поскольку не требует вращать и направлять телефон на помеченный объект,в случае, когда этот объект не попадает поле видимости камеры. Поскольку в большинстве Android устройств высокого класса есть цифровой компас, в них можно правильно определять ориентацию, и переориентировать карты даже в двухмерном режиме. Если эта возможность поддерживается вашим оборудованием, то она используется приложением AugmentThis.
Третий вариант, приложение ARviewer, базируется на фреймворке LibreGeoSocial, и версия, представленная в Android market, является, по существу, демонстрационной. Но, если Вы решите ее использовать, вы также сможете помечать и добавлять на сайт свои собственные данные. Когда речь идет о документации, приложения ARviewer и LibreGeoSocial конкуренции не выдерживают, поэтому до тех пор, пока ситуация не улучшится, вы, возможно, решите, что проще начать с других приложений.
Есть еще одно - четвертое решение, ориентированное на платформу Android - OpenAR, хотя прежде, чем вы сможете отмечать местоположение и отправлять собственные данные нас сервер, вам при его использовании потребуется запрашивать идентификационный ключ (token). Похоже, что проект OpenAR больше ориентирован на вклад индивидуальных усилий; в нем нем не предлагаются списки открытых источников данных (даже с бесплатных сайтов, таких как Википедия). Вероятно, в будущем имеет смысл понаблюдать за этим проектом.
iPhone и все остальные платформы
Верьте или нет, но на закрытой платформе iPhone действительно есть один из самых открытых в настоящий момент браузер дополненной реальности. Он называется Argon и он был разработан исследовательской группой в технологическом институте Джорджии. На самом деле браузер Argon был разработан как средство визуализации результатов работы исследовательской группы KHARMA, сосредоточившей свои усилия на создании сервера дополненной реальности, предназначенного для работы поверх стандартного сервера HTTP.
Одна из причин, из-за которой дополненная реальность не принимается стремительно миром, это отсутствие действительно стандартного способа формирования запросов и получения ответов с использованием геолокационных данных — каждое проприетарное приложение по-своему обрабатывает ссылки с геолокационными данными, которые есть в Wikipedia, Flickr, Twitter и в других источниках данных, т. к. на каждом таком сайте используется свой собственный интерфейс API и ни в одном из них непосредственно не обрабатываются такие трехмерные структуры, как многоэтажные здания. В проекте KHARMA делаются попытки объединить варианты подобных запросов в виде общего фреймворка запросов, использующего и расширяющего язык KML, который в проекте называется "KARML". Хотя в текущий момент клиентское приложение есть только для iPhone, в нем не используются проприетарные особенности IOS, и, как говорят, в соответствующее время в проекте будут созданы мобильные приложения для других платформ.
Другим мобильным платформам так не повезло. Все, что видели пользователи устройств Symbian, это единственный вариант с открытым исходным кодом OpenMAR, хотя проект, кажется, находится в подвешенном состоянии с начала 2011 года. Были показаны два демонстрационных варианта дополненной реальности для Maemo, SSTT и SVSi, но, кажется, ни один из них не был доведен до релиза. Вполне возможно, что отсутствие в устройстве N900 цифрового компаса свело на нет все попытки сделать эти приложения значимыми для Maemo, хотя, возможно, будет сделана попытка продолжить работы в этом направлении для устройств MeeGo, у которых есть компас. В первых устройствах с WebOS также отсутствует компас, который существенно упрощает использование дополненной реальности. Однако компания HP сообщила, что на планшете с WebOS приложения с дополненной реальностью присутствовать будут, так есть надежда, что с этой платформой все будет хорошо.
Дополненная реальность с открытым кодом для разработчиков
Для таких новых понятий, как дополненная реальность, считается нормальным, что большая часть усилий затрачивается на создание многоразовых компонентов, таких как "браузерные движки", а не на приложения для конечных пользователей. Это, конечно, может расстроить пользователей, особенно на мобильных платформах, которые действительно направлены на массовое потребление.
Если вы разработчик, присматривающийся к использованию дополненной реальности, есть несколько библиотек с открытым исходным кодом, которые вам помогут. В инструментальных средствах Mixare и LibreGeoSocial, упоминавшихся ранее и позволяющих расширять возможности браузеров, разработчикам платформы Android предлагаются похожие наборы функций, позволяющие, в частности, ассоциировать внешние адреса URL со значениями широты и долготы конкретных мест.
В wiki проекта Mixare есть Вводное руководство, которое позволит вам с помощью кода проекта разработать ваше собственное приложение. В LibreGeoSocial есть более подробная документация, в том числе "ARviewer SDK" и справочные материалы по используемому в проекте формату GeoNode и системе маркировки.
Есть пара проектов, связанных с дополненной реальностью, например, AndAR и ARToolKit, которые заслуживают рассмотрения. Похоже, что оба проекта больше специализируются на 3-D объектах, используемых в тех вариантах дополненной реальности, которые связаны с играми, но те же самые методы можно использовать для наложения зданий и другого не-интерактивного контента на видеопоток, идущий с камеры.
Интригующим является то, что также есть инструментарий с открытым исходным кодом, предназначенный для работы с дополненной реальностью и который специально был создан для платформы iPhone. Это пакет iPhone ARKit (я никогда не говорил, что это оригинальная разработка), в котором предлагается библиотека Objective-C, предназначенная для разработчиков iPhone, специализирующихся на совмещении информационных слоев наподобие того, как это сделано во фреймворке MapKit для платформы iPhone.
На данный момент самым большим конкурентом дополненной реальности являются фактически существующие геолокационные сервисы, которые работают в традиционных веб браузерах. Например, в Firefox для мобильных устройств есть длинный список расширений, которые позволяют получать пользовательский контент с учетом местоположения, определяемого по A-GPS или информации, получаемой от сотовой вышки. Кроме того, Google и другие поисковые системы все чаще и чаще предоставляют результаты поиска, которые зависят местоположения клиента, сделавшего запрос, и не зависят от отдельных приложений, обрабатывающих контент.
Итак, является ли дополненная реальность краткой вспышкой, которая вскоре отстанет от умных браузеров и веб сервисов? Может быть, но только если она будет оставаться на месте. Если вы пользовались каким-нибудь из мобильных браузеров, поддерживающих дополненную реальность, вы знаете, что реальное преимущество связано с его способностью легко объединять информацию в поле вашего зрения. Итак, хотя все началось с записей в Википедии и с географических достопримечательностей, настоящей жемчужиной является фото- и видео-контент, особенно, когда в нем пользователю предлагается то, что не видно невооруженным глазом. Сейчас в этой области преимущество за Layar и Google Goggles; разработчики открытого исходного кода продвинут эти идеи дальше.