البرنامج التعليمي: مشاركة نقاط الارتساء المكانية عبر الجلسات والأجهزة

Azure Spatial Anchors هي خدمة مطور عبر الأنظمة الأساسية يمكنك من خلالها إنشاء تجارب واقع مختلط باستخدام الكائنات التي تستمر في موقعها عبر الأجهزة بمرور الوقت.

في هذا البرنامج التعليمي، يمكنك استخدام Azure Spatial Anchors لإنشاء نقاط الارتساء في أثناء جلسة عمل واحدة ومن ثَم تحديد موقعها على نفس الجهاز أو جهاز آخر. يمكن كذلك أن تكون ذات نقاط الارتساء موجودة بواسطة أجهزة متعددة في نفس المكان وفي نفس الوقت.

Animation showing spatial anchors that are created with a mobile device and used with a different device over the course of days.

ستتعلم في هذه البرنامج التعليمي كيفية:

  • توزيع تطبيق ويب ASP.NET Core في Azure حيث يمكنك استخدامه لمشاركة نقاط الارتساء وتخزينها في الذاكرة لفترة زمنية محددة.
  • تكوين مشهد AzureSpatialAnchorsLocalSharedDemo ضمن نموذج Unity من التشغيل السريع للاستفادة من تطبيق الويب Sharing Anchors.
  • توزيع نقاط الارتساء وتشغيلها إلى جهاز واحد أو أكثر.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

المتطلبات الأساسية

قبل البدء في هذا البرنامج التعليمي، تأكد من أنك قد استوفيت المتطلبات الأساسية التالية:

  • يُرجى الاطلاع على نظرة عامة على Azure Spatial Anchors .
  • إنجاز أحد قوالب التشغيل السريع لمدة 5 دقائق.

    إشعار

    لا يعرض التشغيل السريع لـ Android/ NDK وiOS/ Swift حالياً القدرات الموضحة في هذا البرنامج التعليمي.

  • معرفة أساسية بأي مما يلي:
    • ARCore إذا كنت تستخدم Android.
    • ARKit إذا كنت تستخدم iOS.
  • حاسوب Windows مع نسخة Visual Studio 2019 أو نسخة أحدث، وحمل عمل تطوير ASP.NET وشبكة الإنترنت.
  • .NET Core 3.1 SDK.
  • واحد أو أكثر من الأجهزة التالية لنشر وتشغيل التطبيق من عليها: HoloLens أو HoloLens 2، أو iOS أو Android.

إشعار

ستتمكن من استخدام Unity وتطبيق ويب ASP.NET Core في هذا البرنامج التعليمي، ولكن النهج هنا هو تقديم مثال على كيفية مشاركة معرفات Azure Spatial Anchors عبر الأجهزة الأخرى. يمكنك استخدام لغات أخرى وتقنيات الخلفية لتحقيق نفس الهدف.

إنشاء مورد Spatial Anchors

انتقل إلى مدخل Azure.

في الجزء الأيسر، حدد Create a resource.

استخدم مربع البحث للبحث عن Spatial Anchors.

Screenshot showing the results of a search for Spatial Anchors.

حدد Spatial Anchors، ثم حدد Create.

في جزء Spatial Anchors Account قم بتنفيذ ما يلي:

  • أدخل اسماً فريداً للمورد باستخدام أحرف أبجدية رقمية عادية.

  • قم بتحديد الاشتراك الذي تريد إرفاق المورد به.

  • إنشاء مجموعة الموارد عن طريق تحديد Create new. قم بتسميتها myResourceGroup، ثم حدد OK.

    مجموعة الموارد هي حاوية منطقية يتم فيها نشر موارد Azure وإدارتها، مثل تطبيقات الويب وقواعد البيانات وحسابات التخزين. على سبيل المثال، يمكنك اختيار حذف مجموعة الموارد بأكملها في خطوة واحدة بسيطة لاحقاً.

  • قم بتحديد موقع (منطقة) لوضع المورد فيه.

  • حدد Create لبدء إنشاء المورد.

Screenshot of the Spatial Anchors pane for creating a resource.

بعد إنشاء المورد، يظهر مدخل Microsoft Azure اكتمال عملية النشر.

Screenshot showing that the resource deployment is complete.

حدِّد الانتقال إلى المورد. يمكنك الآن أن تعرض خصائص المورد.

نسخ قيمة Account ID للمورد إلى محرر النص لاستخدامها لاحقا.

Screenshot of the resource properties pane.

أيضاً قم بنسخ قيمة Account Domain للمورد إلى محرر النص لاستخدامها لاحقا.

Screenshot showing the resource's account domain value.

ضمن "Settings"، حددAccess key. نسخ قيمتي Primary key وAccount Key إلى محرر النص لاستخدامهما لاحقا.

Screenshot of the Keys pane for the account.

تنزيل نموذج المشروع + استيراد SDK

استنساخ مستودع العينات

نسخ مستودع العينات بتشغيل الأوامر التالية:

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

استيراد ASA SDK

اتبع الإرشادات "here" لتنزيل واستيراد حزم ASA SDK المطلوبة لمنصة HoloLens.

توزيع خدمة Sharing Anchors

إشعار

في هذا البرنامج التعليمي، سنستخدم المستوى المجاني من Azure App Service. سيتم انتهاء مهلة المستوى المجاني بعد 20 دقيقة من عدم النشاط وإعادة تعيين ذاكرة التخزين المؤقت للذاكرة.

افتح Visual Studio، ثم افتح المشروع في المجلد Sharing\SharingServiceSample.

افتح معالج النشر

في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع SharingService، ثم حدد Publish....

يبدأ معالج النشر عمله.

  1. حدد Target Azure>Next.
  2. حدد Specific Target Azure App Service (Windows)>Next
  3. قم بتسجيل الدخول إلى بوابة Azure.
  4. حدد الأخضر "+" لإنشاء Azure App Service

الإعدادات App Service

الإعدادات القيمة المقترحة ‏‏الوصف‬
الاسم myASASharingService امنح الخدمة اسما فريدا
اسم الاشتراك حدد اشتراك Azure المفضل لديك
مجموعة الموارد myResourceGroup أو حدد مجموعة موجودة مجموعة الموارد هي حاوية منطقية يتم فيها نشر موارد Azure وإدارتها، مثل تطبيقات الويب وقواعد البيانات وحسابات التخزين. على سبيل المثال، يمكنك اختيار حذف مجموعة الموارد بأكملها في خطوة واحدة بسيطة لاحقاً.
خطة الاستضافة حدد جديد... وشاهد الجدول أدناه تحددخطة خدمة تطبيقاتموقع مزرعة خوادم الويب التي تستضيف تطبيقك، وحجمها، ومزاياها. يمكنك توفير المال عند استضافة تطبيقات متعددة عن طريق تكوين تطبيقات الويب لمشاركة خطة App Service واحدة. تحدد خطط App Service ما يلي:
  • منطقة (على سبيل المثال: شمال أوروبا أو شرق الولايات المتحدة أو جنوب شرق آسيا)
  • حجم العنصر المثيل (صغير أو متوسط أو كبير)
  • حجم المقياس (1 إلى 20 مثيلًا)
  • SKU (مجاني أو مشترك أو أساسي أو قياسي أو متميز)

الإعدادات خطة الاستضافة

الإعدادات القيمة المقترحة ‏‏الوصف
خطة الاستضافة MySharingServicePlan امنح خطة الاستضافة اسما فريدا
الموقع غرب الولايات المتحدة مركز البيانات حيث تتم استضافة تطبيق الويب اختر موقعا أقرب إلى الموقع الفعلي الذي سيتم استخدام تطبيقك فيه
الحجم مجاني إن مستوى التسعير هو ما يحدد ميزات الاستضافة
  1. حدد Create لإنشاء App Service
  2. بمجرد إنشاء خدمة التطبيق، حددها في قائمة "مثيلات خدمة التطبيقات" وحدد إنهاء
  3. في علامة التبويب SharingService: Publish حدد Publish

بمجرد نشر تطبيق ويب ASP.NET Core إلى Azure، يمكنك الانتقال إلى https://<your_app_name>.azurewebsites.net الارتباط الموجود بجانب الموقع أو النقر فوقه: في علامة التبويب SharingService: Publish . انسخ عنوان URL هذا إلى محرر نص لاستخدامه لاحقا.

Screenshot of a published ASP.NET web app in Azure.

تكوين + توزيع نموذج التطبيق

فتح المشروع

في الوحدة، افتح المشروع في مجلد Unity. قد يطالبك Unity بالفرق بين الإصدار في المشروع والإصدار المثبت على جهازك. هذا التحذير مقبول، طالما أن إصدار Unity Editor الخاص بك أحدث من الإصدار الذي تم إنشاء المشروع به. إذا كان إصدارك أحدث، فحدد Continue. أما إذا كان إصدارك أقدم من الإصدار الذي يحتاجه المشروع، فحدد Quit، وقم بترقية محرر Unity Editor لديك.

Screenshot of the Unity pane.

الإعدادات إنشاء الإعداد

افتح إعدادات البناء عن طريق تحديد إعدادات> إنشاء الملف.

في قسم "Platform"، حدد "Universal Windows Platform". قم بتغيير "Target Device" إلى "HoloLens".

حدد "Switch Platform" لتغيير النظام الأساسي إلى "Universal Windows Platform". قد تطالبك الوحدة بتثبيت مكونات دعم UWP إذا كانت مفقودة.

Screenshot of the Unity Build Settings pane - HoloLens

أغلقنافذة إعدادات البناء.

تكوين معلومات الحساب

الخطوة التالية هي تكوين التطبيق لاستخدام معلومات حسابك. قمت بنسخ قيم مفتاح الحساب،معرف الحساب ID، وقيم نطاق الحساب إلى محرر نصوص في وقت سابق، في قسم "إنشاء مورد روابط مكانية".

في جزء المشروع، انتقل إلى Assets\AzureSpatialAnchors.SDK\Resources.

حدد SpatialAnchorConfig. في جزء المفتش، أدخل Account Key كقيمة مفتاح حساب الروابط المكانية، وAccount ID كقيمة معرف حساب الروابط المكانية، وAccount Domainكقيمة نطاق حساب الروابط المكانية.

افتح المشهد المسمى AzureSpatialAnchorsLocalSharedDemo الموجود في Assets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo بالنقر المزدوج فوقه في جزء المشروع

في جزء Project، انتقل إلى Assets\AzureSpatialAnchors.Examples\Resources.

حدد SpatialAnchorSamplesConfig. بعد ذلك، في جزء Inspector ، أدخل Sharing Anchors Service عنوان URL (من نشر Azure لتطبيق الويب ASP.NET) كقيمة ل Base Sharing Url. ألحق عنوان URL ب /swagger/api/anchors. يجب أن يبدو كما يلي: https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

احفظ المشهد عن طريق تحديد File>Save.

تصدير + نشر تطبيق HoloLens

افتح إعدادات البناء عن طريق تحديد إعدادات> إنشاء الملف.

ضمن Scenes In Build، تأكد من وجود علامة اختيار بجانب جميع المشاهد.

حدد إنشاء. في مربع الحوار، حدد مجلداً لتصدير مشروع HoloLens Visual Studio فيه.

عند اكتمال التصدير، سيظهر مجلد يحتوي على مشروع HoloLens المُصدَّر.

في المجلد، انقر نقراً مزدوجاً فوق HelloAR U3D.sln لفتح المشروع في Visual Studio.

غيّر "Solution Configuration" إلى "Release"، وقم بتغيير "Solution Platform" إلى x86، وحدد "Device" من النشر خيارات الهدف.

إذا كنت تستخدم HoloLens 2، فاستخدم ARM64كنظام حل أساسي،بدلاً من x86.

Visual Studio configuration

قم بتشغيل جهاز HoloLens وتسجيل الدخول وتوصيل الجهاز بجهاز الكمبيوتر باستخدام كابل USB.

حدد "Debug"> بدء التصحيح لنشر تطبيقك وبدء التصحيح.

تشغيل التطبيق.

في التطبيق، حدد LocalSharedDemo باستخدام الأسهم، ثم اضغط على الزر Go! لتشغيل العرض التوضيحي. اتبع التعليمات لوضع المرساة واستدعائها.

باستخدام Create &Share Anchor، يمكنك إنشاء ارتساء وحفظه في خدمة المشاركة. في المقابل، ستحصل على معرّف له يمكنك استخدامه لاسترداده من خدمة المشاركة. يمكنك بعد ذلك تشغيل السيناريو الثاني، تحديد موقع الارتساء المشترك، إما من جهازك أو من جهاز آخر.

باستخدام تحديد موقع الارتساء المشترك، يمكنك تحديد موقع نقاط الارتساء المشتركة مسبقا عن طريق إدخال المعرف المذكور سابقا. بعد اختيار السيناريو الخاص بك، سيرشدك التطبيق بمزيد من الإرشادات. على سبيل المثال، سيُطلب منك تحريك جهازك في مكان آخر لجمع معلومات عن البيئة. في وقت لاحق، ستضع نقطة ارتساء في العالم، وانتظر حتى يتم حفظها، وابدأ جلسة جديدة، ثم حدد موقعها.

تنظيف الموارد

في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تكن تتوقع أن تحتاج إلى هذه الموارد في المستقبل، يمكنك حذفها عن طريق حذف مجموعة الموارد.

من قائمة مدخل Microsoft Azure أو من Home، حدد Resource groups. بعد ذلك، في صفحة مجموعات الموارد، حدد "myResourceGroup".

في صفحة myResourceGroup، تأكد من أن الموارد المدرجة هي التي تريد حذفها.

حدد حذف مجموعة الموارد واكتب myResourceGroup في مربع النص للتأكيد، ثم حدد حذف.

الخطوات التالية

في هذا البرنامج التعليمي، قمت بتوزيع تطبيق ويب برمجية ASP.NET في Azure، وقمت بتكوين تطبيق Unity وتوزيعه. لقد أنشأت نقاط الارتساء المكانية مع التطبيق، وشاركتها مع أجهزة أخرى باستخدام تطبيق الويب برمجة ASP.NET.

يمكنك تحسين تطبيق الويب برمجة ASP.NET الخاص بك بحيث يستخدم Azure Cosmos DB للاستمرار في تخزين معرفات الارتساء المكانية المشتركة. بإضافة دعم Azure Cosmos DB، يمكنك الحصول على تطبيق الويب برمجة ASP.NET لإنشاء نقاط الارتساء اليوم. بعد ذلك، باستخدام معرف نقاط الارتساء المخزن في تطبيق الويب الخاص بك، يمكنك إعادة التطبيق بعد أيام لتحديد نقطة الارتساء مرة أخرى.