ARCore: что это такое, возможности и технология дополненной реальности

Автор: IT Sectr Опубликовано: 2026-03-25 Время чтения: 8 мин

Платформа ARCore — решение Google для дополненной реальности на Android, использующее камеру и инерциальные датчики смартфона для отслеживания положения в пространстве. По данным Google AR Developers, 2025, платформа поддерживает Motion Tracking, Environmental Understanding и Light Estimation — три базовые технологии для размещения виртуальных объектов в реальном окружении. Кроссплатформенная архитектура позволяет разработчикам создавать AR-приложения для Android, iOS, Unity и Unreal Engine с единой кодовой базой.

Главное

  • ARCore — платформа от Google для дополненной реальности на Android, представленная в 2018 году.
  • Motion Tracking — технология отслеживания движения устройства на основе IMU и анализа изображения.
  • Environmental Understanding — распознавание плоскостей, границ и рельефа поверхностей.
  • Cloud Anchors — механизм синхронизации AR-объектов между несколькими устройствами через облако.
  • ARCore SDK доступен для Android (Kotlin/Java), iOS, Unity и Unreal Engine.

Что такое ARCore?

ARCore — это платформа дополненной реальности от Google, анонсированная в 2018 году как преемник Project Tango в более лёгком и доступном формате. В отличие от Tango, который требовал специализированные сенсоры глубины, ARCore работает на стандартных Android-смартфонах, используя только камеру и инерциальные датчики (IMU).

ARCore использует три ключевые технологии: Motion Tracking для отслеживания положения устройства, Environmental Understanding для обнаружения горизонтальных и вертикальных плоскостей и Light Estimation для корректировки освещения виртуальных объектов под реальное окружение. Эти три технологии позволяют размещать AR-объекты, которые выглядят естественно на любой поверхности.

По данным Google I/O 2024, ARCore поддерживается на более чем 1 миллиарде Android-устройств, включая смартфоны Samsung, Xiaomi, Huawei, OnePlus, Google Pixel и других. Платформа интегрирована с Google Play Services for AR, что позволяет обновлять ARCore через Google Play Store независимо от версии Android.

Эволюция ARCore

За шесть версий ARCore прошёл значительную эволюцию: ARCore 1.0 — базовое отслеживание и распознавание плоскостей; ARCore 1.2 — вертикальные плоскости и Augmented Images; ARCore 1.7 — Cloud Anchors для многопользовательских сессий; ARCore 1.10 — Augmented Faces для отслеживания мимики лица.

ARCore 1.20+ включает Scene Semantic Understanding — распознавание категорий объектов (пол, потолок, стена, мебель, растение, дверь) через ML-модель TensorFlow Lite на устройстве. Street View Geometry API позволяет использовать карты глубины Google Street View для AR-навигации на открытом воздухе.

kotlin
// Инициализация ARCore сессии
val session = Session(context)
val config = Config(session)
config.lightEstimationMode =
    Config.LightEstimationMode.ENVIRONMENTAL_HDR
config.planeFindingMode =
    Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL
session.configure(config)

// Обработка кадра
val frame = session.update()
val pointCloud = frame.acquirePointCloud()
val planes = session.getAllTrackables(
    Plane::class.java
)

Как работает ARCore

ARCore использует гибридный подход: IMU (инерциальный измерительный модуль) предсказывает положение устройства с высокой частотой (до 1000 Гц), а визуальная одометрия корректирует ошибки на основе анализа характерных точек с камеры с частотой 30–60 Гц. Этот подход обеспечивает точность отслеживания около 1–2 сантиметров в стационарных условиях.

Процесс Environmental Understanding работает в три этапа: сначала ARCore находит характерные точки (feature points) на изображении с камеры, затем определяет скопления точек, лежащих на одной плоскости, и аппроксимирует их в полигон. После распознавания плоскости ARCore создаёт Trackable-объект типа Plane, который обновляется по мере получения новых кадров.

