منصة ARCore من Google للواقع المعزز على Android، تستخدم كamera وأجهزة الاستشعار بالقصور الذاتي للهاتف الذكي لتتبع الموقع في الفضاء. وفقًا Google AR Developers, 2025، تدعم المنصة Motion Tracking وEnvironmental Understanding وLight Estimation — ثلاث تقنيات أساسية لوضع الكائنات الافتراضية في البيئات الواقعية. الهندسة عبر المنصات تتيح للمطورين إنشاء تطبيقات الواقع المعزز لنظام Android وiOS وUnity وUnreal Engine بقاعدة تعليمات برمجية موحدة.
النقاط الرئيسية
ARCore هي منصة الواقع المعزز من Google، تم الإعلان عنها في 2018 كخليفة لمشروع Tango بشكل أخف وأكثر سهولة في الوصول. على عكس Tango الذي تطلب حساسات عمق متخصصة، يعمل ARCore على هواتف Android الذكية القياسية باستخدام الكاميرا وأجهزة الاستشعار بالقصور الذاتي (IMU) فقط.
يستخدم ARCore ثلاث تقنيات رئيسية: Motion Tracking لتتبع موقع الجهاز، Environmental Understanding لاكتشاف المستويات الأفقية والرأسية، وLight Estimation لضبط إضاءة الكائنات الافتراضية لتتناسب مع البيئة الواقعية. هذه التقنيات الثلاث تتيح وضع كائنات الواقع المعزز التي تبدو طبيعية على أي سطح.
وفقًا لـ Google I/O 2024، ARCore مدعوم على أكثر من مليار جهاز Android، بما في ذلك هواتف Samsung وXiaomi وHuawei وOnePlus وGoogle Pixel وغيرها. المنصة مدمجة مع Google Play Services for AR، مما يتيح تحديث ARCore عبر متجر Google Play بغض النظر عن إصدار Android.
عبر ستة إصدارات، شهد ARCore تطورًا كبيرًا: ARCore 1.0 — التتبع الأساسي واكتشاف المستويات؛ ARCore 1.2 — المستويات الرأسية والصور المعززة؛ ARCore 1.7 — Cloud Anchors للجلسات متعددة المستخدمين؛ ARCore 1.10 — Augmented Faces لتتبع تعابير الوجه.
ARCore 1.20+ يتضمن Scene Semantic Understanding — التعرف على فئات الكائنات (أرضية، سقف، حائط، أثاث، نبات، باب) عبر نموذج تعلم آلي من TensorFlow Lite على الجهاز. تتيح واجهة Street View Geometry API استخدام خرائط العمق من Google Street View للملاحة بالواقع المعزز في الهواء الطلق.
// تهيئة جلسة 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 هرتز)، بينما يصحح القياس البصري للأخطاء بناءً على تحليل النقاط المميزة من الكاميرا بتردد 30-60 هرتز. يوفر هذا النهج دقة تتبع تبلغ حوالي 1-2 سم في الظروف الثابتة.
تعمل عملية Environmental Understanding على ثلاث مراحل: أولاً، يجد ARCore نقاطًا مميزة في صورة الكاميرا، ثم يحدد مجموعات النقاط الواقعة على نفس المستوى ويقربها إلى مضلع. بعد التعرف على المستوى، ينشئ ARCore كائن Trackable من نوع Plane يتم تحديثه مع تلقي إطارات جديدة.
وفقًا لـ Google، ARCore يكتشف مستوى بحجم 10×10 سم على مسافة تصل إلى متر واحد من الكاميرا. للغرف المتوسطة (20 مترًا مربعًا)، يستغرق المسح الكامل للمستويات حوالي 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 مع ArcoreiOS 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.
يتضمن مشروع ARCore الأساسي: إنشاء Session وConfig، وإعداد SurfaceView لعرض الكاميرا، وبدء الجلسة عبر session.resume()، ومعالجة الإطارات عبر session.update(). لعرض الكائنات ثلاثية الأبعاد، يُستخدم Sceneform SDK (مكتبة Google القائمة على Filament) أو Unity/Unreal للمشاهد المعقدة.
توصي Google بـ Sceneform لتطبيقات Kotlin — فهو يوفر مكونات جاهزة: ModelRenderable لتحميل النماذج ثلاثية الأبعاد (OBJ، glTF، FBX)، وViewRenderable لتضمين Android View في مشهد الواقع المعزز، وMotionEvent لمعالجة اللمس. يدير Sceneform تلقائيًا دورة حياة جلسة الواقع المعزز وتحرير الموارد.
قد يفقد ARCore التتبع عند الإضاءة الضعيفة أو الأسطح الموحدة أو الحركات السريعة للجهاز. حالة التتبع متاحة عبر frame.getTrackingState() — القيم هي TRACKING وPAUSED وSTOPPED. عند الانتقال إلى PAUSED، يُوصى بإيقاف العرض مؤقتًا وعرض إرشادات للمستخدم: «حرّك الجهاز ببطء أكثر» أو «انتقل إلى مكان أكثر إضاءة».
لاستعادة تلقائية بعد العطل، يدعم ARCore إعادة التموضع بناءً على خريطة محفوظة للنقاط المميزة. يمكن للمطور حفظ الخريطة عبر session.serialize() واستعادتها عبر session.deserialize() — مفيد لتجارب الواقع المعزز طويلة الأمد حيث يعود المستخدم إلى نفس المساحة الفعلية. يستغرق استعادة الخريطة من 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 مدعوم على أكثر من مليار جهاز 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، لكنه ليس إلزاميًا. للمشاهد ثلاثية الأبعاد المعقدة مع فيزياء واقعية، من الأفضل استخدام محركات الألعاب مع دعم ARCore SDK.
ARCore محسّن للمساحات الداخلية ذات الإضاءة الكافية (100–500 لوكس). في الخارج تحت أشعة الشمس الساطعة، قد تنخفض دقة التتبع بسبب تعريض الكاميرا الزائد. للاستخدام الخارجي، توصي Google بواجهة Street View Geometry API التي توفر خرائط عمق للمواقع الحضرية.
Scene Viewer هو مكون واجهة مستخدم جاهز من Google لعرض النماذج ثلاثية الأبعاد في الواقع المعزز بدون كتابة تعليمات برمجية، يعمل عبر WebXR. ARCore هو SDK كامل لإنشاء تجارب واقع معزز مخصصة مع تحكم برمجي في جميع جوانب الجلسة والتتبع والعرض.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا