Este documento describe cómo usar Azure Spatial Anchors y Xamarin para crear aplicaciones de realidad mixta en dispositivos móviles. Explica qué es Xamarin, Azure Spatial Anchors y la realidad aumentada, y proporciona una demostración de cómo crear, localizar y compartir anclas espaciales entre dispositivos usando estas tecnologías.
1. 2021
Realidad mixta en
apps móviles con
Azure Spatial
Anchors y
Xamarin
Carla Mamani
Gold Microsoft Learn Student Ambassador
@CarlaMamaniCha1
Luis Beltrán
Microsoft MVP
@darkicebeam
3. #netcoreconf
Carla Vanesa Mamani Chavez
• Estudiante de Ciencias de
la Computación
• U.M.S.A
• La Paz - Bolivia
• Microsoft Learn Student
Ambassadors
• Certified MIE (Microsoft
Innovative Educator)
• Líder Comunidad Student
Ambassadors La Paz
4. #netcoreconf
Luis Beltrán
• Investigador en Tomas Bata
University in Zlín, República
Checa.
• Docente en Tecnológico Nacional
de México en Celaya, Mexico.
• Xamarin, Azure e Inteligencia
Artificial
@darkicebea
m
luis@luisbeltran.mx
luisbeltran.mx
5. #netcoreconf
¿Qué es Xamarin?
iOS, Android y
Windows con C#
Construye aplicaciones móviles
nativas (en rendimiento, uso de
APIs y UI) con Visual Studio
Cross-platform
Construye una UI cross-platform
con Xamarin.Forms
Accede a APIs nativas desde el
código compartido con
Xamarin.Essentials
Comparte código con .NET
Standard
Open-source
Xamarin es parte de .NET y es
de código abierto disponible en
GitHub
6. #netcoreconf
Arquitectura de una aplicación Xamarin
.NET
C# C#
Código Compartido de C#
Lógica de Negocios – APIs de Plataforma – Interfaz de
usuario
Xamarin.Essentials
C#
Xamarin.Forms - UI
7. #netcoreconf
Xamarin.iOS – Cobertura del API
MapKit UIKit SiriKit ARKit CoreML
Todo lo que puedes hacer en Swift u
Objective C para iOS lo puedes hacer con
Xamarin usando C#
8. #netcoreconf
Xamarin Android – Cobertura del API
Fingerprint Bluetooth Picture-in-Picture Geolocation NFC
Todo lo que puedes hacer en Java o
Kotlin para Android lo puedes hacer con
Xamarin usando C#
9. #netcoreconf
¿Qué es la Realidad Aumentada?
• Los objetos se dibujan
virtualmente en una pantalla
usando coordenadas del
mundo real, considerando la
ubicación espacial.
• Nativa:
• iOS:
• ARKit
• SceneKit
• Android:
• ARCore
• SceneForm
10. #netcoreconf
Apple ARKit
• Es la plataforma de desarrollo de realidad aumentada
para dispositivos móviles iOS.
• Permite a los desarrolladores crear experiencias de AR
con gran detalle para iPad y iPhone.
• Los entornos capturados a través del dispositivo pueden
tener texto virtual animado en 3D, objetos y personajes
agregados.
• ARKit se introdujo junto con iOS 11 y está especificado
para ejecutarse en Core A9 y dispositivos iOS superiores.
11. #netcoreconf
Google ARCore
• Es la plataforma de desarrollo para crear aplicaciones de
realidad aumentada para dispositivos móviles Android.
• Permite a los desarrolladores crear aplicaciones de realidad
aumentada que superponen la vista del usuario con
contenido animado en 3D que incluye palabras, objetos y
personajes.
• Disponible el soporte a la mayoría de los dispositivos
Android versión Nougat y posteriores.
12. #netcoreconf
Realidad Aumentada en dispositivos móviles
• Las plataformas de AR hacen uso de sensores como la
cámara, los acelerómetros, el giroscopio y la conciencia
del contexto del dispositivo iOS para mapear el entorno
a medida que se mueve el dispositivo.
• La fusión del sensor de los datos del sensor inercial con
los datos de la cámara permite un conocimiento de la
ubicación y un mapeo de alta precisión.
• El software selecciona características visuales en el
entorno, como planos, y rastrea el movimiento junto con
la información de los sensores inerciales.
• La cámara también se utiliza para determinar las fuentes
de luz con las que se iluminan los objetos AR.
• Los usuarios pueden colocar anclas (anchors) para
marcar las creaciones que desean guardar
(persistencia) y que sean visibles por otros usuarios que
visiten el lugar posteriormente.
13. #netcoreconf
¿Qué es Azure Spatial Anchors?
• Una capacidad que permite a los
desarrolladores crear aplicaciones de
realidad mixta que mapean, persisten
y comparten POIs por medio de
contenido 3D en el mundo real.
• Utiliza servicios de Azure y está
disponible para dispositivos y
tecnologías compatibles
18. #netcoreconf
Conceptos
• CloudSpatialAnchorSession
• Proporciona servicios base (crear, localizar, actualizar, eliminar
CloudSpatialAnchors)
• Captura datos sobre el entorno
• CloudSpatialAnchor
• Se enlaza a un elemento Anchor de plataforma de AR específica
(WorldAnchor en HoloLens, ARAnchor en iOS, Anchor en Android)
• Contiene un ID, fecha de expiración y propiedades (en un diccionario)
19. #netcoreconf
• CreateAnchorAsync
• Almacena un CloudSpatialAnchor en el servicio de Azure Spatial Anchors
• Devuelve un CloudSpatialAnchor con su ID asignado
• CreateWatcher
• Busca anchors que cumplen con un criterio específico
• Devuelve los CloudSpatialAnchors localizados a través de un delegado
• AnchorLocateCriteria
• Se asigna a un arreglo de CloudSpatialAnchor IDs
41. #netcoreconf
Call to Action
Azure Spatial Anchors
https://azure.microsoft.com/es-mx/services/spatial-anchors/
Tutorial: Introducción a Azure Spatial Anchors
https://docs.microsoft.com/es-mx/windows/mixed-reality/mrlearning-asa-ch1
Documentación de Azure Spatial Anchors
https://docs.microsoft.com/es-mx/azure/spatial-anchors/
42. #netcoreconf
Call to Action
Quicksart Azure Spatial Anchors y Android
https://docs.microsoft.com/es-mx/azure/spatial-anchors/quickstarts/get-started-xamarin-android
Quickstart Azure Spatial Anchors y iOS
https://docs.microsoft.com/es-mx/azure/spatial-anchors/quickstarts/get-started-xamarin-ios
Uso compartido (backend App Service)
https://docs.microsoft.com/es-mx/azure/spatial-anchors/tutorials/tutorial-share-anchors-across-devices
Uso compartido (Persistencia con Cosmos DB)
https://docs.microsoft.com/es-mx/azure/spatial-anchors/tutorials/tutorial-use-cosmos-db-to-store-anchors
Microsoft Learn
https://docs.microsoft.com/en-us/learn/modules/azure-spatial-anchors-tutorials/
En primer lugar, será capaz de detectar el movimiento para así entender su posición relativa dentro del entorno. Esto quiere decir que, una vez haya analizado tus alrededores y realizado un mapa interno de ellos, podrá detectar cuándo te mueves para saber su posición dentro de este mapa.
También será capaz de entender tus alrededores, detectando el tamaño y la ubicación de diferentes superficies horizontales, verticales y anguladas. Por ejemplo, cuando hagas un barrido con la cámara para que detecte qué hay a tu alrededor, será capaz de mapear el suelo, muebles como una mesa o las paredes.
Esta tecnología también será capaz de estimar las condiciones de luz del lugar en el que te encuentras, de manera que las imágenes de realidad aumentada que muestre se relacionen con esta luz de una manera lo más realista posible.
Hace uso de CosmosDB y Azure App Service para proporcionar almacenamiento y backend.
Se puede incorporar seguridad y acceso por medio de Azure AD