Реализация AR-навигации в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация AR-навигации в мобильном приложении
Сложный
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    744
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1160
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    562

Реализация AR-навигации в мобильном приложении — задача, которую мы решаем уже более 5 лет. Внешне это простая стрелка поверх изображения камеры, но на самом деле скрываются три принципиально разных сценария: outdoor (на открытом воздухе), indoor (внутри зданий) и навигация по этажам торговых центров или аэропортов. Для каждого мы подбираем свой стек: от стандартного GPS+компас до VPS на базе Immersal SDK. Outdoor навигация опирается на GPS и компас, но точность GPS в городе 3-8 метров, что недостаточно для пешеходной навигации. Для indoor GPS отсутствует, поэтому используют BLE маячки или VPS. В этой статье разберём технические детали: как избежать дрейфа, настроить калибровку компаса и добиться точности до 10 см в помещении. Экономия на эксплуатации AR-навигации по сравнению с традиционными решениями может достигать 40%. Закажите консультацию — мы поможем выбрать оптимальное решение для вашего проекта.

Как работает outdoor AR-навигация?

За основу берётся GPS + компас + ARKit/ARCore. Используем CLLocationManager + CLHeading для компаса, ARKit/ARCore для стабилизации ориентации. Точность GPS в городе — 3-8 метров, чего достаточно для стрелки «идите прямо 200 метров», но недостаточно для «сверните здесь» с точностью до тротуара.

ARKit Geo Tracking (iPhone XS+, поддерживаемые города) — иной уровень. ARGeoTrackingConfiguration использует GPS, компас и street-level imagery от Apple Maps для локализации с точностью до 1-3 метров. ARGeoAnchor привязывается к координатам WGS84, и ARKit сам поддерживает якорь в мировом пространстве при движении пользователя.

По данным Apple ARGeoAnchor, точность составляет 1-3 метра в идеальных условиях. ARKit Geo Tracking обеспечивает точность в 3-4 раза выше, чем GPS+компас, что критически важно для навигации в плотной городской застройке.

let anchor = ARGeoAnchor(
    coordinate: CLLocationCoordinate2D(latitude: 53.9045, longitude: 27.5615),
    altitude: nil
)
arView.session.add(anchor: anchor)

ARGeoTrackingStatus.stateReason покажет, почему geo tracking не работает (.notYetInitialized, .geoDataNotLoaded, .visualLocalizationFailed). Последнее случается при плохом освещении или на малоизвестных улицах — нужен fallback на GPS+компас.

Почему indoor-навигация сложнее и как её реализовать?

GPS внутри зданий не работает. Рассмотрим основные опции:

Технология Точность Сложность интеграции Начальные затраты
Beacon/BLE 2-10 м Средняя Высокая (покупка маячков)
ARKit relative tracking 0.5-2% дрейф Низкая Нулевые
VPS (Immersal SDK) 10-30 см Высокая Коммерческая лицензия

Immersal SDK — наиболее практичный вариант для custom indoor VPS. Облачная локализация: фотографируете помещение в Immersal Mapper, SDK локализует пользователя по visual match с точностью до 10-30 см. Работает на iOS (ARKit) и Android (ARCore). Immersal VPS обеспечивает точность в 20-100 раз выше, чем BLE маячки.

Также стоит рассмотреть Google Visual Positioning Service (ARCore 1.24+), но покрытие в СНГ минимальное.

Как отрисовать маршрут в AR и избежать типичных ошибок?

Путь в AR — это цепочка 3D-точек, соединённых стрелками или «хлебными крошками» на уровне пола. Для плавного следования по маршруту нужна параметрическая кривая (Catmull-Rom spline) через waypoints — иначе стрелки будут слишком угловатыми на поворотах.

Стрелку направления отрисовываем как ModelEntity с USDZ-моделью (GLB для ARCore), billboard-поворотом к камере по Y-оси. На поворотах — анимация пульсации через FromToByAnimation в RealityKit.

Важно: стрелки должны «прилипать» к обнаруженной плоскости пола, а не висеть в воздухе. Для этого — raycast вниз из каждого waypoint на обнаруженные плоскости.

Проблема Решение
Компас на Android дёргается Low-pass фильтр + UI калибровки
Дрейф indoor-ARKit Контрольные QR-коды каждые 50 м
Нет покрытия VPS Fallback на BLE + маячки

Теперь о типичных болях: компас на Android — SensorManager.SENSOR_DELAY_GAME с фильтрацией через low-pass filter. Без фильтрации компас дёргается и стрелка «прыгает» на 15-20° в секунду. Плохо откалиброванный магнетометр (рядом с металлическими конструкциями) даёт отклонение до 30°. Добавьте UI-запрос на калибровку компаса при SensorAccuracy.LOW. При low accuracy на Android показываем экран с просьбой поводить телефоном в виде восьмёрки. На iOS вызываем системный интерфейс калибровки автоматически.

Как мы реализуем AR-навигацию: пошаговый план

  1. Анализ сценариев и требований к точности.
  2. Выбор стека: GPS+компас, Geo Tracking, VPS или BLE.
  3. Разработка прототипа с базовым трекингом.
  4. Калибровка и тестирование в реальных условиях.
  5. Интеграция с бэкендом и настройка push-уведомлений (APNs/FCM).
  6. Публикация в App Store и Google Play.

Сроки: outdoor на GPS — 2-3 недели, с Geo Tracking — ещё неделя. Indoor на VPS — от 4 недель включая картирование. Стоимость рассчитывается индивидуально, но AR-навигация на VPS окупается за 3-6 месяцев в торговых центрах площадью от 10 000 м².

Что входит в работу

