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 знаходить характерні точки на зображенні з камери, потім визначає скупчення точок, що лежать на одній площині, та апроксимує їх у полігон. Після розпізнавання площини 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/UnrealЛише iOS
Датчик глибини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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

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