Η πλατφόρμα ARCore — η λύση της Google για επαυξημένη πραγματικότητα στο Android, που χρησιμοποιεί την κάμερα και τους αδρανειακούς αισθητήρες του smartphone για την παρακολούθηση της θέσης στο χώρο. Σύμφωνα με Google AR Developers, 2025, η πλατφόρμα υποστηρίζει Motion Tracking, Environmental Understanding και Light Estimation — τρεις βασικές τεχνολογίες για την τοποθέτηση εικονικών αντικειμένων σε πραγματικό περιβάλλον. Η διαπλατφορμική αρχιτεκτονική επιτρέπει στους προγραμματιστές να δημιουργούν εφαρμογές AR για Android, iOS, Unity και Unreal Engine με ενιαία βάση κώδικα.
Κύρια σημεία
ARCore — είναι η πλατφόρμα επαυξημένης πραγματικότητας της Google, που ανακοινώθηκε το 2018 ως διάδοχος του Project Tango σε ελαφρύτερη και πιο προσιτή μορφή. Σε αντίθεση με το Tango, το οποίο απαιτούσε εξειδικευμένους αισθητήρες βάθους, το ARCore λειτουργεί σε τυπικά smartphone Android, χρησιμοποιώντας μόνο την κάμερα και τους αδρανειακούς αισθητήρες (IMU).
Το ARCore χρησιμοποιεί τρεις βασικές τεχνολογίες: Motion Tracking για την παρακολούθηση της θέσης της συσκευής, Environmental Understanding για την ανίχνευση οριζόντιων και κάθετων επιπέδων και Light Estimation για την προσαρμογή του φωτισμού των εικονικών αντικειμένων στο πραγματικό περιβάλλον. Αυτές οι τρεις τεχνολογίες επιτρέπουν την τοποθέτηση AR αντικειμένων που φαίνονται φυσικά σε οποιαδήποτε επιφάνεια.
Σύμφωνα με το Google I/O 2024, το ARCore υποστηρίζεται σε περισσότερες από 1 δισεκατομμύριο συσκευές Android, συμπεριλαμβανομένων των smartphone 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 σε σκηνή AR και MotionEvent για διαχείριση αφής. Το Sceneform διαχειρίζεται αυτόματα τον κύκλο ζωής της συνεδρίας AR και την απελευθέρωση πόρων.
Το ARCore μπορεί να χάσει την παρακολούθηση σε ανεπαρκή φωτισμό, ομοιόμορφες επιφάνειες ή γρήγορες κινήσεις της συσκευής. Η κατάσταση παρακολούθησης είναι διαθέσιμη μέσω frame.getTrackingState() — τιμές TRACKING, PAUSED και STOPPED. Κατά τη μετάβαση σε PAUSED συνιστάται η παύση της απόδοσης και η εμφάνιση συστάσεων στον χρήστη: “Κινήστε τη συσκευή πιο αργά” ή “Πηγαίνετε σε πιο φωτεινό μέρος”.
Για αυτόματη ανάκτηση μετά από σφάλμα, το ARCore υποστηρίζει επανατοποθέτηση (relocalization) βάσει αποθηκευμένου χάρτη χαρακτηριστικών σημείων. Ο προγραμματιστής μπορεί να αποθηκεύσει τον χάρτη μέσω 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 με συνδέσμους cloud απαιτούν σύνδεση. Το Depth API και το Scene Mesh λειτουργούν πλήρως στη συσκευή χωρίς σύνδεση δικτύου.
Ναι, το ARCore μπορεί να χρησιμοποιηθεί απευθείας με OpenGL ES 3.1, με Unity ή Unreal Engine. Το Sceneform είναι η συνιστώμενη επιλογή για απλά έργα σε Kotlin, αλλά δεν είναι υποχρεωτικό. Για σύνθετες 3D σκηνές με ρεαλιστική φυσική είναι προτιμότερο να χρησιμοποιείτε μηχανές παιχνιδιών με υποστήριξη ARCore SDK.
ARCore είναι βελτιστοποιημένο για εσωτερικούς χώρους με επαρκή φωτισμό (100–500 lux). Σε εξωτερικούς χώρους κάτω από έντονο ήλιο, η ακρίβεια παρακολούθησης μπορεί να μειωθεί λόγω υπερέκθεσης της κάμερας. Για εργασία σε εξωτερικούς χώρους, η Google συνιστά τη χρήση του Street View Geometry API, το οποίο παρέχει χάρτες βάθους για αστικές τοποθεσίες.
Scene Viewer — είναι ένα έτοιμο στοιχείο UI Google για προβολή 3D μοντέλων σε AR χωρίς συγγραφή κώδικα, που λειτουργεί μέσω WebXR. Το ARCore είναι ένα πλήρες SDK για τη δημιουργία προσαρμοσμένης εμπειρίας AR με προγραμματιστικό έλεγχο σε όλες τις πτυχές της συνεδρίας, παρακολούθησης και απόδοσης.
Περίληψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης