Платформа ARCore — Google-ово решење за проширену стварност на Android-у, које користи камеру и инерцијалне сензоре паметног телефона за праћење положаја у простору. Према Google AR Developers, 2025, платформа подржава Motion Tracking, Environmental Understanding и Light Estimation — три основне технологије за постављање виртуелних објеката у стварно окружење. Вишеплатформска архитектура омогућава програмерима да креирају AR апликације за Android, iOS, Unity и Unreal Engine са јединственом базом кода.
Главно
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 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 навигацију на отвореном.
// Иницијализација 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 користи хибридни приступ: IMU (инерцијални мерни модул) предвиђа положај уређаја високом фреквенцијом (до 1000 Hz), а визуелна одометрија исправља грешке на основу анализе карактеристичних тачака са камере фреквенцијом 30–60 Hz. Овај приступ обезбеђује прецизност праћења од око 1–2 центиметра у стационарним условима.
Процес Environmental Understanding ради у три фазе: прво ARCore проналази карактеристичне тачке (feature points) на слици са камере, затим одређује скупове тачака које леже на истој равни и апроксимира их у полигон. Након препознавања равни, ARCore креира Trackable објекат типа Plane, који се ажурира како пристижу нови оквири.
Према Google-у, ARCore одређује раван величине од 10x10 центиметара на удаљености до 1 метра од камере. За просечне просторије (соба 20 m²) потпуно скенирање равни траје око 2–4 секунде. При коришћењу Depth API са подршком за ToF сензор, прецизност препознавања се повећава за 40%.
Depth API — технологија ARCore-а која гради мапу дубине сцене на основу стерео анализе слике са камере. На уређајима са ToF сензором (Time-of-Flight) мапа дубине се добија тренутно са прецизношћу до 2 цм. На уређајима без мерача дубине Depth API користи машинско учење за процену дубине из једног оквира, што даје прецизност од око 10 цм.
Scene Mesh — тродимензионална мрежа окружења коју ARCore гради у реалном времену. Мрежа се користи за физику судара, оклузију виртуелних објеката и наношење сенки. Scene Mesh је доступан на уређајима са OpenGL ES 3.1 и подршком за Depth API, укључује до 500 хиљада полигона по оквиру.
// Добијање мапе дубине
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 користи дубоку интеграцију са 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 са ARCore iOS SDK-ом омогућава коришћење јединствене базе кода са минималним разликама платформе, мада уз губитак неких хардверских могућности сваке платформе.
| Карактеристика | ARCore | ARKit |
|---|---|---|
| Платформа | Android + iOS + Unity/Unreal | само iOS |
| Сензор дубине | ToF (опционо) | LiDAR (Pro модели) |
| Синхронизација | Cloud Anchors (Firebase) | ARWorldMap (Multipeer) |
| Праћење лица | Augmented Faces | Face Tracking (TrueDepth) |
| Прецизност VIO | 1–3 цм | 0.5–1 цм |
Интеграција 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() — ово је корисно за дуготрајна AR искуства где се корисник враћа у исти физички простор. Опоравак мапе траје 1–2 секунде, под условом да се окружење није значајно променило.
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 је подржан на преко 1 милијарди Android уређаја, укључујући Google Pixel 2+, Samsung Galaxy S7+, Xiaomi Mi 8+, Huawei P20+, OnePlus 6+, Sony Xperia XZ2+ и многе друге. Комплетна листа сертификованих уређаја објављена је на сајту developers.google.com/ar/devices.
Основне функције ARCore-а — Motion Tracking и Environmental Understanding — не захтевају интернет. Cloud Anchors и Augmented Images са облачним везама захтевају конекцију. Depth API и Scene Mesh раде у потпуности на уређају без повезивања на мрежу.
Да, ARCore се може користити директно са OpenGL ES 3.1, са Unity или Unreal Engine. Sceneform је препоручена опција за једноставне пројекте у Kotlin-у, али није обавезан. За сложене 3D сцене са реалистичном физиком боље је користити играчке погоне са подршком за ARCore SDK.
ARCore је оптимизован за затворене просторе са довољним осветљењем (100–500 лукс). На отвореном при јаком сунцу прецизност праћења може се смањити због преосветљености камере. За рад на отвореном Google препоручује коришћење Street View Geometry API-ја, који пружа мапе дубине за урбане локације.
Scene Viewer — је готова Google UI компонента за преглед 3D модела у AR-у без писања кода, која ради преко WebXR-а. ARCore је пуноправни SDK за креирање прилагођеног AR искуства са програмском контролом над свим аспектима сесије, праћења и рендеровања.
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође