project poster - Robotics Lab Uni Heidelberg

Transcrição

project poster - Robotics Lab Uni Heidelberg
Etch A Sketch - NXT
Universität Heidelberg
Gruppe A, SoSe 2013
Team: Riexinger Felix, Schierhuber Tobias
Betreuer: Markus Kurz und Thomas Kloepfer
Aufgabenstellung
Programmteile
Wir wollen mit Hilfe eines Lego - NXT Baukastens einen Roboter entwickeln, welcher anschließend in der Lage ist, verschiedene einfache
Funktionen auf einem Etch A Sketch zu zeichnen. Die Bedienung des
Programmes sollte via Bluetooth erfolgen.
Umsetzung
Wir haben mit Hilfe von Lego ein Gerüst um das Etch A Sketch gebaut. Dieses wurde kompakt gehalten und fest am Rahmen des Etch A
Sketch angebracht. So ist es gut möglich, das Bild durch schütteln zu
löschen.
IWR - Robotics Lab
Nun eine kurze Beschreibung der wichtigsten Programmteile.
Bluetoothkommunikation
Die Eingabewerte werden via Handyapplet (NXT - Mail) an den NXT
geschickt.
Berechnen von Funktionswerten und Skalierung
Sind alle benötigten Daten übermittelt, werden die Funktionswerte berechnet. Diese werden anschließend auf den Anzeigebereich des Etch
A Sketch skaliert.
Korrigieren der Fehler des Roboters
Aufgrund des Aufbaus haben wir mit einigen Fehlerquellen zu kämpfen,
die ein genaues Zeichnen erschweren. Dies betrifft einerseits das Etch
A Sketch, aber auch die NXT - Motoren. Aufgrund der Funktionswerte
haben wir versucht, Fehler zu erkennen und auszugleichen. Der vertikale Schlupf ist nach langen flachen Passagen sehr groß. Deshalb versuchen wir solche Bereiche zu erkennen und gezielt diesen Schlupf
auszugleichen.
Zeichnen der Funktion
Zu Beginn wird das Koordinatenkreuz gezeichnet, welches sich an die
Funktionswerte anpasst. Danach werden die berechneten und korrigierten Werte der Reihe nach angefahren und so die Funktion gezeichnet.
Ergebnis
Die Kommunikation mit dem Brick via Bluetooth und das Zeichnen
von Polynomen funktioniert.
Hardware
Für den grundsätzlichen Aufbau haben wir 2
Motorhalterungen entwickelt. Die Motoren
können das Etch A Sketch über Zahnräder, mit
fest gewählter Übersetzung, bedienen.
Probleme
Programmaufbau
Zunächst wird entsprechnend der Funktion und Auflösung ein Array
von Werten berechnet. Diese Werte werden nacheinander angefahren.
Die Interaktion mit dem Roboter erfolgt via Bluetooth. So kann man
zwischen vorgefertigten Funktionen und selbstkonfigurierbaren Funktionen wählen(z.B. Grad des Polynomes, Amplitude, ...)
Ein großes Problem stellt die Programmiersprache NXC dar, denn diese unterstützt die Verwendung des Datentyps Float kaum. Des Weiteren sind nur einfache mathematische Funktionen implementiert, was
das Umsetzen von komplexeren Funktionen erschwert. Hinzu kommt
die Ungenauigkeit des Etch A Sketch und der NXT - Motoren sowie
der Schlupf, der sich durch den Aufbau ergibt.
Programmablauf
Das Diagramm zeigt die Kernelemente der Programmierung.
Start
Fehler des
Etch A Sketch
ausgleichen
Bluetooth
Auswahl der
Funktion
Zeichnen des
Koordinatenkreuzes
Berechnen der
Funktionswerte
Anfahren der
Relativkoordinaten
Skalieren
Ende
Ausblick
Durch die Implementierung von mathematischen Funktionen, wie der
Exponentialfunktion, können eine Vielzahl von neuen Funktionen berechnet und gezeichnet werden. Die Genauigkeit kann über das
Übersetzungsverhältnis verbessert werden.
Für mehr Informationen zu unserem Roboter, besuchen Sie die Seite
des Robotiklabors der Universität Heidelberg: www.roboter.uni-hd.de