По данным Google, ARCore определяет плоскость размером от 10x10 сантиметров на расстоянии до 1 метра от камеры. Для средних помещений (комната 20 м²) полное сканирование плоскостей занимает около 2–4 секунд. При использовании Depth API с поддержкой ToF-сенсора точность распознавания повышается на 40%.

Depth API и Scene Mesh

Depth API — технология ARCore, которая строит карту глубины сцены на основе стереоанализа изображения с камеры. На устройствах с ToF-сенсором (Time-of-Flight) карта глубины получается мгновенно с точностью до 2 см. На устройствах без глубиномера Depth API использует машинное обучение для оценки глубины по одному кадру, что даёт точность около 10 см.

Scene Mesh — трёхмерная сетка окружения, которую ARCore строит в реальном времени. Сетка используется для физики столкновений, окклюзии виртуальных объектов и наложения теней. Scene Mesh доступен на устройствах с OpenGL ES 3.1 и поддержкой Depth API, включает до 500 тысяч полигонов на кадр.

kotlin
// Получение карты глубины
val depthImage = frame.acquireDepthImage16Bits()

// Размещение объекта на распознанной плоскости
val hitResult = frame.hitTest(x, y)
    .firstOrNull { it.trackable is Plane }

hitResult?.let { result ->
    val anchor = session.createAnchor(
        result.hitPose
    )
    val model = ModelRenderable.builder()
        .setSourceId(R.raw.my_model)
        .build()
        .exceptionally { null }

    AnchorNode(anchor).apply {
        this.renderable = model.get()
    }
}

ARCore и ARKit: сравнение

Хотя ARCore и ARKit решают одни и те же задачи — отслеживание положения, распознавание плоскостей и оценку освещения — их подходы и экосистемы различаются. ARCore отдаёт приоритет кроссплатформенности и совместимости, тогда как ARKit использует глубокую интеграцию с аппаратным обеспечением Apple.

Ключевые отличия: ARCore работает на Android и iOS через ARCore SDK, ARKit — только на iOS. ARCore использует Cloud Anchors для синхронизации через Firebase, ARKit — ARWorldMap для прямого обмена между устройствами. ARCore с Depth API поддерживает ToF-сенсоры, ARKit с LiDAR — лазерное сканирование с точностью до 3 см.

По данным сравнительных тестов Google 2024, точность отслеживания ARCore на устройствах с гироскопом и ToF-сенсором сопоставима с ARKit на iPhone с LiDAR — погрешность не превышает 2 см на расстоянии 2 метров. На устройствах без ToF ARCore уступает ARKit по скорости инициализации: 3 секунды против 0.5 секунды.

Выбор между ARCore и ARKit зависит от целевой аудитории: если приложение предназначено только для iOS — ARKit даёт лучшую производительность и доступ к эксклюзивным функциям LiDAR. Если нужна поддержка обеих платформ — ARCore с ArcoreiOS SDK позволяет использовать единую кодовую базу с минимальными платформенными различиями, хотя с потерей некоторых аппаратных возможностей каждой платформы.

ХарактеристикаARCoreARKit
ПлатформаAndroid + iOS + Unity/UnrealiOS только
Датчик глубиныToF (опционально)LiDAR (Pro модели)
СинхронизацияCloud Anchors (Firebase)ARWorldMap (Multipeer)
Отслеживание лицаAugmented FacesFace Tracking (TrueDepth)
Точность VIO1–3 см0.5–1 см

Интеграция ARCore в приложение

Интеграция ARCore начинается с добавления зависимости Google Play Services for AR в build.gradle: com.google.ar:core. Приложение должно проверить доступность ARCore на устройстве через ArCoreApk.checkAvailability() — если ARCore не установлен, предложить пользователю установить его из Google Play Store.

Базовый проект ARCore включает: создание Session и Config, настройку SurfaceView для отображения камеры, запуск сессии через session.resume() и обработку кадров через session.update(). Для рендеринга 3D-объектов используется Sceneform SDK (библиотека Google на основе Filament) или Unity/Unreal для сложных сцен.

