Neues Debug Tool

Version 2.0 meines debug tools ist nun fertig. Dazu habe ich das Programm kommplett neu geschrieben. Die Scanerdaten werden jetzt nur noch als Punkte angezeigt und das Bild nur aktualisiert, sobald ein neuer Scan zur Verfügung steht. Die von der Freiraumnavigation berechnete Fahrtrichtung wird als grüner Strich dargestellt.gui

Das Programm kann jetzt aber nicht mehr nur die Daten des Ir Sensors ausgeben, sondern auch alle anderen Daten, die dem Roboter zur Verfügung stehen. Diese reichen von den Daten der Lichtschranken über die Betriebsspannung des Roboters bis zur cycle time (Laufzeit) verschiedener Routinen.

Medianfilter

Ich habe jetzt einen Medianfilter zum filtern der Scanerdaten implementiert. Dieser Filter dient dazu, Ausreißer herauszufiltern. Dazu ersetzt er jeden Scanpunkt mit dem Median der k umliegenden Punkte.

Mein Medianfilter hat die Größe k = 5, was in der Praxis sehr gute Ergebnisse erzielt. Es gibt nun kaum noch grobe Messfehler. Allerdings habe ich immer noch ein Problem mit dem Rauschen der Daten. Ich denke aber, dass ich diese mit einem Linienfinder glätten kann.

Freiraumnavigation

Im Moment arbeite ich an einer Funktion in meinem Programm, die zu jedem Scan die beste Fahrtrichtung errechenen soll. Hier müssen mehrer Parameter berücksichtigt werden: die eigentlich geplante Fahrtrichtung, die Breite des Roboters und die Entfernung zu den Hindernissen. So ist die Berechnung recht komplex. Zur Zeit funktioniert mein Programm nur zuverlässig, wenn nicht allzu viele Hindernisse im Weg sind.

Die berechnete Fahrtrichtung wird grün dargestellt.

2D Umgebungsscan

Ich habe nun mein Visualisierungsprogramm angepasst. Der Roboter macht jetzt einen 180° Scan, dieser wird per WLAN an den Computer übertragen und dort grafisch ausgegeben. Auch habe ich den Filter für die Sensordaten stark verbesstert, es gibt kaum noch Aussreißer.
Die Zimmerecke wird sehr schön abgebildet!

Alle 1,8° wird eine Messung gemacht.

Räder drehen sich! (wieder)

Der Raspberry Pi ist jetzt auf der Platte montiert. Er ist auch schon mit dem µController über den Pegelwandler verbunden.

Auch alle Kabel sind nun angeschlossen. Bei dem „Umzug“ der Lichtschranken entstand ein Wackelkontakt an einem der Kabel, diesen habe ich repariert.

Die vier gelben LEDs sind hier wieder als Lichtschrankentester Programmiert. Sie leuchten nur, wenn sie nicht blockiert sind. Wegen der hohen Drehzahl der Motoren flackern sie sehr hochfrequent.

Wieder da

Nun bin ich seit einiger zeit wieder in Deutschland. Ich habe die Zeit in den USA sehr genossen.

Teile für den Schrittmotortreiber kamen mit der Post, nun habe ich ihn fertig zusammen gebaut. Jetzt arbeite ich an meinem Programm, um den Motor ansteuern zu können. Auch muss mein Visualisierungsprogramm angepasst werden, um alle Messergebnisse aus einem Scan als ein Bild darzustellen.

Roboter Betriebsystem 2.0

Seit der Roboter einsatzbereit ist, arbeite ich an der Implementierung meines eigenen Datenprotokolls. Dafür schreibe ich das Programm für den µC als auch das des Raspberry Pi kommplett neu. Dabei arbeite ich dann auch gleich an anderen Funktionen wie dem Logfile: alles was der Roboter tut (oder eben auch nicht) wird in diese Datei geschrieben. Dies hilft bei der Fehlersuche sehr.

Hier ein von meinem Roboter als HTML Dokument generiertes Logfile: Logfile Dieses ist zugegebenermaßen im Moment noch recht leer.

Dadurch bedingt, dass ich die Teile nach ein ander gekauft habe und immer testen musste, lief das meißte (wie die Motorsteuerung, Sensorprüfung) bis jetzt auf dem Microcontroller. Dies wird sich mit den neuen Versionen meiner Programme für den Raspi und den µC entgültig ändern.

Roboter ist wieder Fahrtauglich

Schon vor einer längerer Zeit habe ich den Roboter wieder zu laufen gebracht. Als Netzteil verwende ich hier ein Ladegerät für Autobatterien. Das funktioniert sehr gut. Die Transportbox hatt ihren Zweck wunderbar erfüllt. Obwohl der US Zoll mein Kofferschloss geknackt hatt, um die Inhalt zu inspizieren, blieb der Roboter komplett unbeschädigt. Nicht einmal ein Kabel hatt sich gelöst.

Jetzt arbeite ich dort weiter, wo ich in Deutschland aufgehört habe. Der Schrittmotor deht sich noch nicht ordentlich. Dafür werde ich einen speziellen Schrittmotortreiber löten oder kaufen.

Was aber im Moment wichtiger ist: der internationale Roboter-Wettkampf. Der Lehrer meiner Schule sprach mich darauf an und lud mich in die Robotik Gruppe ein. Wir bauen einen Roboter der in drei Minuten vier Kerzen löschen muss. Die Kerzen stehen hinter Hindernissen und sind zufällig in einem mit einem schwarzen Strich auf dem Boden makierten Gebiet verteilt. Mein Team besteht aus vier Leuten. Der Termin für den Wettkampf ist Anfang Mai.

Auch habe ich mich für einen andere Kategorie des Wettkampfs angemeldet. Mini Roboter. Ich versuche bis zum Wettkapftermin einen Roobter zu bauen, der 100g nicht überschreitet. Die Funktion ist eher zweitrangig, auf Gewicht und Größe kommt es an.

 

Spannende Aufgaben also! Da es hier aber auch so viel Anderes zu erleben gibt, werde ich wohl erstmal nicht an meinem „Hauptroboter“ arbeiten.