ARCore platforması — Google-ın Android üçün genişləndirilmiş reallıq həlli, smartfonun kamerasından və inersial sensorlarından istifadə edərək məkanda mövqeyi izləyir. Google AR Developers, 2025-in məlumatlarına görə, platforma Motion Tracking, Environmental Understanding və Light Estimation — virtual obyektləri real mühitdə yerləşdirmək üçün üç əsas texnologiyanı dəstəkləyir. Platformalararası arxitektura tərtibatçılara Android, iOS, Unity və Unreal Engine üçün vahid kod bazası ilə AR tətbiqləri yaratmağa imkan verir.
Başlıca
ARCore — Google-ın 2018-ci ildə Project Tango-nun daha yüngül və əlçatan formatda davamçısı kimi elan edilmiş genişləndirilmiş reallıq platformasıdır. Xüsusi dərinlik sensorları tələb edən Tango-dan fərqli olaraq, ARCore yalnız kamera və inersial sensorlardan (IMU) istifadə edərək standart Android smartfonlarında işləyir.
ARCore üç əsas texnologiyadan istifadə edir: cihazın mövqeyini izləmək üçün Motion Tracking, üfüqi və şaquli müstəviləri aşkarlamaq üçün Environmental Understanding və virtual obyektlərin işıqlandırılmasını real mühitə uyğunlaşdırmaq üçün Light Estimation. Bu üç texnologiya istənilən səthdə təbii görünən AR obyektləri yerləşdirməyə imkan verir.
Google I/O 2024 məlumatlarına görə, ARCore Samsung, Xiaomi, Huawei, OnePlus, Google Pixel və digər smartfonlar daxil olmaqla 1 milyarddan çox Android cihazında dəstəklənir. Platforma Google Play Services for AR ilə inteqrasiya edilmişdir ki, bu da ARCore-u Android versiyasından asılı olmayaraq Google Play Store vasitəsilə yeniləməyə imkan verir.
Altı versiya ərzində ARCore əhəmiyyətli təkamül keçmişdir: ARCore 1.0 — əsas izləmə və müstəvi tanıma; ARCore 1.2 — şaquli müstəvilər və Augmented Images; ARCore 1.7 — çoxistifadəçi sessiyalar üçün Cloud Anchors; ARCore 1.10 — üz mimikasını izləmək üçün Augmented Faces.
ARCore 1.20+ cihazda TensorFlow Lite ML modeli vasitəsilə obyekt kateqoriyalarının (döşəmə, tavan, divar, mebel, bitki, qapı) tanınması olan Scene Semantic Understanding-i əhatə edir. Street View Geometry API açıq havada AR naviqasiyası üçün Google Street View dərinlik xəritələrindən istifadə etməyə imkan verir.
// ARCore sessiyasının işə salınması
val session = Session(context)
val config = Config(session)
config.lightEstimationMode =
Config.LightEstimationMode.ENVIRONMENTAL_HDR
config.planeFindingMode =
Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL
session.configure(config)
// Kadrın işlənməsi
val frame = session.update()
val pointCloud = frame.acquirePointCloud()
val planes = session.getAllTrackables(
Plane::class.java
)
ARCore hibrid yanaşmadan istifadə edir: IMU (inersial ölçü modulu) cihazın mövqeyini yüksək tezliklə (1000 Hz-ə qədər) proqnozlaşdırır, vizual odometriya isə 30–60 Hz tezlikdə kameradan xarakterik nöqtələrin analizi əsasında səhvləri düzəldir. Bu yanaşma stasionar şəraitdə təxminən 1–2 santimetr dəqiqliklə izləmə təmin edir.
Environmental Understanding prosesi üç mərhələdə işləyir: əvvəlcə ARCore kamera görüntüsündə xarakterik nöqtələri (feature points) tapır, sonra eyni müstəvidə yerləşən nöqtə qruplarını müəyyən edir və onları çoxbucaqlıya yaxınlaşdırır. Müstəvi tanındıqdan sonra ARCore yeni kadrlar gəldikcə yenilənən Plane tipli Trackable obyekti yaradır.
Google məlumatlarına görə, ARCore kameradan 1 metr məsafədə 10x10 santimetr ölçüsündə müstəviləri müəyyən edir. Orta ölçülü otaqlar (ərazi 20 m²) üçün müstəvilərin tam skan edilməsi təxminən 2–4 saniyə çəkir. ToF sensoru dəstəyi ilə Depth API istifadə edildikdə tanıma dəqiqliyi 40% artır.
Depth API — kameradan stereo görüntü analizi əsasında səhnənin dərinlik xəritəsini quran ARCore texnologiyasıdır. ToF (Time-of-Flight) sensoru olan cihazlarda dərinlik xəritəsi 2 sm dəqiqliklə ani olaraq əldə edilir. Dərinlik sensoru olmayan cihazlarda Depth API tək kadrdan dərinliyi qiymətləndirmək üçün maşın öyrənməsindən istifadə edir ki, bu da təxminən 10 sm dəqiqlik verir.
Scene Mesh — ARCore-un real vaxtda qurduğu üçölçülü ətraf mühit şəbəkəsidir. Şəbəkə toqquşma fizikası, virtual obyektlərin oklüzyası və kölgə salma üçün istifadə olunur. Scene Mesh OpenGL ES 3.1 və Depth API dəstəyi olan cihazlarda mövcuddur və kadr başına 500 min çoxbucaqlıya qədər əhatə edir.
// Dərinlik xəritəsinin alınması
val depthImage = frame.acquireDepthImage16Bits()
// Obyektin tanınmış müstəvidə yerləşdirilməsi
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 və ARKit eyni vəzifələri — mövqe izləmə, müstəvi tanıma və işıqlandırma qiymətləndirməsini həll etsə də, onların yanaşmaları və ekosistemləri fərqlidir. ARCore platformalararasılığa və uyğunluğa üstünlük verir, ARKit isə Apple avadanlığı ilə dərin inteqrasiyadan istifadə edir.
Əsas fərqlər: ARCore Android və iOS-da ARCore SDK vasitəsilə işləyir, ARKit — yalnız iOS-da. ARCore Firebase vasitəsilə sinxronizasiya üçün Cloud Anchors-dan istifadə edir, ARKit — birbaşa cihazlar arası mübadilə üçün ARWorldMap-dən. Depth API ilə ARCore ToF sensorlarını, LiDAR ilə ARKit isə 3 sm dəqiqliklə lazer skan edilməsini dəstəkləyir.
Google 2024 müqayisə testlərinə görə, giroskop və ToF sensoru olan cihazlarda ARCore izləmə dəqiqliyi LiDAR-lı iPhone-da ARKit ilə müqayisə edilə bilər — 2 metr məsafədə xəta 2 sm-dən çox deyil. ToF olmayan cihazlarda ARCore başlatma sürətinə görə ARKit-dən geri qalır: 3 saniyəyə qarşı 0,5 saniyə.
ARCore və ARKit arasında seçim hədəf auditoriyadan asılıdır: tətbiq yalnız iOS üçündürsə, ARKit daha yaxşı performans və LiDAR-ın eksklüziv funksiyalarına çıxış təmin edir. Hər iki platforma dəstəyi lazımdırsa, ARCore ARCore iOS SDK ilə minimal platforma fərqləri ilə vahid kod bazasından istifadə etməyə imkan verir, baxmayaraq ki, hər platformanın bəzi aparat imkanları itirilir.
| Xüsusiyyət | ARCore | ARKit |
|---|---|---|
| Platforma | Android + iOS + Unity/Unreal | yalnız iOS |
| Dərinlik sensoru | ToF (istəyə bağlı) | LiDAR (Pro modellər) |
| Sinxronizasiya | Cloud Anchors (Firebase) | ARWorldMap (Multipeer) |
| Üz izləmə | Augmented Faces | Face Tracking (TrueDepth) |
| VIO dəqiqliyi | 1–3 sm | 0,5–1 sm |
ARCore inteqrasiyası build.gradle faylına Google Play Services for AR asıllılığının əlavə edilməsi ilə başlayır: com.google.ar:core. Tətbiq ArCoreApk.checkAvailability() vasitəsilə cihazda ARCore-un mövcudluğunu yoxlamalıdır — ARCore quraşdırılmayıbsa, istifadəçiyə Google Play Store-dan quraşdırmağı təklif etməlidir.
Əsas ARCore layihəsinə daxildir: Session və Config yaradılması, kameranı göstərmək üçün SurfaceView-in konfiqurasiyası, session.resume() ilə sessiyanın başladılması və session.update() ilə kadrların işlənməsi. 3D obyektlərin render edilməsi üçün Sceneform SDK (Google-ın Filament əsaslı kitabxanası) və ya mürəkkəb səhnələr üçün Unity/Unreal istifadə olunur.
Google Kotlin tətbiqləri üçün Sceneform-u tövsiyə edir — o, hazır komponentlər təmin edir: 3D modelləri yükləmək üçün ModelRenderable (OBJ, glTF, FBX), AR səhnəsinə Android View yerləşdirmək üçün ViewRenderable və toxunuşları idarə etmək üçün MotionEvent. Sceneform AR sessiyasının həyat dövrünü və resursların sərbəst buraxılmasını avtomatik idarə edir.
ARCore zəif işıqlandırma, təkrəngli səthlər və ya cihazın sürətli hərəkətləri zamanı izləməni itirə bilər. İzləmə vəziyyəti frame.getTrackingState() vasitəsilə əldə edilir — TRACKING, PAUSED və STOPPED dəyərləri. PAUSED vəziyyətinə keçərkən renderinqi dayandırmaq və istifadəçiyə „Cihazı daha yavaş hərəkət etdirin” və ya „Daha işıqlı yerə keçin” kimi tövsiyələr göstərmək tövsiyə olunur.
Xətadan sonra avtomatik bərpa üçün ARCore saxlanılmış xarakterik nöqtə xəritəsi əsasında relokalizasiyanı dəstəkləyir. Tərtibatçı xəritəni session.serialize() ilə saxlaya və session.deserialize() ilə bərpa edə bilər — bu, istifadəçinin eyni fiziki məkana qayıtdığı uzunmüddətli AR təcrübəsi üçün faydalıdır. Xəritənin bərpası ətraf mühitin əhəmiyyətli dəyişməməsi şərti ilə 1–2 saniyə çəkir.
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()
}
}
}
}
Tez-tez verilən suallar
ARCore Google Pixel 2+, Samsung Galaxy S7+, Xiaomi Mi 8+, Huawei P20+, OnePlus 6+, Sony Xperia XZ2+ və bir çox digərləri daxil olmaqla 1 milyarddan çox Android cihazında dəstəklənir. Sertifikatlaşdırılmış cihazların tam siyahısı developers.google.com/ar/devices saytında dərc edilmişdir.
ARCore-un əsas funksiyaları — Motion Tracking və Environmental Understanding — internet tələb etmir. Cloud Anchors və bulud keçidləri olan Augmented Images bağlantı tələb edir. Depth API və Scene Mesh şəbəkəyə qoşulmadan tamamilə cihazda işləyir.
Bəli, ARCore birbaşa OpenGL ES 3.1 ilə, Unity və ya Unreal Engine ilə istifadə edilə bilər. Sceneform Kotlin-də sadə layihələr üçün tövsiyə olunan seçimdir, lakin məcburi deyil. Realistik fizikaya malik mürəkkəb 3D səhnələr üçün ARCore SDK dəstəyi olan oyun mühərriklərindən istifadə etmək daha yaxşıdır.
ARCore kifayət qədər işıqlandırması olan qapalı məkanlar üçün optimallaşdırılmışdır (100–500 lüks). Açıq havada parlaq günəş altında kameranın həddindən artıq işıqlanması səbəbindən izləmə dəqiqliyi azala bilər. Açıq havada iş üçün Google şəhər lokalizasiyaları üçün dərinlik xəritələri təmin edən Street View Geometry API-dən istifadə etməyi tövsiyə edir.
Scene Viewer — kodsuz AR-də 3D modellərə baxmaq üçün WebXR vasitəsilə işləyən hazır Google UI komponentidir. ARCore sessiyanın, izləmənin və renderinqin bütün aspektləri üzərində proqram nəzarəti ilə fərdi AR təcrübəsi yaratmaq üçün tam hüquqlu SDK-dır.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun