exp.wiki NEU
WICHTIG: Das exp.wiki wurde aktualisiert und ist ab sofort unter einer neuen Adresse zu erreichen: https://exparch-www.uibk.ac.at/testwiki
Bitte das Anlegen neuer Seiten oder die Änderungen bestehender ab sofort ausschließlich dort durchführen.
Bestehende Projektseiten wurden/werden migriert und sind auch auf der neuen Plattform vorhanden.

Rex Scan

Aus exp.wiki

Wechseln zu: Navigation, Suche
Verfasser Mair Raimund
Betreuer Grasser Georg, Tamre Kadri
LV Digital Architecture
Thema Faltungen
Titel Rex
Semester 13SS
Image Bild:RexScan008.jpg

Inhaltsverzeichnis

Projektansatz

Im Zuge des Seminars "Digital Architecture" im Sommersemester 2013 entstand der Gedanke, die Roboter im Rex | Lab mit einer ersten Sensorik auszustatten, die es ihnen ermöglicht, Arbeitsvorgänge aktiv zu überwachen und in späterer Folge auf Objekte in ihrem Arbeitsbereich zu reagieren bzw. diese in die Steuerung miteinzubeziehen.

Experimenteller 3D-Scanner

Da ein "haptisches" Erfassen der Umgebung mit mechanischen Abtastern beispielsweise beim Umgang mit gefalteten Stoffen direkten (und unter Umständen zerstörerischen) Einfluss auf das Objekt nehmen würde, wurde entschieden, den Prototypen mit einem Infrarotentfernungssensor auszustatten. Dessen verhältnismäßig geringer Arbeitsbereich (10 - 80 cm) wurde zugunsten einer relativ großen Toleranz bezüglich des Auftreffwinkels am zu messenden Objekt in Kauf genommen. Die Verwendung von Ultraschallentfernungsmessern wurde aus diesem Grund bereits im Frühstadium verworfen. Laser schieden aus Kostengründen aus. Als nachteilig erwies sich die Neigung kostengünstiger IR-Abstandsmesser, "Ausreißer" bei den Messergebnissen zu produzieren. Um diese zu eliminieren, werden an jedem Messpunkt mehrere Messungen durchgeführt und die außerhalb der Norm liegenden Werte firmwareseitig eliminiert.

Hardware

Den Kern der Elektronik bildet ein Arduino UNO, wobei auch die Verwendung eines Arduino Leonardo möglich ist. Letzterer bietet den Vorteil, eine USB-Tastatur simulieren zu können, um Daten wie bei manueller Eingabe ohne Umweg direkt in ein CAD-Programm einspielen zu können (im Rahmen der Vorlaufexperimente erfolgreich mit Rhinoceros 3D durchgeführt). Da es allerdings nicht möglich war, die aktuellen Koordinaten des Roboterarmes im laufenden Betrieb abzufragen, wurde diese Option verworfen. Zur Abstandsmessung wurde ein Infrarotsensor Sharp GP2D120 mit den oben erwähnten Vor- und Nachteilen verwendet, der über einen Analogeingang an den Arduino angeschlossen wird. Zur Auslösung der Messung sind ein Schalteingang (entprellt über die Bounce-Bibliothek) sowie ein Optokoppler (4N35) zur Steuerung über den 5V-Ausgang der Switchbox der Roboter vorhanden. Letzterer ist vermutlich nicht zwingend nötig, aber eine galvanische Trennung ist die beste Möglichkeit für einen Nichtelektroniker, zu wissen, dass er unschuldig ist, wenn ein Roboter aus dem Raum galoppieren sollte. Die laufende Messung wird über eine LED angezeigt. Die Schaltung war klein genug, um auf einem Arduino Proto Shield umgesetzt zu werden, wobei als Sockel für den manuellen Triggerschalter, den Optokoppler sowie die LED ein IC-Sockel zur Anwendung kam, um im Experimentierprozess vernichtete Bauteile schnell austauschen zu können. Der erste Prototyp wurde auf einem Breadboard aufgebaut. Da die allgemeine Präsentation der Seminararbeiten am Institut und damit fern der Roboter stattfand, wurde für den Präsenter ein Display zur Ausgabe von Messdaten angefügt, um ein funktionstüchtiges Demonstrationsmodell vorführen zu können.


Firmware

Die Firmware des Entfernungsmessers wurde in Arduino programmiert, einer verhältnismäßig leicht zu erlernenden Programmiersprache, die auf Processing (und damit C) basiert. Zur oben erwähnten Notwendigkeit der Eliminierung von Messfehlern war ein bisschen Statistik notwendig, die sich allerdings im Rahmen des normalen Oberstufenlehrstoffes bewegt: Es werden Mittelwert und Standardabweichung einer Messreihe gebildet, die Daten außerhalb eines gewissen Prozentsatzes der Standardabweichung als Ausreißer klassifiziert und ausgeschieden. Der aus den verbliebenen Daten gebildete neue Mittelwert wird anschließend über eine simulierte COM-Schnittstelle (hardwäremäßig USB, Installation des Arduino-Schnittstellentreibers notwendig) an einen PC ausgegeben.

Ablauf des Scans

Da es zum Zeitpunkt des Seminars noch nicht möglich war, den Triggerausgang der Roboter mittels der eingesetzten Software HAL (Dank an Thibault Schwartz für die Zurverfügungstellung einer Testlizenz) zu steuern, fand ein erster Versuch mit manueller Triggerung und ebenso manuell gesteuertem schrittweisen Abfahren der einzelnen Messpunkte durch den Roboter statt. Das erfolgreiche rechnergesteuerte Experiment führte anschließend Stefan Hechenberger mittels eines Python-Scripts durch. Danke an ihn auch für die Erlaubnis, die von ihm im Rahmen dieses Versuchs aufgenommenen Fotos an dieser Stelle zu nutzen:


Résumé und weitere Nutzung

Die ursprüngliche Zielsetzung der direkten Überwachung und Steuerung eines laufenden Experiments war zum Zeitpunkt der Prototypenerstellung softwareseitig noch nicht durchführbar. Dass sie es grundsätzlich ist, zeigte die Weiterführung mit der direkt(er)en Robotersteuerung durch Stefan Hechenberger. Was geglückt ist, ist ein erster Ansatz, die Roboter mit Sensorik auszustatten, die es ihnen ermöglichen kann, Arbeitsabläufe nicht "blind", sondern in Verhandlung einer gegebenen Situation und Umgebung durchzuführen. Die Hardware verblieb am Institut und wird im Rahmen weiterer Lehrveranstaltungen eingesetzt.


Um Videos und Medieninhalte sehen zu können, registrieren Sie sich bitte und loggen Sie sich ein.

Firmware RexScan.pdf

Fakten zu Rex ScanRDF-Feed
BetreuerGrasser Georg  + und Tamre Kadri  +
ImageRexScan008.jpg  +
LVDigital Architecture  +
Semester13SS  +
ThemaFaltungen  +
TitelRex  +
VerfasserMair Raimund  +
Persönliche Werkzeuge