02. April 2020
5 Min.

Azure Spatial Anchors - Die digitale Welt wirft Anker

Die Cloudplattform Azure von Microsoft stellte im vergangenen Jahr einen neuen Mixed Reality Service bereit - Spatial Anchors. Dabei handelt es sich um feste Punkte in der realen Umgebung, die dort „verankert“ werden. Auch wenn der Nutzer sich im Raum bewegt, behalten Spatial Anchors immer ihre feste Position und Lage bei. Das heißt dieser Service ermöglicht eine persistente Speicherung von Objekten in Mixed- und Augmented Reality. 
Darstellung eines Holograms

Mit Azure Spatial Anchors können platzierte Objekte zu einem beliebigen späteren Zeitpunkt an Ort und Stelle wiedergefunden werden. Objekte, die in der Cloud abgelegt sind, können von unterschiedlichen Geräten und Usern verwendet werden. Gerade befindet sich dieser Service noch in der Vorschau, ist aber bereits zum jetzigen Zeitpunkt eine höchst innovative Lösung, die neue Maßstäbe im MR und AR Bereich und darüber hinaus setzten wird. In dieser Blogreihe wollen wir Einblick in die Welt von Spatial Anchors geben und berichten wie es uns damit ergangen ist.

Spatial Anchors Dienst

Für die Nutzung des Spatial Anchor Dienstes muss dieser zuerst in der Azure Cloud angelegt werden. Man kann sich aktuell zwischen zwei Formen der Authentifizierung entscheiden.
Erstere erfolgt über einen Kontoschlüssel, welcher im Sourcecode hinterlegt werden muss. Dabei handelt es sich um eine sehr rudimentäre Möglichkeit der Authentifizierung, welche sich eher für experimentelle Entwicklungen eignet. In einer Applikation für produktive Tätigkeiten sollte auf eine Authentifizierung über Azure Active Directory zurückgegriffen werden. Hier hat jeder Anwender einen eigenen Benutzernamen, sowie Passwort. Des Weiteren können hier Berechtigungen festgelegt werden, welche auf die spätere Anwendung Auswirkungen haben. Sei es in Form einer Zugriffsberechtigung oder einer Einschränkung der Anwendungsfunktionen. Auf diese Weise kann Beispielsweise der Admin die Objekte platzieren und manipulieren, wohingegen der User die Objekte nur lokalisieren und betrachten kann. Diese Rollenverteilung ist nachfolgend beschrieben. Auf die Realisierung der Authentifizierung wird im nächsten Blogbeitrag näher eingegangen.

  • Spatial Anchors-Kontobesitzer: Der Besitzer dieser Berechtigungsstufe kann Spatial Anchors setzen, verändern und löschen.
  • Spatial Anchors-Kontomitwirkender: Als Kontomitwirkender besitzt man die Möglichkeit Spatial Anchors zu erstellen und sie zu lokalisieren.
  • Spatial Anchors-Kontoleser: Wie der Name Kontoleser beinhaltet, besitzt diese Gruppe nur die Berechtigung Spatial Anchors zu lokalisieren, jedoch erhalten sie keinen Zugriff auf die Meta-Informationen.

Architektur der Authentifizierung

Quelle: Microsoft

Session

Die Verbindung zum Clouddienst wird in einer Session verwaltet. Diese implementiert viele der Funktionalitäten aus dem Spatial Anchors NDK, welches auf Frameworks wie AR Foundation aufsetzt. In einer Session selbst können Anchors platziert und lokalisiert werden. In der folgenden Abbildung ist dies genauer aufgeschlüsselt. Mit dem Schließen der Anwendung wird die Session beendet. Wenn eine Session zuvor gesetzte Anchors finden soll, kann hierfür eine Liste mit Anchor ID’s übergeben werden. Die auffindbaren Anchors sind aktuell auf 35 Stück limitiert.
Seit Release 2.0 können bereits erstellte Anchors auch ohne die entsprechenden ID’s gefunden werden. Über GPS, WLAN und Bluetooth Beacons kann die Position des Gerätes bestimmt werden und Anchors über eine bestimmte Entfernung lokalisiert werden. Diese Lokalisierung ist aber nicht nur mit einem Gerät bzw. Smart Device, sondern auch mit einem bestimmten Anchor möglich. So kann man einen Radius um einen Anchor festlegen, in welchem andere wiederum lokalisiert werden. Unabhängig davon, ob die Lokalisierung in einem bestimmten Radius um ein Smart Device oder einen Anchor stattfindet, ist es erforderlich, dass die Anchor mit geografischen Werten erstellt wurden und die entsprechende Sensorik am Gerät aktiviert ist.

Architektur einer Demo Anwendung

Erstellen und finden von Spatial Anchors

Um einen Anchor erstellen zu können musste zuvor eine Session erstellt werden und das jeweilige Framework eine erste Fläche erkannt haben. Auf einer solchen Fläche kann nun ein Anchor erzeugt werden. Je nach gewähltem Objekt wird dieses auch direkt visualisiert. Wenn eine mindest Anzahl an Merkmalspunkten detektiert wurden, kann der Anchor im Azure Dienst abgespeichert werden. Nach erfolgreichem speichern gibt der Azure Dienst eine ID zurück, mit welcher die Merkmale des Anchors aus dem Azure Dienst geladen werden können. Spatial Anchors sind eindeutig über diese ID beschrieben. Dies ist wichtig, da dadurch Anchors gezielt gesucht, bearbeitet und gelöscht werden können. Ebenfalls haben platzierte Anchors eine bestimmte Anzahl an Merkmalspunkten, mit welcher sie ihre ursprüngliche Position und Rotation wiederfinden können. In der folgenden Abbildung ist das gleichzeitige Wiederfinden von gespeicherten Anchors auf verschiedenen Geräten dargestellt. Um eine geografisch abhängige Suche zu ermöglichen werden Daten zu WLAN, GPS und nahen Bluetooth Beacons gespeichert. Die Speicherung von Geodaten ist optional. Jeder Anchor hat ein Ablaufdatum bis wann er seine Gültigkeit behält. In der Applikation selbst stellen Anchors eine Position mit einer bestimmten Rotation relativ zum Gerät und anderen Anchors dar. Ergänzende Informationen, zum Beispiel Name oder Referenz zu einem bestimmten Objekt werden am besten in einer externen Datenbank gespeichert, hierzu bietet sich die CosmosDB von Azure selbst an. Gespeicherte Anchors sind wie schon zuvor gesagt auf zwei verschiedene Weißen auffindbar. Zum einen über die entsprechende ID und zum anderen über die geografische Abhängigkeit zu einem Gerät oder Anchor. In beiden Fällen muss zuerst eine entsprechende Session erstellt und dieser die Suchkriterien mitgeteilt werden. Mit einer laufenden Session kann nun die Umgebung abgesucht werden. Wenn die Kamera genügend Merkmalspunkte gefunden hat und darin einen der spezifizierten Anchor wiedererkennt, wird dieser dargestellt. Ein sehr praktischer Nebeneffekt, Anchors die in derselben Session angelegt oder auch lokalisiert wurden merken sich ihr räumliches Verhältnis zueinander und können später schneller gefunden werden.

Veranschaulichung einer Spatial Anchors Anwendung

Quelle: Microsoft Developer

Mögliche Einsatzgebiete

Die Anwendungsmöglichkeiten für Azure Spatial Anchors sind überall dort, wo Informationen räumlich platziert werden sollen oder virtuelle Punkte in der realen Welt fest verankert werden müssen. Mit Spatial Anchors können zum Beispiel präzise Indoornavigationslösungen erstellt werden. Durch die Lokalisierung über das Kamerabild und der in den Geräten verbauten Sensorik kann auf ungenaue funkbasierte Lösungen verzichtet werden. Derartige, für Gebäude untaugliche, Technologien können lediglich für eine grobe initiale Orientierung genutzt werden. Auch Ticketsysteme mit räumlichem Bezug, wie sie zum Beispiel im Bauwesen im Mängelmanagement verwendet werden können, werden über Spatial Anchors auf eine neue Ebene der Kollaboration und Kommunikation gehoben. Hier können Tickets direkt an mangelhafte Stellen geheftet werden und von jedem Beteiligten an Ort und Stelle lokalisiert und bearbeitet werden. Zusätzlich können Systeme wie GIS oder BIM hinzugenommen werden, um die Spatial Anchors um weitere Informationen anzureichern. Dadurch lassen sich beispielsweise langwierige Dokumentationsvorgänge beschleunigen und Zusammenhänge schneller erschließen.

Ausblick

Der nächste Beitrag wird sich dem von Microsoft bereitgestellten Beispielprojekt widmen und erklären wie eine erste eigene App mit Azure Spatial Anchors realisiert werden kann. 

Artikel kommentieren