Die ARCore-Plattform — Googles Lösung für erweiterte Realität auf Android, die die Kamera und Inertialsensoren des Smartphones nutzt, um die Position im Raum zu verfolgen. Laut Google AR Developers, 2025 unterstützt die Plattform Motion Tracking, Environmental Understanding und Light Estimation — drei grundlegende Technologien zur Platzierung virtueller Objekte in realen Umgebungen. Die plattformübergreifende Architektur ermöglicht es Entwicklern, AR-Apps für Android, iOS, Unity und Unreal Engine mit einer einheitlichen Codebasis zu erstellen.
Wichtige Punkte
ARCore ist Googles Plattform für erweiterte Realität, die 2018 als Nachfolger von Project Tango in einer leichteren und zugänglicheren Form angekündigt wurde. Im Gegensatz zu Tango, das spezielle Tiefensensoren erforderte, funktioniert ARCore auf Standard-Android-Smartphones mit nur der Kamera und den Inertialsensoren (IMU).
ARCore verwendet drei Schlüsseltechnologien: Motion Tracking zur Verfolgung der Geräteposition, Environmental Understanding zur Erkennung horizontaler und vertikaler Ebenen und Light Estimation zur Anpassung der Beleuchtung virtueller Objekte an die reale Umgebung. Diese drei Technologien ermöglichen es, AR-Objekte zu platzieren, die auf jeder Oberfläche natürlich aussehen.
Laut Google I/O 2024 wird ARCore auf über 1 Milliarde Android-Geräten unterstützt, darunter Smartphones von Samsung, Xiaomi, Huawei, OnePlus, Google Pixel und anderen. Die Plattform ist in Google Play Services for AR integriert, sodass ARCore unabhängig von der Android-Version über den Google Play Store aktualisiert werden kann.
Über sechs Versionen hinweg hat ARCore eine bedeutende Entwicklung durchgemacht: ARCore 1.0 — grundlegende Verfolgung und Ebenenerkennung; ARCore 1.2 — vertikale Ebenen und Augmented Images; ARCore 1.7 — Cloud Anchors für Mehrspielersitzungen; ARCore 1.10 — Augmented Faces zur Gesichtsausdrucksverfolgung.
ARCore 1.20+ beinhaltet Scene Semantic Understanding — Erkennung von Objektkategorien (Boden, Decke, Wand, Möbel, Pflanze, Tür) durch ein TensorFlow Lite ML-Modell auf dem Gerät. Die Street View Geometry API ermöglicht die Nutzung von Google Street View Tiefenkarten für die AR-Navigation im Freien.
// Initialisieren einer ARCore-Sitzung
val session = Session(context)
val config = Config(session)
config.lightEstimationMode =
Config.LightEstimationMode.ENVIRONMENTAL_HDR
config.planeFindingMode =
Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL
session.configure(config)
// Frame-Verarbeitung
val frame = session.update()
val pointCloud = frame.acquirePointCloud()
val planes = session.getAllTrackables(
Plane::class.java
)
ARCore verwendet einen hybriden Ansatz: Das IMU (Trägheitsmessmodul) sagt die Geräteposition mit hoher Frequenz (bis zu 1000 Hz) voraus, während die visuelle Odometrie Fehler basierend auf der Analyse markanter Punkte der Kamera mit 30–60 Hz korrigiert. Dieser Ansatz bietet eine Verfolgungsgenauigkeit von etwa 1–2 Zentimetern unter stationären Bedingungen.
Der Environmental Understanding-Prozess funktioniert in drei Schritten: Zuerst findet ARCore markante Punkte im Kamerabild, dann identifiziert es Ansammlungen von Punkten, die auf derselben Ebene liegen, und approximiert sie zu einem Polygon. Nach der Ebenenerkennung erstellt ARCore ein Trackable-Objekt vom Typ Plane, das aktualisiert wird, sobald neue Frames eingehen.
Laut Google erkennt ARCore eine Ebene von 10x10 Zentimetern in einer Entfernung von bis zu 1 Meter von der Kamera. Für mittelgroße Räume (20 m²) dauert das vollständige Scannen von Ebenen etwa 2–4 Sekunden. Bei Verwendung der Depth API mit ToF-Sensorunterstützung verbessert sich die Erkennungsgenauigkeit um 40%.
Depth API ist eine ARCore-Technologie, die eine Tiefenkarte der Szene basierend auf der Stereoanalyse des Kamerabildes erstellt. Auf Geräten mit ToF-Sensor (Time-of-Flight) wird die Tiefenkarte sofort mit einer Genauigkeit von bis zu 2 cm erfasst. Auf Geräten ohne Tiefensensor verwendet die Depth API maschinelles Lernen, um die Tiefe aus einem einzelnen Frame zu schätzen, was eine Genauigkeit von etwa 10 cm bietet.
Scene Mesh ist ein dreidimensionales Netz der Umgebung, das ARCore in Echtzeit erstellt. Das Netz wird für Kollisionsphysik, Okklusion virtueller Objekte und Schattenwurf verwendet. Scene Mesh ist auf Geräten mit OpenGL ES 3.1 und Depth API-Unterstützung verfügbar und generiert bis zu 500.000 Polygone pro Frame.
// Abrufen der Tiefenkarte
val depthImage = frame.acquireDepthImage16Bits()
// Platzieren eines Objekts auf einer erkannten Ebene
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()
}
}
Obwohl ARCore und ARKit dieselben Aufgaben lösen — Positionsverfolgung, Ebenenerkennung und Beleuchtungsschätzung — unterscheiden sich ihre Ansätze und Ökosysteme. ARCore priorisiert plattformübergreifende Kompatibilität, während ARKit eine tiefe Integration mit Apple-Hardware nutzt.
Hauptunterschiede: ARCore funktioniert auf Android und iOS über das ARCore SDK, während ARKit nur auf iOS funktioniert. ARCore verwendet Cloud Anchors zur Synchronisation über Firebase, während ARKit ARWorldMap für den direkten Austausch zwischen Geräten verwendet. ARCore mit Depth API unterstützt ToF-Sensoren, während ARKit mit LiDAR Laserscannen mit bis zu 3 cm Genauigkeit bietet.
Laut Google-Vergleichstests 2024 ist die Tracking-Genauigkeit von ARCore auf Geräten mit Gyroskop und ToF-Sensor vergleichbar mit ARKit auf dem iPhone mit LiDAR — der Fehler übersteigt 2 cm bei einer Entfernung von 2 Metern nicht. Auf Geräten ohne ToF liegt ARCore hinter ARKit in der Initialisierungsgeschwindigkeit: 3 Sekunden gegenüber 0,5 Sekunden.
Die Wahl zwischen ARCore und ARKit hängt von der Zielgruppe ab: Wenn die App nur für iOS bestimmt ist, bietet ARKit eine bessere Leistung und Zugriff auf exklusive LiDAR-Funktionen. Wenn plattformübergreifende Unterstützung benötigt wird, ermöglicht ARCore mit dem ArcoreiOS SDK die Verwendung einer einheitlichen Codebasis mit minimalen Plattformunterschieden, wenn auch mit dem Verlust einiger hardwarespezifischer Fähigkeiten jeder Plattform.
| Merkmal | ARCore | ARKit |
|---|---|---|
| Plattform | Android + iOS + Unity/Unreal | Nur iOS |
| Tiefensensor | ToF (optional) | LiDAR (Pro-Modelle) |
| Synchronisation | Cloud Anchors (Firebase) | ARWorldMap (Multipeer) |
| Gesichtsverfolgung | Augmented Faces | Face Tracking (TrueDepth) |
| VIO-Genauigkeit | 1–3 cm | 0,5–1 cm |
Die ARCore-Integration beginnt mit dem Hinzufügen der Abhängigkeit für Google Play Services for AR in build.gradle: com.google.ar:core. Die App sollte die Verfügbarkeit von ARCore auf dem Gerät über ArCoreApk.checkAvailability() prüfen — wenn ARCore nicht installiert ist, den Benutzer auffordern, es aus dem Google Play Store zu installieren.
Ein grundlegendes ARCore-Projekt umfasst: Erstellen einer Session und Config, Einrichten eines SurfaceView für die Kameradarstellung, Starten der Sitzung über session.resume() und Verarbeiten von Frames über session.update(). Für das Rendern von 3D-Objekten wird das Sceneform SDK (Googles Bibliothek basierend auf Filament) oder Unity/Unreal für komplexe Szenen verwendet.
Google empfiehlt Sceneform für Kotlin-Apps — es bietet vorgefertigte Komponenten: ModelRenderable zum Laden von 3D-Modellen (OBJ, glTF, FBX), ViewRenderable zum Einbetten von Android Views in eine AR-Szene und MotionEvent zur Berührungsverarbeitung. Sceneform verwaltet automatisch den Lebenszyklus der AR-Sitzung und die Ressourcenfreigabe.
ARCore kann bei schlechter Beleuchtung, einfarbigen Oberflächen oder schnellen Gerätebewegungen die Verfolgung verlieren. Der Tracking-Status ist über frame.getTrackingState() verfügbar — die Werte sind TRACKING, PAUSED und STOPPED. Beim Übergang zu PAUSED wird empfohlen, das Rendern zu pausieren und dem Benutzer Hinweise anzuzeigen: „Bewegen Sie das Gerät langsamer“ oder „Gehen Sie an einen helleren Ort.“
Für die automatische Wiederherstellung nach einem Ausfall unterstützt ARCore die Relokalisierung basierend auf einer gespeicherten Karte markanter Punkte. Entwickler können die Karte über session.serialize() speichern und über session.deserialize() wiederherstellen — nützlich für langlebige AR-Erlebnisse, bei denen der Benutzer in denselben physischen Raum zurückkehrt. Die Kartenwiederherstellung dauert 1–2 Sekunden, sofern sich die Umgebung nicht wesentlich verändert hat.
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()
}
}
}
}
Häufig gestellte Fragen
ARCore wird auf über 1 Milliarde Android-Geräten unterstützt, darunter Google Pixel 2+, Samsung Galaxy S7+, Xiaomi Mi 8+, Huawei P20+, OnePlus 6+, Sony Xperia XZ2+ und viele andere. Die vollständige Liste der zertifizierten Geräte ist auf developers.google.com/ar/devices veröffentlicht.
Die grundlegenden ARCore-Funktionen — Motion Tracking und Environmental Understanding — benötigen kein Internet. Cloud Anchors und Augmented Images mit Cloud-Referenzen erfordern eine Verbindung. Depth API und Scene Mesh arbeiten vollständig auf dem Gerät ohne Netzwerkverbindung.
Ja, ARCore kann direkt mit OpenGL ES 3.1, mit Unity oder Unreal Engine verwendet werden. Sceneform ist die empfohlene Option für einfache Kotlin-Projekte, aber nicht zwingend erforderlich. Für komplexe 3D-Szenen mit realistischer Physik ist es besser, Game-Engines mit ARCore SDK-Unterstützung zu verwenden.
ARCore ist für Innenräume mit ausreichender Beleuchtung (100–500 Lux) optimiert. Im Freien bei hellem Sonnenlicht kann die Tracking-Genauigkeit aufgrund von Kameraüberbelichtung abnehmen. Für den Außeneinsatz empfiehlt Google die Street View Geometry API, die Tiefenkarten für städtische Standorte bereitstellt.
Scene Viewer ist eine vorgefertigte Google-UI-Komponente zum Betrachten von 3D-Modellen in AR ohne Code zu schreiben, die über WebXR funktioniert. ARCore ist ein vollwertiges SDK zur Erstellung benutzerdefinierter AR-Erlebnisse mit programmatischer Steuerung aller Aspekte der Sitzung, Verfolgung und Darstellung.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch