Tutorial: Uso compartido de Spatial Anchors entre sesiones y dispositivos

Azure Spatial Anchors es un servicio multiplataforma para desarrolladores que permite crear experiencias de realidad mixta mediante objetos cuya ubicación persiste en todos los dispositivos a lo largo del tiempo.

En este tutorial se usa Azure Spatial Anchors para crear delimitadores durante una sesión y, a continuación, buscarlos en el mismo dispositivo o en otro. Estos mismos delimitadores los pueden encontrar varios dispositivos en el mismo lugar y al mismo tiempo.

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

En este tutorial, aprenderá a:

  • Implementar una aplicación web de ASP.NET Core en Azure para compartir delimitadores y almacenarlos en memoria durante un tiempo determinado.
  • Configurar la escena AzureSpatialAnchorsLocalSharedde demostración en el ejemplo de Unity de nuestros inicios rápidos para aprovechar las ventajas de la aplicación web de uso compartido de delimitadores.
  • Implementar y ejecutar los delimitadores en uno o varios dispositivos.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Requisitos previos

Antes de comenzar este tutorial, asegúrese de cumplir los siguientes requisitos previos:

  • Haber leído Introducción a Azure Spatial Anchors.
  • Haber completado uno de los inicios rápidos en 5 minutos.

    Nota

    Los inicios rápidos de Android/NDK e iOS/Swift no muestran actualmente las funcionalidades que se explican en este tutorial.

  • Conocimientos básicos de:
  • Un equipo Windows con Visual Studio 2019 o cualquier versión posterior con la carga de trabajo de desarrollo web y ASP.NET.
  • SDK de .NET Core 3.1.
  • Uno o varios de los siguientes dispositivos en los que implementar y ejecutar una aplicación: HoloLens, HoloLens 2, iOS o Android.

Nota

Aunque se va a usar Unity y una aplicación web de ASP.NET Core en este tutorial, es solo para mostrar un ejemplo sobre cómo compartir los identificadores de Azure Spatial Anchors con otros dispositivos. Se pueden usar otros lenguajes y tecnologías de back-end para lograr el mismo objetivo.

Creación de un recurso de Spatial Anchors

Vaya a Azure Portal.

En el menú izquierdo, seleccione Crear un recurso.

Use el cuadro de búsqueda para buscar Spatial Anchors.

Screenshot showing the results of a search for Spatial Anchors.

Seleccione Spatial Anchors y, después, seleccione Crear.

En el panel Cuenta de Spatial Anchors, haga lo siguiente:

  • Escriba un nombre de recurso único con caracteres alfanuméricos normales.

  • Seleccione la suscripción a la que desea asociar el recurso.

  • Cree un grupo de recursos, para lo que debe seleccionar Crear nuevo. Asígnele el nombre myResourceGroup y luego seleccione Aceptar.

    Un grupo de recursos es un contenedor lógico en el que los recursos de Azure, como aplicaciones web, bases de datos y cuentas de almacenamiento, se implementen y administren. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.

  • Seleccione la ubicación (región) en la que desea colocar el recurso.

  • Seleccione Crear para empezar a crear el recurso.

Screenshot of the Spatial Anchors pane for creating a resource.

Una vez creado el recurso, Azure Portal muestra que se ha completado la implementación.

Screenshot showing that the resource deployment is complete.

Haga clic en Go to resource (Ir al recurso). Ahora puede ver las propiedades del recurso.

Copie el valor de Id. de cuenta del recurso en un editor de texto para usarlo más adelante.

Screenshot of the resource properties pane.

Copie también el valor de Account Domain (Dominio de cuenta) del recurso en un editor de texto para usarlo más adelante.

Screenshot showing the resource's account domain value.

En Configuración, seleccione Clave de acceso. Copie el valor de Clave principal, Clave de cuenta, en un editor de texto para su uso posterior.

Screenshot of the Keys pane for the account.

Descargar el proyecto de ejemplo y el SDK de importación

Clonación de muestras de repositorio

Ejecute los siguientes comandos para clonar el repositorio de ejemplos:

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

Importación del SDK de ASA

Siga las instrucciones que se proporcionan aquí para descargar e importar los paquetes del SDK de ASA necesarios para la plataforma HoloLens.

Implementación del servicio de delimitadores de uso compartido

Nota

En este tutorial usaremos el nivel gratis de Azure App Service. El nivel gratis agotará el tiempo de espera después de 20 minutos de inactividad y restablecerá la memoria caché.

Abra Visual Studio y el proyecto de la carpeta Sharing\SharingServiceSample.

Apertura del Asistente para publicación

En el Explorador de soluciones, haga clic con el botón derecho en el proyecto SharingService y seleccione Publicar.

Se inicia el Asistente para publicación.

  1. Seleccione Destino Azure>Siguiente.
  2. Seleccione el objetivo específico de Azure App Service (Windows)>Siguiente
  3. Inicie sesión en Azure Portal.
  4. Seleccione el "+" verde para Crear un Azure App Service

Configuración de App Service

Configuración Valor sugerido Description
Nombre myASASharingService Dé a su servicio un nombre único
Nombre de suscripción Seleccione la suscripción a Azure que prefiera
Grupo de recursos myResourceGroup o seleccione uno existente Un grupo de recursos es un contenedor lógico en el que los recursos de Azure, como aplicaciones web, bases de datos y cuentas de almacenamiento, se implementen y administren. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.
Plan de hospedaje Seleccione Nuevo... y vea la tabla siguiente Un plan de App Service especifica la ubicación, el tamaño y las características de la granja de servidores web que hospeda la aplicación. Se puede ahorrar dinero cuando se alojan varias aplicaciones configurando las aplicaciones web para que compartan un único plan de App Service. Los planes de App Service definen:
  • Región (por ejemplo: Norte de Europa, Este de EE. UU. o Sudeste de Asia)
  • Tamaño de la instancia (pequeño, mediano o grande)
  • Recuento de escala (de 1 a 20 instancias)
  • SKU (Gratis, Compartido, Básico, Estándar o Premium)

Configuración del plan de hospedaje

Configuración Valor sugerido Descripción
Plan de hospedaje MySharingServicePlan Dé a su plan de alojamiento un nombre único
Location Oeste de EE. UU. El centro de datos donde se hospeda la aplicación web. Elija una ubicación más cercana a la ubicación física que usará la aplicación
Size Gratuito El plan de tarifa que determina las características de hospedaje.
  1. Seleccione Crear para crear el App Service
  2. Una vez creado el servicio de aplicaciones, selecciónelo en la lista "Instancias de App Service" y seleccione Finalizar
  3. En la pestaña SharingService: Publicar seleccione Publicar

Una vez que la aplicación web de ASP.NET Core se haya publicado en Azure, puede ir a https://<your_app_name>.azurewebsites.net o hacer clic en el vínculo situado junto a Sitio: en la pestaña SharingService: Publicar. Copie esta dirección URL en un editor de texto para su uso posterior.

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

Configuración e implementación de la aplicación de ejemplo

Abrir proyecto

En Unity, abra el proyecto en la carpeta de Unity. Unity podría notificarle sobre una diferencia entre la versión del proyecto y la que tiene instalada en la máquina. Esta advertencia es correcta, siempre que su versión del Editor de Unity sea más reciente que con la que se creó el proyecto. Si la versión es más reciente, seleccione Continuar. Si la versión es anterior a la que necesita el proyecto, Seleccione Salir y actualice el Editor de Unity.

Screenshot of the Unity pane.

Configurar los ajustes de compilación

Seleccione File>Build Settings (Archivo > Configuración de compilación) para abrir Build Settings (Configuración de compilación).

En la sección Platform (Plataforma), seleccione Universal Windows Platform (Plataforma universal de Windows). Cambie el valor de Target Device (Dispositivo de destino) a HoloLens.

Seleccione Switch Platform (Cambiar plataforma) para cambiar la plataforma a Universal Windows Platform (Plataforma universal de Windows). Unity puede solicitarle que instale los componentes de compatibilidad con Plataforma universal de Windows si no están presentes.

Screenshot of the Unity Build Settings pane - HoloLens

Cierre la ventana Build Settings (Configuración de compilación).

Configuración de la información de una cuenta

El paso siguiente es configurar la aplicación para que use la información de su cuenta. Ha copiado los valores de Clave de cuenta, Id. de cuenta y Account Domain (Dominio de cuenta) en un editor de texto, en la sección "Creación de un recurso de Spatial Anchors".

En el panel Proyecto, vaya a Assets\AzureSpatialAnchors.SDK\Resources.

Seleccione SpatialAnchorConfig. En el panel Inspector, especifique Account Key como el valor de la clave de cuenta de Spatial Anchors, Account ID como el valor del id. de cuenta de Spatial Anchors y Account Domain como el valor del dominio de cuenta de Spatial Anchors.

Abra la escena llamada AzureSpatialAnchorsLocalSharedDemo que se encuentra en Assets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo al hacer doble clic en ella en el panel del proyecto

En el panel Proyecto, vaya a Assets\AzureSpatialAnchors.Examples\Resources.

Seleccione SpatialAnchorSamplesConfig. Además, en el panel Inspector, escriba la dirección URL de Sharing Anchors Service (de la implementación en Azure de la aplicación web de ASP.NET) como valor de Base Sharing Url. Agregue a la URL con /swagger/api/anchors. Debería ser parecido a este: https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

Para guardar la escena, seleccione File>Save (Archivo > Guardar).

Exportación e implementación de la aplicación de HoloLens

Seleccione File>Build Settings (Archivo > Configuración de compilación) para abrir Build Settings (Configuración de compilación).

En Scenes In Build (Escenas en compilación), asegúrese de que haya una marca de verificación junto a cada escena.

Seleccione Build (Compilar). En el cuadro de diálogo, seleccione la carpeta en la que se va a exportar el proyecto HoloLens de Visual Studio.

Cuando se complete la exportación, aparecerá una carpeta que contiene el proyecto HoloLens exportado.

En la carpeta, haga doble clic en HelloAR U3D.sln para abrir el proyecto en Visual Studio.

Cambie el valor de Configuración de solución a Versión, cambie el de Plataforma de solución a x86 y seleccione Dispositivo en las opciones de destino de implementación.

Si usa HoloLens 2, utilice ARM64 como Plataforma de soluciones, en lugar de x86.

Visual Studio configuration

Encienda el dispositivo HoloLens, inicie sesión y conéctelo al equipo mediante un cable USB.

Seleccione Depurar>Iniciar depuración para implementar la aplicación y comenzar la depuración.

Ejecución de la aplicación

En la aplicación, seleccione LocalSharedDemo con las flechas y pulse el botón Ir para ejecutar la demostración. Siga las instrucciones para colocar y recuperar un delimitador.

Create & Share Anchor (Crear y compartir delimitador) permite crear un delimitador y guardarlo en el servicio de uso compartido. A cambio, recibirá un identificador que puede usar para recuperarlo del servicio de uso compartido. Puede ejecutar el segundo escenario, Locate Shared Anchor (Buscar delimitador de uso compartido), desde su dispositivo o desde otro distinto.

Locate Shared Anchor (Buscar delimitador de uso compartido) permite localizar los delimitadores ya compartidos especificando el identificador mencionado anteriormente. Después de elegir el escenario, la aplicación le guiará con instrucciones adicionales. Por ejemplo, se le pedirá mover el dispositivo para recopilar información del entorno. Más adelante, colocará un delimitador en el mundo, esperará para guardarlo, iniciará una nueva sesión y lo localizará.

Limpieza de recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.

En el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos. En la página Grupos de recursos, seleccione myResourceGroup.

En la página myResourceGroup, asegúrese de que los recursos enumerados sean los que desea eliminar.

Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto para confirmar y, después, seleccione Eliminar.

Pasos siguientes

En este tutorial ha implementado una aplicación web de ASP.NET Core en Azure y ha configurado e implementado una aplicación de Unity. Ha creado delimitadores espaciales con la aplicación y los ha compartido con otros dispositivos mediante la aplicación web de ASP.NET Core.

Puede mejorar la aplicación web de ASP.NET Core para que use Azure Cosmos DB y que el almacenamiento de los identificadores de delimitador espacial compartidos persista. Al agregar compatibilidad con Azure Cosmos DB, puede crear hoy mismo un delimitador con la aplicación web de ASP.NET Core. Después, mediante el identificador de delimitador almacenado en la aplicación web, puede hacer que la aplicación vuelva a encontrar el delimitador días más tarde.