Google рекомендует Sceneform для Kotlin-приложений — он предоставляет готовые компоненты: ModelRenderable для загрузки 3D-моделей (OBJ, glTF, FBX), ViewRenderable для встраивания Android View в AR-сцену и MotionEvent для обработки касаний. Sceneform автоматически управляет жизненным циклом AR-сессии и освобождением ресурсов.

Обработка сбоев отслеживания

ARCore может терять отслеживание при недостаточном освещении, однотонных поверхностях или быстрых движениях устройства. Состояние отслеживания доступно через frame.getTrackingState() — значения TRACKING, PAUSED и STOPPED. При переходе в PAUSED рекомендуется приостанавливать рендеринг и показывать пользователю рекомендации: "Медленнее перемещайте устройство" или "Перейдите в более освещённое место".

Для автоматического восстановления после сбоя ARCore поддерживает релокализацию на основе сохранённой карты характерных точек. Разработчик может сохранять карту через session.serialize() и восстанавливать через session.deserialize() — это полезно для long-running AR-опыта, где пользователь возвращается в то же физическое пространство. Восстановление карты занимает 1–2 секунды при условии, что окружение не изменилось существенно.

kotlin
class ARCoreActivity : AppCompatActivity() {

    private lateinit var session: Session

    override fun onResume() {
        super.onResume()
        when (ArCoreApk.getInstance()
            .checkAvailability(this)
        ) {
            ArCoreApk.Availability.SUPPORTED_INSTALLED -> {
                session = Session(this)
                session.resume()
            }
            else -> {
                showInstallPrompt()
            }
        }
    }
}

Часто задаваемые вопросы

Какие устройства поддерживают ARCore?

ARCore поддерживается на более чем 1 миллиарде Android-устройств, включая Google Pixel 2+, Samsung Galaxy S7+, Xiaomi Mi 8+, Huawei P20+, OnePlus 6+, Sony Xperia XZ2+ и многие другие. Полный список сертифицированных устройств опубликован на сайте developers.google.com/ar/devices.

Нужен ли интернет для работы ARCore?

Базовые функции ARCore — Motion Tracking и Environmental Understanding — не требуют интернета. Cloud Anchors и Augmented Images с облачными ссылками требуют соединения. Depth API и Scene Mesh работают полностью на устройстве без подключения к сети.

Можно ли создавать AR-приложения без Sceneform?

Да, ARCore можно использовать с OpenGL ES 3.1 напрямую, с Unity или Unreal Engine. Sceneform — рекомендуемый вариант для простых проектов на Kotlin, но он не обязателен. Для сложных 3D-сцен с реалистичной физикой лучше использовать игровые движки с поддержкой ARCore SDK.

Как ARCore работает в помещении и на улице?

ARCore оптимизирован для помещений с достаточным освещением (100–500 люкс). На улице при ярком солнце точность отслеживания может снижаться из-за пересвета камеры. Для наружной работы Google рекомендует использовать Street View Geometry API, предоставляющий карты глубины для городских локаций.

Чем ARCore отличается от Scene Viewer?

Scene Viewer — это готовый UI-компонент Google для просмотра 3D-моделей в AR без написания кода, работающий через WebXR. ARCore — полноценный SDK для создания кастомного AR-опыта с программным управлением всеми аспектами сессии, отслеживания и рендеринга.

Итоги

  • ARCore — кроссплатформенная AR-платформа от Google, работающая на Android и iOS.
  • Motion Tracking использует гибрид IMU и визуальной одометрии для точного позиционирования.
  • Cloud Anchors обеспечивают многопользовательские AR-сессии с синхронизацией через Firebase.
  • Depth API строит карту глубины сцены — программно или через ToF-сенсор.
  • Sceneform — рекомендуемый SDK для создания AR-приложений на Kotlin с минимальным кодом.
  • Совместимость — более 1 миллиарда Android-устройств с сертификацией ARCore.
  • Выбор между ARCore и ARKit зависит от целевой платформы и требований к точности.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также