Verbinde dich per Kinect mit deiner CNC-Maschine!

Kann man mit einer 150-Dollar-Spielschnittstelle wirklich brauchbare, CNC-fähige 3D-Daten gewinnen? Finden wir es heraus…

Die Xbox Kinect von Microsoft ist ein cooles Gerät, das an eine Xbox 360 angeschlossen wird, um die Interaktion mit Spielen per Gesten und Körperbewegungen zu ermöglichen. Dabei sind uns jedoch ein paar Dinge aufgefallen…

Erstens wird es mit einem Standard-USB-Adapter geliefert, der ursprünglich für die Verwendung mit älteren Xbox-Konsolen gedacht war und den Anschluss an einen Standard-PC ermöglicht. Zweitens basiert die Gestentechnologie auf einem 3D-Scan der Umgebung vor der Kinect mithilfe eines Infrarotmusters. Wäre dieser 3D-Scan präzise genug, um 3D-Modelle mit ausreichendem Detailgrad für den CNC-Fräsen zu erstellen?

Die drei Sensoren, die uns interessierten, waren der Infrarotprojektor, die Infrarotkamera und die normale Kamera. Die Kinect projiziert ein strukturiertes Muster (ähnlich einem 2D-Barcode) in die Umgebung. Die Infrarotkamera analysiert die Verzerrung und Reflexion dieses Musters, um eine Karte der Entfernungen zu den nächstgelegenen Objekten vor der Kinect zu erstellen. Gleichzeitig streamt die Webcam ein herkömmliches Videobild der Szene zusammen mit den 3D-Daten.

Mit etwas Unterstützung unserer Freunde...Um auf diese Daten zuzugreifen, verwendeten wir zwei Open-Source-Bibliotheken: libfreenect (http://openkinect.org/wiki/Main_Page) und libusb (http://www.libusb.org/). Es gäbe zwar noch andere Möglichkeiten, aber die Entscheidung fiel letztendlich darauf, dass beide den vollständigen Quellcode bereitstellen. Das ist immer beruhigend, wenn man etwas Neues entwickeln möchte. ;)

Ursprünglich hatte Brian die mitgelieferte Beispiel-App angepasst, aber am Wochenende entwickelte er eine eigene MFC-Anwendung für die Vorverarbeitung. Die API von libfreenect ließ sich in einem komplett individuellen Projekt recht einfach implementieren. Anschließend nutzten wir eine angepasste Version unseres 3D-CNC-Modellierungs- und Fertigungspakets Aspire, um die Daten zu importieren und zu bearbeiten. Innerhalb eines Tages war Brian überzeugt, dass sich die Rohdaten mit etwas Aspire-Bearbeitung so kombinieren und verbessern ließen, dass recht ansehnliche Ergebnisse für die 3-Achs-Bearbeitung erzielt werden konnten!

Unsere aktuelle Version des Prozesses umfasst fünf Hauptphasen:Zunächst verwenden wir 25 Einzelbilder mit 3D-Daten (aufgenommen in 1 Sekunde), um das in Einzelbildern vorhandene Rauschen zu reduzieren.

Mithilfe einer eigens entwickelten Aufnahme-App beschränken wir die 3D-Daten auf die relevanten Entfernungen und können Daten vor oder hinter dem aufgenommenen Objekt per Schieberegler ausblenden.

Die Daten werden anschließend in eine angepasste Version von Aspire importiert. Ein Assistent unterstützt die Ausrichtung der 3D-Daten an einem Relief, das aus dem Webcam-Bild erstellt wurde. Schatten und Helligkeitsänderungen im Foto stehen zwar nicht in direktem Zusammenhang mit der 3D-Form, tragen aber bei geschickter Verwendung wesentlich zur Detailgenauigkeit bei.

Die Modellelemente können nun geglättet, skaliert oder sogar einzeln bearbeitet werden, um ein ansprechendes Gesamtmodell zu erstellen.

Anschließend können Werkzeugwege generiert und das Modell ausgeschnitten werden.

Nach einigen weiteren Anpassungen in Aspire (um den Kopfbereich abzusenken und so die erforderliche Materialstärke zu reduzieren) wurde das Modell so zerlegt, dass wir es in 3 Schichten aus 1" (25 mm) MDF schneiden konnten.Die Teile wurden dann zusammengeklebt ...

Wir werden den Prozess "Kinect yourself to your CNC" nächste Woche (22.-23. Mai 2011) auf der San Francisco Maker Faire vorstellen und hoffen, so viele von Ihnen wie möglich dort zu sehen!