Привет, Хабр! Сегодня поговорим об аэропортах, а точнее, навигации внутри них. Сначала коротко о нашей команде. Мы — группа разработчиков naviar SDK в AR/VR-лаборатории Сбера. Занимаемся разработкой технологий для отображения AR-контента в помещении или улице, который легко интегрируется в мобильное приложение на iOS или Android.  Одна из таких технологий — визуальное позиционирование или VPS (visual positioning system). На её основе наша команда реализовала AR-шоу для музея Политеха и разработала AR-навигации для торговых центров. Можно сказать, что идея проверить технологию для навигации в таком помещении, как аэропорт, витала в воздухе с самого начала запуска продукта. Ее реализацией мы и занялись.   Дело в том, что многие клиенты авиакомпаний теряются внутри огромных помещений. И ладно, если до посадки ещё пара часов, тогда можно найти правильный путь. Но что, если времени в обрез? В общем, мы поставили себе задачу — избавить пассажира от лихорадочного поиска нужной таблички, предоставив возможность следовать по верному пути, который он видит на экране своего телефона.  «Если опыт работы с торговыми центрами у нас уже был, то аэропорт — это то, что стало бы уникальным кейсом. Мы сами обратились к Шереметьево с инициативой создания AR-навигации в аэропорту, которую они с радостью поддержали. Мы сделали демо, после которого ни у кого не осталось вопросов, все загорелись желанием делать проект», — Диана Борисова, менеджер по работе с партнёрами naviar SDK в Sber AR/VR Lab.  Вызов был принят, перед командой встала серьёзная задача, состоящая из трёх частей:  во-первых, аэропорт — объект международного значения, куда приезжают люди со всего мира;  во-вторых, навигация нужна в условиях ограниченного времени, между несколькими терминалами, соединёнными подземным тоннелем, что создаёт дополнительные требования к способам построения маршрута; так как аэропорт является режимным объектом, в предполётные зоны команда не допускалась. Но мы решили проблему: обязанности по сканированию терминалов были поделены между сотрудниками Лаборатории и самого аэропорта. В закрытых для нашей команды местах сканирование проводилось силами сотрудников аэропорта с нужным уровнем доступа. Команде проекта пришлось подготовить для них инструкции и провести тренинг.  Основная функция проекта — информационная. Задача — снизить нагрузку на сотрудников аэропорта и авиакомпаний с помощью инструментов дополненной реальности. Мы планировали сделать так, чтобы пассажиру не нужно было подходить к сотрудникам аэропорта и спрашивать, как пройти к стойкам регистрации. Вместо этого собирались предоставить возможность задать любую интересующую пользователя точку в приложении и самостоятельно до неё дойти.  Кроме навигационной функции AR-модуль в приложении решает и другую проблему — создаёт новые возможности для монетизации и рекламы. Ведь там, где есть диджитал-продолжение локации, есть и новые форматы рекламных кампаний. Это тоже непросто, но мы справились. Полностью реализовать эти возможности удалось благодаря сотрудничеству с брендами и командой разработчиков приложения аэропорта.  Процесс сканирования — съёмка видео в помещении на камеру с обзором 360° и определённой частотой кадров. Оператор закрепляет камеру на штатив со стабилизацией и проходит с камерой по всем локациям аэропорта, которые будут отображаться в приложении. Оператор или штатив могут попасть в кадр, как и люди вокруг, но на этапе обработки видео алгоритмы Лаборатории всё это маскируют. Так что лишние объекты в кадре не мешают работе алгоритмов.   Правда, есть один нюанс. Дело в том, что если людей или объектов в кадре будет слишком много, то видео придётся переснимать. Поэтому желательно делать съёмку тогда, когда в помещении немноголюдно. В этом сложность, ведь в аэропорту всегда много людей, он открыт 24/7, так что люди там постоянно. Пришлось снять больше видео, чем обычно, чтобы в кадр попало как можно больше неподвижных объектов. Но благодаря съёмке на 360-градусную камеру весь процесс занял всего 4 съёмочных дня. Каждый терминал состоит из трёх этажей, зон регистрации, сдачи багажа и зон вылета. Всего процесс сканирования двух терминалов и зоны аэроэкспресса занял 4 съёмочных дня. Все видеоматериалы, полученные в процессе сканирования, обработали при помощи специализированного сервиса Лаборатории. Он преобразовал видео в «облако» из уникальных точек, анализируя которые, naviar VPS определяет положение человека в пространстве. Реализация проекта стала возможной благодаря системе визуального позиционирования naviar VPS (Visual Positioning System, сокращённо VPS), которую разработала команда Sber AR/VR Lab. Эта технология определяет положение и направление «взгляда» камеры телефона, когда человек направляет её на окружающее пространство. Система работает с точностью до 0,5 метра.  Для того чтобы приложение могло определить текущее местоположение пользователя, требуется «показать», что находится вокруг. О том, что такое VPS, мы писали в прошлой статье, а познакомиться с проектом naviar можно на странице портала Сбера для разработчиков. «Аэропорт Шереметьево стал первой локацией, где мы применили обновлённый механизм межэтажной локализации, в результате существенно увеличили точность определения позиции пользователя. А также разработали и внедрили новый протокол отправки и получения данных с сервера, который сейчас используется во всех наших проектах», — Иван Родин, инженер-разработчик Лаборатории AR/VR. После подготовки локации к локализации на ней тестировщик Лаборатории выезжал на место и специальным отладочным приложением проверял, насколько точно позиция, определяемая через VPS, сходится с координатами реальной точки. Пока команда бэкенда готовила аэропорт к локализации в нём через VPS, команда фронтенда работала над сборкой самого модуля навигации для мобильного приложения «Шереметьево». Сборка модуля осуществлялась на основе уже готового фреймворка Лаборатории. Он разработан на базе платформы Unity. Соответственно, разрабатывать весь UI и UX с нуля не пришлось, он уже был протестирован на внутренних проектах и обкатан на навигациях по офису и торговым центрам. Но офис и аэропорт — это совсем разные вещи, некоторые моменты пришлось доработать. «Основной челлендж был в том, чтобы поменять пайплайн навигации под особенности Шереметьево. То есть внедрить возможность построения длинных маршрутов с переходами через лифты, лестницы и эскалаторы. Благодаря этим особенностям мы поняли, каких возможностей не хватает нашему фреймворку для AR-навигации», — Никита Лукьянцев, инженер-разработчик. Всего в модуль AR-навигации мы добавили 457 «точек интереса» пользователей. Это кафе, магазины, туалеты, информационные стойки, входы и выходы, стойки регистрации багажа, камеры хранения, питьевые фонтанчики, аптеки и так далее. Добавляли их через специально разработанный командой плагин для Unity, который выполняет роль CMS. После обновления «точек интереса» файл с их списком апдейтится на сервере. При каждом запуске приложение проверяет наличие обновления, не требуя обновления самого приложения.  До момента интеграции модуля навигации в приложение «Шереметьево» вся разработка велась внутри. Получившийся модуль был упакован и передан для интеграции в Шереметьево как Unity as Library. Использование Unity позволило вести разработку в удобной среде, а потом передавать получившийся проект разработчикам приложения как отдельный модуль сразу под обе платформы. Из модуля Unity можно вызывать события из нативной части. Например, пользователь может отсканировать свой посадочный талон из нативной части, а модуль AR-навигации построит ему маршрут до выхода на посадку через все необходимые для этого точки. Приложения аэропортов не пользуются популярностью у пользователей. Как правило, информацию о рейсе можно найти в приложении авиакомпании либо же на сайте аэропорта. Заинтересовать пользователя можно набором уникальных функций в приложении. Лишь в этом случае апп будут загружать. После добавления AR-навигации приложение «Шереметьево» получило такие функции. Наглядная навигация по терминалам стала стимулом для загрузки пользователями. Количество установок спустя всего месяц после апдейта приложения увеличилось на 10%. В списке самых популярных среди пассажиров локаций за последние 2 месяца лидируют «Зарядка телефонов», «Стойка информации терминала C» и «Аптеки». «Приятно осознавать, что технология, разработанная нашей командой, позволяет экономить время и нервы как пассажирам, так и сотрудникам самого аэропорта, которые каждый день отвечают на сотни вопросов о том, как пройти в туалет или где зарядка для телефонов.  Работа над проектом “Шереметьево” дала много инсайтов и с точки зрения самого продукта — мы автоматизировали некоторые этапы подготовки локации и пересмотрели подход к межэтажной локализации, и с точки зрения процессов команды — мы сильно прокачали наш QA на всех этапах разработки, что позволило нам быстрее выдавать готовый продукт заказчику», — Алексей Рыбаков, руководитель направления naviar VPS. Аэропорт Шереметьево стал самой крупной на данный момент площадкой, где команде naviar SDK удалось развернуть систему визуального позиционирования. Технология прошла проверку. Сегодня команда обсуждает с департаментами Шереметьево, как ещё можно использовать naviar VPS в жизни аэропорта, в том числе для привлечения клиентов арендаторам. А ещё команда готова предоставить доступ к naviar VPS в Шереметьево для компаний и разработчиков, которые хотели бы реализовать там свои AR-проекты. Если у вас есть идеи своего AR-проекта в Шереметьево, пишите на почту команды — naviar@sberbank.ru. Ребята из naviar SDK буду рады помочь вам в реализации. Кроме того, задавайте вопросы в комментариях, постараемся ответить на все.   Руководитель продукта naviar SDK в @Sber