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