Aufgabenstellung Umsetzung Ergebnis - Robotics Lab
Transcrição
Aufgabenstellung Umsetzung Ergebnis - Robotics Lab
Etch A Sketch - NXT 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 zeichen. Des Weiteren sollte die Bedienung des Programms auch über Bluetooth möglich sein. Umsetzung Wir haben mit Hilfe von Lego ein Gerüst um das Etch A Sketch gebaut. Diese ist möglichst klein gehalten und fest am Rahmen des Etch A Sketch angebracht. So ist es leicht möglich, das Bild durch schütteln zu löschen. Universität Heidelberg IWR - Robotics Lab Nun eine kurze Beschreibung der wichtigsten Programmteile. Bluetoothkommuniktaion Da der NXT - Brick selbst keine gute Möglichkeit bietet Daten einzugeben, haben wir uns für eine Kommunikation via Bluetooth entschieden. D.h. die Eingabewerte werden via Handyapp (NXT - Mail) an den NXT geschickt. Berechnen von Funktionswerten und Skalierung Sind alle benötigten Daten eingegeben, so können die Funktionswerte gemäß der gewählten Funktion berechnet werden. Die Werte werden anschließend in einem Array gespeichert. Die zuvor berechneten Werten werden dann auf den Bildschirmbereich skaliert. Korrigieren der Fehler des Roboters Aufgrund des Aufbaus an sich, haben wir mit einigen Fehlerquellen zu kämpfen, die genaues Zeichnen erschweren. Einerseits der Etch A Sketch, aber auch der NXT selbst. Deshalb haben wir versucht Diese Fehler aufgrund der Funktionswerte zu erkennen und auszugleichen. Wie z.B. der vertikale Schlupf ist nach langen flachen Passagen sehr groß. Deshalb versuchen wir solche Bereiche zu erkennen und gezielt diesen Schlupf anszugleichen. Zeichnen der Funktion Als letztes wird nun die Funktion gezeichnet. Zu Beginn wird das Koordinatenkreuz gezeichnet, welches sich an die Funktionswerte anpasst. Schlussendlich werden die berechneten und korrigierten Werte nach der Reihe angefahren und so die Funktion gezeichnet. Ergebnis Die Kommuniktaion mit dem Brick via Bluetooth und das Zeichnen von Polynomen funktioniert. Hardware Für den grundsätzlichen Aufbau haben wir Lego verwendet und so 2 Motorhalterungen entwickelt. Da die Systeme nicht direkt kompatibel sind, haben wir die 2 Halterungen mit Ducktape am Etch A Sketch befestigt. Die Motoren können das Etch A Sketch über Zahnräder mit fest gewählter Übersetzung bedienen. Programmaufbau Zunächst wird entsprechnend der Funktion und Auflösung ein Array von Werten berechnet. Diese Punkte werden anschließend in Koordinaten umgewandelt, welche vom Programm nun abgefahren werden. Die Interaktion mit dem Roboter erfolgt via Bluetooth, so können vorgefertigte Funktionen ausgewählt werden oder man wählt eine Funktion und legt eigene Parameter fest.(z.B. Grad des Polynomes, Amplituden, ...) Programmablauf Probleme Ein großes Problem stellt die Programmiersprache NXC dar, denn diese unterstützt die Verwendung von Floats kaum. Des Weiteren sind nur einfache mathematische Funktionen implementiert, was das Umsetzen von komplexeren Funktionen erschwert. Hinzu kommt die Ungenauigkeit des Etch A Sketch, bzw. der Schlupf, der sich durch den Aufbau ergibt. Das Diagramm zeigt den logischen Verlauf des Programmes und zeigt so 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 so gezeichnet werden. Die Genauigkeit könnte außerdem durch das Verwenden eines höheren Übersetzungsverhältnisses verbessert werden. Für mehr Informationen zu unserem Roboter, besucht die Seite des Robotiklabors der Uni Heidelberg: www.roboter.uni-hd.de Dort lässt sich unsere Projektseite finden!