AR Assembly

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

AR mit der Microsoft HoloLens: Tracking mit Vuforia für Unity

Das Ziel guter Interaktion zwischen User und digitaler Welt ist die Konzentration auf den Menschen im Mittelpunkt. Der Mensch soll mit technischen Geräten interagieren können wie er es aus seinem natürlichen Umfeld mit realen Gegenständen gewohnt ist. In VR befindet man sich in einem abgeschlossenen System. Der Seheindruck des Menschen wird mit einer virtuellen Welt substituiert. Bei der AR befindet sich der Benutzer in seiner realen Realität, mit der er wie gewohnt interagieren kann. Mittels Hologramme wird diese Realität mit mehr Informationen angereichert (= augmented). Wichtiger Bestandteil der AR-Technologie ist das Erkennen von Gegenständen in der realen Welt (= tracking). So verschmilzt die digitale und analoge Welt zu einem interaktiven Erlebnis für den User. Unserem Projekt „AR Assembly“ gibt einen Einblick in eine AR-Anwendung für die Microsoft Hololens, die reale Gegenstände trackt, diese mit digitalen Informationen anreichert und so zu einer Interaktion motiviert.


Installation der benötigten Programme

Die Einführung in die Installation der benötigten Software, um mit der Microsoft Hololens Gegenstände tracken zu können, findet man sowohl in Microsofts eigenem Dev Center (LINK) oder in einem vorherigen Hololens Projekt hier im Wiki unter: [1]


Vuforia - Extension für Unity

Vuforia ist eine der meistgenutzten AR Entwicklungsplattformen - nicht nur für die HoloLens, sondern auch für Smartphones, Tablets und andere Mixed Reality Glasses. Mit Vuforia können Gegenstände über die Hololens getrackt werden. Hierzu müssen zunächst Daten über die zu erkennenden Gegenstände auf deren Website hochgeladen werden. Diese werden dort analysiert, bewertet und für den export in Unity vorbereitet. Diese Daten können folgendermaßen bereitgestellt werden:

-2D Marker/Bilder (Wichtig: hell/dunkel Unterschiede; eher quadratische als längliche Formen)

-3D Objekte (Zylinder, Kuben); Hier muss allerdings noch für jede Seite des Objektes eine eigene Textur eingefügt werden. (Zeitintensiv)

-Vuforia App

Wichtige Info zur Vuforia Scanner App:

Der zu scannende Gegenstand wird zunächst auf einer gedruckten Referenz Fläche platziert. Anschließend umrundet man das Objekt mit der Handy Kamera. Die App generiert daraus eigenständig ein 3D Modell, das direkt auf der Vuforia Seite hochgeladen werden kann und anschließend in Unity implementiert wird. Hierbei ist allerdings zu beachten: -Nur kleine Objekte sind über die App scannbar (z.B. Modellautosn Actionfiguren...) -Das Objekt muss deutliche hell- und dunkel Unterschiede aufweisen um erkannt zu werden Aufgrund dieser Einschränkungen mussten wir auf die Nutzung dieser App verzichten und unsere Objekte über herkömmliche 2D Marker erkennen lassen.

Ar assembly vuforia app.jpg Vuforia Scanner App im Einsatz


Vuforia Startguide

-Download und Ausführung des UnityDownload Assistant 2017.2 von der Unity Website [2]

-Auswählen der Komponente „Vuforia Augmented Reality Support“ im dritten Auswahlfensters der Anwendung

-Vuforia befindet sich nun im Unity GameObjects Menü: Reiter GameObjects → Vuforia

-Aktivi-erung von Vuforia für das eigene Projekt in den PlayerSettings ( Markierung der Box: Vufoira Augmented Reality Supported)

-Anlegen und Aktivieren eines Vuforia Accounts und Erstellung eines Lizenzschlüssels auf der Vuforia-Website: [3]


Vuforia Guide für das Tracken eines Gegenstandes

(Ausgangspunkt: geöffnetes Projekt in Unity):

1. Build Settings → Player Settings:
 1.1. Publishing Settings → Capabilities: Internet Client, PictureLibrary, VideosLibrary, WebCam, Microphone, Spacial Perception
 1.2 XR Settings virtual Reality Supported, Vuforia → Augmented Reality
