| 01.10.2009 13:00 | |
Аннотация
В статье описана работа над системой локального информирования и позиционирования на территории кампуса ННГУ, подходы к реализации задачи и результат полученный в итоге. Система потенциально способна интегрировать в себе многие аспекты жизни университета.
Введение
В нашем динамичном и подчас очень сложном мире незнание своего местонахождения является непозволительной роскошью. Задача позиционирования человека в пространстве стара как мир, - были изобретены компас, навигация по звездам, и много других способов, сменявших друг друга с течением развития цивилизации. В наши дни определить свое местоположение достаточно легко. Составлены подробные карты и планы поверхности земли, практически весь земной шар сфотографирован из космоса. Благодаря стараниям различных организаций, теперь каждый человек на планете способен рассмотреть любой ее уголок и представить, что в нем находится.
Но, несмотря на улучшившуюся ситуацию с позиционированием человека на местности, проблем, недоработок и просто белых пятен на карте все еще много.
Навигационные системы используют различные технологии и наиболее продвинутой из них является спутниковая GPS навигация. Определение своего положения с помощью этой технологии является достаточно точным практически для всех жизненных ситуаций, но имеются и ограничения. Главное из них то, что сигнал спутника не способен проникнуть в здания и под землю. В таком случае в дело вступают локальные системы позиционирования, опирающиеся на другие технологии и имеющуюся инфраструктуру сетей, что позволяет ориентироваться по конкретному объекту, предоставляющему необходимую инфраструктуру.
Основной задачей проекта ставилось создать систему, способную помочь студенту ориентироваться на местности университета и, в первую очередь, внутри зданий. Это как раз та область, которую невозможно покрыть с помощью спутниковой навигации. Такая навигационная система может быть полезна не только студенту, но и любому сотруднику университета или человеку, оказавшемуся на университетской территории.
Средствами навигации были выбраны обычные мобильные телефоны, как наиболее распространенные среди студентов средства связи. Моей частью работы было создание клиентского приложения для мобильных телефонов на основе технологии Java2ME.
Система, создававшаяся в ходе проекта, потенциально может интегрировать в себе всю жизнь университета, и навигация является ее основной частью.
Начало работы
В самом начале работы над навигационной системой нужно было принять решение по используемым для позиционирования технологиям и по архитектуре системы. Использовать приходилось уже имеющуюся базу устройств и технологий, так как в проект не входила разработка уникальных технологий позиционирования. На большинстве мобильных телефонов спутниковая навигация недоступна, а единственное средство навигации, пригодное к применению на мобильных телефонах, - GSM навигация по базовым станциям оператора сотовой связи - не обладает достаточной точностью, позволяя с уверенность говорить лишь о том, что устройство находится на территории университета.
Не имея каких-либо других пригодных средств навигации, было принято решение осуществлять ее с помощью меток, расположенных на территории университета. Такой подход также помог решить информационную задачу: метка хранила не только навигационную составляющую, но и информацию об объекте-носителе этой метки.
Таким образом, для системы была выбрана клиент-серверная архитектура с централизованным хранением карт кампуса, карт зданий и информации о метках, расположенных на территории университета.
Как и любой клиент-серверной системе, нашей нужен был клиент, который бы работал именно на мобильных телефонах.
Рисунок 1. Главное меню.
Разработка клиента
1. Средства позиционирования
При работе над J2ME клиентом было уделено много внимания исследованию имеющихся разработок в области навигации при помощи мобильных телефонов. В арсенале телефонов нет общепринятых навигационных средств, и, как уже было сказано выше, для навигации используются географические метки. Метки располагаются по территории университета и реализованы в качестве QR-кодов. Их распознавание возложено на телефон. Условием распознавание таких меток является наличие у телефона фотокамеры.
Причиной выбора технологии QR-кодов для реализации меток является способность мобильных устройств достаточно легко распознавать такие метки, избыточность информации в QR-кодах, что обеспечивает устойчивость к физическим повреждениям и их способность хранить достаточно большой объем информации.
Рисунок 2. QR-код.
2. Отображение карт
После успешного решения задачи определения положения человека на местности пришла очередь решить задачу показа этого самого положения. Исследование вопроса отображения карт на мобильных устройствах показало, что во всех широко применяемых системах позиционирования для мобильных устройств без использования GPS карты отображаются в виде картинок.
Такой подход накладывает достаточно существенные ограничения на пользователя, в первую очередь по количеству передаваемого на мобильный телефон Интернет трафика. В наших реалиях стоимость Интернета в сотовых сетях достаточно высока, а скорости передачи информации зачастую не позволяют оперировать большими объемами информации. Иного выхода, кроме как использовать векторные карты с текстовым форматом их описания, не было.
Рассмотрев все преимущества использования векторных карт, я пришла к выводу, что их использование не только сэкономит время и деньги пользователя, но также упростит поставленную задачу.
Векторные карты предоставляют всю информацию о себе в очень удобном для обработки текстовом виде, позволяют легко расширять и модифицировать формат карт, отображать и оперировать этими данными любым удобным образом.
Поиски мобильных приложений, уже использующих векторные карты, привели к интересной разработке итальянских программистов. Их приложение под названием cGMLDemo позволяло отображать именно векторные карты, локально хранящиеся на телефоне. Ко всем прочим достоинствам найденной программы относится ее свободное распространение вместе с исходными кодами.
Использование готовых решений в наше время является распространенной практикой, и использование визуализатора карт cGML было наилучшим решение для реализации клиента в сжатые сроки.
Исходные коды той части cGML, которая отвечала за отображения карт, были внедрены в клиентское приложение и обеспечили отображение карты кампуса и зданий.
Рисунок 3. Позиционирование на карте.
3. Взаимодействие с информационным сервисом.
Приложением, позволяющим показывать карты, не всегда удобно пользоваться, так как карта может быть очень большой, и найти на ней что-либо бывает сложно.
Как раз здесь нам и пригодятся географические метки. С их помощью пользователь найдет любую информацию об объектах, имеющихся на карте.
Одной из составляющих клиент-серверной системы является информационный сервис, хранящий в себе информацию обо всех объектах на карте. По этой информации возможен полнотекстовый поиск и выдача координат объекта, соответствующего найденной информации. Клиенту необходимо отобразить положение метки на карте, и пользователь узнает, где находится необходимый ему объект.
Рисунок 4. Нахождение объекта на карте.
4. Найти себя на карте
Какая навигационная система обходится без позиционирования собственно самого пользователя?
Одной из функций системы является отображение местоположения человека на карте. Фотографируя метку камерой телефона, пользователь тем самым запрашивает у сервера информацию о ее расположении, которое отображается на карте университета.
Рисунок 5. Положение пользователя на карте.
Как все это работает
Перейдем к особенностям реализации и описанию работы клиента, ну и, конечно, его взаимодействия с сервером.
Для клиентского приложения очень важен приятный и удобный пользовательский интерфейс. Стандартный пользовательский интерфейс, который обеспечивает платформа J2ME, не пригоден для реализации полноценного приложения, так как внешний вид стандартных элементов управления оставляет желать лучшего. Компания Sun, производитель платформы J2ME, совсем недавно поняла свою недоработку и выпустила в свет библиотеку для создания красивого и удобного интерфейса. Библиотека называется LWUIT. Она обеспечивает возможность без дополнительных усилий создать достаточно симпатичный (на скриншотах) интерфейс и построить на его основе программу.
Использование в клиенте распознавания QR-кодов основано на библиотеке ZXING, реализующей распознавание многих штрих-кодов. ZXING может использоваться и как самостоятельное приложение. В своем клиенте я использую только базовые функции.
С сервером, реализованным как веб-сервис, клиент связывается по протоколу SOAP, передавая информацию в виде объектов. Протокол SOAP реализуется с помощью сторонней библиотеки KSOAP.
Трудности с которыми я столкнулась
Основной сложностью при написании приложений для мобильных телефонов является тестирование. Различные производители по-разному реализуют платформу J2ME, вследствие чего одна и та же программа работает неодинаково на разных телефонах. Зачастую разница заключается лишь в скорости работы, и на определенных моделях телефонов проявляются ощутимые задержки в работе программы. Методы борьбы с такой разницей обычно сводятся к упрощению алгоритмов или их модификации, обеспечивающей большее быстродействие.
Ко второй сложности относится отсутствие поддержки некоторых функций телефона в эмуляторах, используемых при отладке. Отсутствие при отладке активно используемой в приложении фотокамеры доставляло много неудобств, и для тестирования приходилось каждый раз загружать приложение в телефон.
Заключение
Во время летней школы командой, в которой я работала, был разработан сервис позиционирования на территории университета. Сервис позволяет хранить в себе большое количество информации об объектах на территории кампуса, помогает пользователю ориентироваться на территории посредствам географических меток, и потенциально способен объединить и реализовать в себе множество других важных для жизни университета функций.
Летняя школа дала возможность поработать над сложным и интересным проектом в большой команде, проявить свои способности и достичь хорошего результата.
От других подобных систем разработанный нами сервис отличается тем, что позволяет пользователю ориентироваться внутри зданий и получать информацию об объектах, находящихся внутри зданий.
Об авторе
Шестернина Екатерина является студенткой Волгоградского Государственного Технического Университета, в городе Волгограде. Участвовала в Летней школе компании Intel в городе Нижний Новгород.
Благодаря Летней школе я узнала много нового, поработала в большой команде, и создала важную часть навигационной системы университета.
Ссылки
- ZXing ("Zebra Crossing") http://code.google.com/p/zxing/
- cGML - The compact GML for mobile devices http://www.crs4.it/nda/cgml/
- kSOAP2 http://ksoap2.sourceforge.net/
Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.
Комментарии (5) 
| 06.10.2009 00:09
katrine_sh
|
1) Как раз то, что было описано выше, было сделано за месяц: т.е. по окончанию школы у нас был Java-клиент для мобильных телефонов, который позволял считывать qr-код с помощью камеры, распознавать его с помощью Zxing, передавать идентификатор метки на инфосервис, получая от него обратно информацию об объекте. При передаче идентификатора метки на геосервис мы от последнего получали расположение метки. Был реализован поиск в виде того, что пользователь вводит ключевое слово, оно отправляется на сервер и от сервера мы получаем список объектов, которые удовлетворяют запрашиваемому, и далее по каждому объекту можно просмотреть либо более подробно информацию, либо отобразить этот объект на карте. Конечно же, была реализована навигация по карте: перемещение курсора, масштабирование, выделение объектов, и вывод информации о выбранном объекте. При работе с картой нам очень помогла разработка итальянских программистов (ссылка приведена в приложении). Команда, работавшая над этим проектом, состояла из шести программистов: Яровенко Владимир и Никляев Илья реализовывали серверную часть, Крыжановский Анатолий и Пыхтин Павел работали над клиентом под Windows Mobile, Заикин Сергей и я (Шестернина Екатерина) - над Java - клиентом под мобильные устройства (чему и посвящена статья выше) 2) Метки делаются из бумаги или пластика, и затем прикрепляются к объектам. А устойчивость что-то около 30%, то есть 30-ти процентная порча метки на результат не повлияет, а дальше идентификатор просто не распознается. В этом случае метку надо будет заменить на целую. |
| 19.10.2009 09:04
Roman Sharygin (Intel)
| Похоже, что всё уже готово для пользователей. Любопытно, а систему уже используют в ННГУ? |
| 21.10.2009 05:45
katrine_sh
| Систему еще не используют. По ходу возникло очень много идей, которые сейчас и реализовываются |
| 23.10.2009 04:00
Dmitry Oganezov (Intel)
|
«В нашем динамичном и подчас очень сложном мире незнание своего местонахождения является непозволительной роскошью» - скрупулезно подмечено! Взять, например, меня. Я почти всегда знаю свое местонахождение. Кризис, знаете ли, - не время шиковать! :) Теперь о проекте. Довольно элегантное решение для больших учебных заведений. Если подумать, есть и еще хорошие примеры использования. Например, ориентация на больших складах. Я бы отнес к плюсам использования автором сторонних библиотек и решений с открытым кодом. Действительно – если нужен результат, зачем изобретать велосипед? О минусах статьи: очень короткий раздел "Как все это работает", в результате чего складывается ощущение, что автор описывает чужую работу. Не раскрыто множество интересных деталей: технология отрисовки карты, масштабирования, и т.п.. Судя по картинкам, на карте отображены строения кампуса. А как быть с переходами между зданиями? Например, вы сфотографировали метку аудитории в расписании занятий, вам нужно 1) найти выход из учебного корпуса 2) найти корпус, где будет проходить следующая лекция 3) найти нужную аудиторию в этом корпусе. Ну и вопрос на засыпку: а как с точки зрения пользовательского интерфейса выглядит перемещение между различными этажами? |
Обратная ссылка (1)
- Хозяйка университетских лабораторий, или короткое интервью с Марией Осеевой. – Блоги Intel® Software Network
08.04.2010 05:57



ksili
7,630
2) Что из себя физически представляют метки? Это какие-то таблички на стенах? Насколько всё это устойчиво к фальсификации? Если, допустим, злоумышленник подойдёт и подрисует пару квадратиков, или наоборот заклеит, как сервис отработает эту ситуацию?