При заказе разработки AR-навигации под ключ мы предоставляем:

  • Техническое задание и архитектурную документацию.
  • Реализацию нативного ARKit/ARCore кода.
  • Интеграцию с бэкендом (вашим или нашим).
  • Настройку publish profiles, code signing и push-уведомлений (APNs/FCM).
  • Развертывание в App Store и Google Play.
  • Обучение вашей команды работе с AR-модулем.
  • Поддержку в течение 3 месяцев после запуска.

Мы — команда мобильных разработчиков с 5+ лет опыта в AR, выполнили более 20 проектов по AR-навигации, включая outdoor и indoor решения для торговых центров и аэропортов. Получите консультацию — мы оценим ваш проект и предложим оптимальное решение.

Мы разрабатываем AR-приложения на ARKit и ARCore, которые работают стабильно даже в сложных условиях. Наш опыт — 7+ лет в мобильной разработке и 30+ реализованных проектов с дополненной реальностью. Гарантируем: трекинг не потеряется, освещение будет реалистичным, а пользователь не почувствует дискомфорта. Сертифицированные разработчики Apple и Google.

Почему трекинг теряется и как это исправить?

ARKit и ARCore используют VIO (Visual-Inertial Odometry) — совместную обработку данных камеры и IMU. Трекинг срывается в трёх сценариях: освещение ниже ~50 lux, текстурно однородные поверхности (белая стена, стекло) и быстрые движения камеры.

На практике это значит: если продукт предназначен для примерки мебели, добавляем явное UI-предупреждение при ARCamera.TrackingState.limited(.insufficientFeatures). Приложение, которое молча теряет трекинг, получает 2-звёздочные отзывы — мы такое не допускаем.

Обнаружение плоскостей настраивается через ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Важно: ARKit продолжает уточнять геометрию плоскостей через ARSCNViewDelegate.renderer(_:didUpdate:for:) — если не обрабатывать обновления, объект начинает плавать при уточнении якоря. Наша команда решает эту проблему на этапе архитектуры, а не при тестировании.

AR Foundation: кросс-платформа с нюансами

Unity AR Foundation — слой абстракции поверх ARKit и ARCore. Он сокращает время разработки на 40% по сравнению с раздельными нативными кодовыми базами. Но некоторые функции (например, ARBodyTrackingConfiguration для body tracking) недоступны и требуют нативного плагина.

Для React Native и Flutter прямой AR Foundation отсутствует. Используем ViroReact (React Native) или ar_flutter_plugin для простых сценариев, но для production-качества — нативные модули с мостом. Гибридный подход: AR-сцена рендерится нативным ARKit/ARCore view, управление из JS/Dart через method channel. Входит в нашу стандартную поставку.

Задача iOS Android Кросс-платформа
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore нет единого SDK
Persistence (сохранение якорей) ARKit World Map ARCore Cloud Anchors

Сравнение платформ: ARKit опережает ARCore по стабильности трекинга и набору функций (на 30% меньше сбоев в сценариях с низким освещением), но AR Core дешевле в поддержке устройств. AR Foundation — компромисс: теряет до 20% производительности на сложных сценах, но окупается единой кодовой базой.

Try-on: примерка товаров через AR

Примерка очков, украшений, косметики — отдельный класс задач. Здесь нужен face tracking, а не plane detection.

ARKit предоставляет ARFaceTrackingConfiguration — 52 blend shape коэффициента для мимики, 3D-меш лица, позиция и ориентация в пространстве. Работает только на устройствах с TrueDepth-камерой (iPhone с Face ID).

Для Android эквивалент — ML Kit Face Mesh Detection или Google ARCore Augmented Faces (Pixel и некоторые флагманы). Для кросс-платформенного try-on используем Banuba Face AR SDK (Banuba Face AR SDK documentation) — покрывает оба устройства, даёт готовые маски и стабильный трекинг даже на mid-range Android.

Качество try-on критически зависит от 3D-моделей товаров. Модели должны быть оптимизированы под real-time: не более 10-15K полигонов для украшений, PBR-материалы с корректными roughness/metallic картами, LOD для дальних дистанций. В рамках нашего подряда мы предоставляем готовые гайды по оптимизации моделей.

Как добиться реалистичного освещения в AR?

ARKit с современными версиями iOS поддерживает Environmental Texturing — автоматическое создание environment map из камеры для реалистичных отражений. Включается через ARWorldTrackingConfiguration.environmentTexturing = .automatic. Без этого металлические и стеклянные материалы выглядят пластиково.

ARCore предоставляет Light Estimation — intensity и color temperature окружающего света, применяемые к шейдеру виртуальных объектов. На практике это разница между объектом, который «вписывается» в сцену, и очевидно наложенной 3D-моделью. Мы гарантируем, что финальное изображение не выдаёт виртуальности.

Что входит в работу

  • Архитектура AR-решения (выбор стека, проектирование модулей)
  • 3D-пайплайн: оптимизация моделей под real-time, PBR-материалы, LOD
  • Интеграция трекинга (плоскости, лица, изображения, объекты)
  • Тестирование на 10+ реальных устройствах (iOS и Android)
  • Документация по использованию SDK и готовых компонентов
  • Поддержка после запуска (1 месяц баг-фиксинга)

Сроки и оценка

Простая AR-сцена с размещением одной 3D-модели на плоскости — 1–2 недели. Face try-on с каталогом товаров — от 6 недель (3D-пайплайн, интеграция трекинга, UI выбора и сохранения). Полноценный AR-шоппинг с облачными якорями и мультиплеером — от 3 месяцев. Оценим проект за 1 день — пишите, обсудим вашу AR-идею.