2. Edit → Project Settings → Quality → Dropdown beim WinStore → low
3. Main Camera → Camera → Clear Flags: Solid Color; Background: schwarz; Clipping Planes: 0.85
4. Vuforia Website → Add database („Name“; Type: Device) → Anklicken → add target (file; größe in m; „Name“) → download database (unity editor)
5. Zurück in Unity: Assets → import package → custom package → file aus 4 importieren
6. GameObject → Vuforia → AR Camera
7. AR Camera → Vuforia Behaviour (Script): setzte main Camera als Anchor Point
8. AR Camera → Vuforia Behaviour (Script) → Vuforia Configuration → ADD License Key: einfügen; Eyewear Type: Optical See Through; 
   See through config: Hololens (für webcam Test: Vuforia); Datasets: „Deine DB“, Activate
9. GameObject → Vuf → Image
10.Image Target → Image Traget Behaviour (Script) →
 10.1 Advanced: extended tracking
 10.2 Type: Predefinded, Database: „Deine DB“, Image Target „Das Bild“
11. GameObject → 3d Object → Objekt der Begierde
12. Objekt Hirachie → Objekt der Begierde in Image Target ziehen
13. Objekt passend zum Image Target platzieren (Bei Bedarf Skript einfügen über „Add Component“)
14. Test des Trackings über „Play“ Button

Ar assembly erster erfolg.jpg Erste Erfolge: Erkennung eines 2D-Markers über die Webcam und Unity


Erstellung von 3D Modellen via Blender:

Ein kostenloses 3D-Modell unseres Ikea-Stuhls war nicht zu finden, daher benutzten wir zur Erstellung unseres 3D-Models die Open-Source Software Blender. Mit zahlreichen Video-Tutorials im Internet war dies sehr schnell und einfach zu erlernen. Der Stuhl ist ein 3D-Objekt aus neun zusammengesetzten Teilen. Die Einfachheit des Stuhls erlaubte ein schnelles erstellen. Ar assembly blender.PNG Erstellen des 3D-Modells in Blender


Ex- und Import von 3D Objekten

Unity 2017 erlaubt eine nahtlose Übergabe von Blender Dateien (.blender), diese werden einfach via Drag&Drop in das gewünschte Projekt mit allen Funktionalitäten importiert. Dies war jedoch für unser Projekt nicht praktikable, da wir die einzelnen Teile des Objekts unabhängig voneinander Bewegen mussten. So entschieden wir uns jedes Objekt einzeln als .fbx-Datei (3D-Objekt) zu exportieren und in Unity zu importieren, um maximale Flexibilität zu gewährleisten. Diese 3D-Modellteile lassen sich nun unabhängig voneinander animieren und bewegen. Ar assembly unity.jpg Zusammensetzen in Unity


Unser Projekt: AR Assembly

Eine interaktive Aufbauanleitung eines IKEA-Stuhls. Das Programm kommt ohne störende textuelle Benutzeroberfläche aus. Durch Animationen, überlagernde Hologramme und farbige Hervorhebungen ergibt sich der Aufbauablauf auf natürliche Weise.


Ablaufplan

Erkennung von einzelnen Bestandteilen des Stuhls auf dem Boden Markierung des Startteils mittels farbiger Hervorhebung Spieler nimmt Gegenstand in die Hand, durch eine Animation wird deutlich welches Bauteil als nächstes benötigt wird Spieler baut nächstes Bauteil an (Wiederholung bis Möbelstück fertiggestellt ist) Grafisches Bestätigung und Beglückwünschung – Stuhl wurde fertiggestellt


Anwendungsmöglichkeiten / Blick in die Zukunft

Durch das Projekt wurde einzelne Features der Hololens getestet. Es gibt mehrere Möglichkeiten das Projekt weiterzuentwickeln: Zum einen kann man natürlich mehrere Aufbauanleitungen zusammenführen, man kann komplett andere Objekte nutzen und viel weiter in kompliziertere Aufbauanleitungen vorstoßen. Zum anderen wäre es Möglich eine Art Spiel aus dem Konzept zu entwickeln. Denkbar wäre zum Beispiel eine „Wettbauen“ mit einem weiteren Mitspieler nach Punkten, Genauigkeit und/oder Zeit. Für ein umfangreicheres Spielerlebniss könnte man hier auch auf Bausteine/LEGOs umsteigen.

Ar assembly praxistest laptop.JPG Praxistest am Laptop


Ar assembly praxistest hololens.JPG Praxistest mit der Hololens