Kopfzeile Kopfzeile Kopfzeile

Das Programm AsuroStrecke

Auswertung der aufgezeichneten Daten

Das Programm 'AsuroStrecke' dient dazu, die vom Asuro aufgezeichneten Meßwerte nach der Fahrt zu visualisieren. Das Programm ist in C# geschrieben und macht sich die komfortablen Zeichenfunktionen der Windows Forms GUI API zunutze.

Das Programm erstellt Graphen, die die Meßwerte im Zeitverlauf darstellen und versucht, aus den Odometriedaten sowie den Ansteuersignalen der Motoren die gefahrene Strecke zu rekonstruieren. Insgesamt werden auf vier verschiedene Tabs graphische Darstellungen der Fahrt erzeugt.

Tab 1: Odometrie

Dieses Diagramm stellt die über die Odometrie gemessene Fahrgeschwindigkeit des Asuro in Millimetern pro Sekunde dar. Die Geschwindigkeit wird separat am linken und am rechten Rad gemessen, der Mittelwert dieser beiden Meßwerte gibt die Gesamtgeschwindigkeit des Asuro zum jeweiligen Zeitpunkt an.
Die beiden Meßreihen sowie der berechnete Mittelwert werden jeweils in einem eigenen Graphen dargestellt und können zur besseren Übersicht separat ein- und ausgeschaltet werden. Die durchschnittliche Fahrgeschwindigkeit des Asuro über den gesamten Zeitverlauf der Datenerfassung wird zusätzlich ermittelt und über dem Diagramm angezeigt.

Die negativen Erfahrungen mit der Odometrie, die bereit beim Versuch auftraten, eine Rückkopplung für die Fahrtregelung zu ermöglichen, bestätigen sich bei der Analyse dieses Diagramms:
Die Odometriedaten sind leider viel zu ungenau um eine vernünftige Auswertung zu ermöglichen. Selbst bei ruhiger, gleichmäßiger Fahrt geradeaus variieren die Meßwerte der Odometrie sehr stark.

Vermutete und experimentell ermittelte Ursachen für die schlechten Messungen:

  • Die beiden Zahnräder, die die Rotation von der Motorachsen auf die Radachsen übertragen, und an denen die Odometriemessung vorgenommen wird, sind nicht fest genug montiert sondern haben einen kleinen Bewegungsspielraum, der die Messung beeinflußt.
  • Die Odometriemessung erfolgt nicht über Lichtschranken sondern über zwei Phototransistoren, die mit Hilfe des reflektierten Lichts von Infrarotdioden die Farbübergänge der Segmentscheiben an den Zahnrädern messen. Da diese Messung auf Helligkeitsänderungen basiert, ist sie ähnlich wie die Bodenabtastung anfällig für Störungen durch das Umgebungslicht. Der Helligkeitsunterschied zwischen hellen und dunklen Scheibensegmenten ist so gering, daß Helligkeitswechsel der Umgebungsbeleuchtung von den Phototransistoren als Radbewegungen interpretiert werden.
  • Eine zusätzliche Störung der Messung tritt bei zu hoher Umgebungsbeleuchtung auf. Durch das helle Licht von außen haben die Farbsegmente nur noch geringen Einfluß auf die Meßwerte und selbst bei einer niedrigen Hysterese werden nicht mehr alle Farbübergänge erkannt. Dies ist besonders problematisch, wenn das Licht von der Seite auf den Asuro trifft und so die beiden Odometriemessungen unterschiedlich stark beeinflußt.
  • Die mitgelieferten Segmentscheiben sind scheinbar nicht von allzu hoher Qualität. Die schwarz bedruckten Segmente bleichen mit der Zeit durch (Sonnen-)Lichteinwirkung aus. Eventuell wird die Farbe auch während der Fahrt abgerieben, weil die Segmentscheibe direkt an der Hauptplatine des Asuro anliegt. Besonders eine der verwendeten Scheiben weist eine deutliche Aufhellung der schwarzen Segmente auf, was eine Erkennung der Farbübergänge zusätzlich erschwert.

Tab 2: Strecke (Odometrie)

Dieses Diagramm rekonstruiert die Fahrtstrecke des Asuro aus den aufgezeichneten Odometriedaten. Aufgrund der großen Ungenauigkeit der Odometriedaten hat diese Rekonstruktion erwartungsgemäß nur eine geringe Ähnlichkeit zur tatsächlich gefahrenen Strecke.
Diese Visualisierung der Messung erlaubt im Vergleich mit der tatsächlichen Strecke allerdings einige Rückschlüsse auf die Ursachen der Meßfehler:
Bei einer Testfahrt auf gerader Strecke mit Seitenlicht von rechts wird diese Fahrt als Rechtskurve gezeichnet. Während der linke Phototransistor der Lichtquelle abgewandt ist, wird der rechte Phototransistor direkt angestrahlt und erkennt viele Farbübergänge nicht mehr. Als Resultat wird am rechten Zahnrad eine geringere Geschwindigkeit gemessen obwohl sich beide Zahnräder gleich schnell drehen und die Rekonstruktion zeichnet eine nicht vorhandene Rechtskurve.

Fahrt auf einer geraden Linie mit starkem Licht von der Seite:

Tatsächlicher Streckenverlauf: Streckenrekonstruktion nach Odometriemessung:
Streckenverlauf nach Motorwerten Streckenverlauf nach Odometriewerten

Tab 3: Motordiagramm

Dieses Diagramm stellt die Ansteuerung der Motoren im Zeitverlauf dar. Die Y-Achse gibt den Anteil für die Pulsweitenmodulation auf einer Skala von 0 (Motor aus) bis 255 (Motor volle Leistung) an. Negative Werte bezeichnen eine entsprechende Motorleistung in umgekehrter Richtung (Rückwärtsfahrt). Für den linken und den rechten Motor wird jeweils ein eigener Graph dargestellt. Ein dritter Graph gibt die über die Phototransistoren ermittelte Position des Asuro in Relation zur verfolgten Linie an. Die Null-Linie des Diagramms repräsentiert hierbei eine Position auf der verfolgten Linie, positive Werte des Graphen zeigen ein Verlassen der Linie auf der linken Seite an, negative Werte zeigen entsprechend ein Verlassen der Linie auf der rechten Seite an.

Die PWM-Signalwerte lassen nur bedingte Rückschlüsse auf das tatsächliche Fahrverhalten des Asuros zu, es zeigen sich Unterschiede zwischen dem tatsächlichen Fahrverhalten und dem für entsprechende Ansteuerwerte erwarteten Fahrverhalten.
Beobachtete Ursachen für Abweichungen zwischen den Ansteuerwerten und dem erwarteten Fahrtverhalten:

  • Die Asuro-Motoren sind unterschiedlich leistungsfähig und drehen sich bei gleichen Ansteuerwerten unterschiedlich schnell.
  • Der Asuro ist relativ leicht und die Reifen haben nur eine geringe Kontaktfläche mit dem Untergrund. Dies bewirkt eine schlechte Bodenhaftung und der Asuro neigt zum Rutschen wenn beide Reifen mit deutlich unterschiedlicher Geschwindigkeit drehen.

Im Vergleich zur Qualität der Odometrie stellen diese Ursachen allerdings das kleinere Übel dar. Solange der Asuro bei gleichen Ansteuerwerten für beide Motoren möglichst geradeaus fährt oder intern mit einem Verstärkungswert für einen der Motoren entsprechend kalibriert wird, ist mit diesen Werten eine recht zuverlässige Auswertung möglich.

Tab 4: Strecke (Motorwerte)

Dieses Diagramm rekonstruiert die Fahrtstrecke des Asuro aus den aufgezeichneten PWM-Werten der Motoren. Der dargestellte Verlauf entspricht somit nicht der der tatsächlich gefahrenen Strecke sondern der Strecke, die der Asuro fährt, wenn beide Motoren identisch auf Ansteuersignale reagieren und es keine Störungen durch ungenaue Konstruktion des Asuro oder äußere Einflüsse wie unterschiedlich glatte befahrene Oberflächen gibt. Mit entsprechender Kalibrierung des Asuro läßt sich allerdings eine verhältnismäßig gute Streckenzeichnung anfertigen.

Strecke 1:

Strecke1_Foto Strecke1_Prog

Strecke 2:

Strecke2_Foto Strecke2_Prog

Verfahren zur Streckenrekonstruktion

Für beide Streckendarstellungen wird das gleiche Verfahren zur Rekonstruktion der Fahrtstrecke verwendet. Die Darstellungen unterscheiden sich lediglich dadurch, ob die Meßwerte der Odometer oder die Ansteuerwerte der Motoren als Grundlage genommen werden.

Ausgehend von einem willkürlichen Ausgangspunkt (Position (0,0), Fahrt in Richtung der positiven X-Achse), werden einzelne Punkte der gefahrenen Strecke in der Ebene ermittelt. Hierzu wird senkrecht zur Fahrtrichtung eine Gerade durch den Ausgangspunkt angelegt, die die Radachse des Asuro repräsentiert. Auf dieser Geraden wird in einem festen Abstand in beide Richtungen je ein Punkt markiert, der die Radposition des Asuro angibt. Dieser Abstand ist eigentlich konstant, aber da verschiedene Asuros unterschiedliches Fahrverhalten aufweisen, ist dieser Wert im AsuroStrecke-Programm variabel gehalten, um eine Anpassung an verschiedene Asuros zu ermöglichen. Der Wert muß experimentell ermittelt werden, weil seine genaue Skalierung von der Geschwindigkeit des Asuro abhängt, die sich nicht genau bestimmen läßt.
An die Radpositionen werden die Geschwindigkeiten beziehungsweise die Motorwerte als Vektoren in Fahrtrichtung angelegt. Für die Motorwerte ist dabei programmintern noch ein Vorfaktor nötig um sie auf die passende Länge in Relation zu den Geschwindigkeitsvektoren zu skalieren.
Mittlere Geschwindigkeit * Vorfaktor = Mittlerer PWM-Wert. Bei einer Geschwindigkeit von ~89mm/s und dem mittleren PWM-Wert 100 ergibt sich hierbei ein Vorfaktor von 1.1236. Dieser muß noch halbiert werden, weil die Motorwerter in doppelt so hoher Frequenz vorliegen wie die Geschwindigkeitswerte, wodurch sich ein endgültiger Vorfaktor von 1/1.78 ergibt.
Der Mittelpunkt der Strecke zwischen den Endpunkten der angelegten Vektoren ergibt den nächsten Punkt der Fahrtstrecke. Das Verfahren wird an diesem Punkt wiederholt, indem die Radpositionen in den Richtungen der Verbindungsstrecke markiert werden bis alle Geschwindigkeitsvektoren beziehungsweise PWM-Werte abgearbeitet sind.

Streckenrekonstruktion

Bedienung des Programms

1-3 4
5 6
7
  1. Diese Schaltfläche dient dazu, eine Protokolldatei zu laden, die die vom Asuro aufgezeichneten Meßwerte enthält.
  2. Dieses Textfeld zeigt den Inhalt der geladenen Protokolldatei an, sofern diese korrekt eingelesen und ausgewertet werden konnte. Wenn ein Fehler auftritt, weil die Datei Daten in einem ungültigen Format enthält, wird hier eine entsprechende Fehlermeldung ausgegeben.
  3. Dieses Diagramm stellt die Meßwerte der Odometer und die ermittelte Durchschnittsgeschwindigkeit pro Zeitintervall im Zeitverlauf dar. Zur besseren Übersichtlichkeit können die einzelnen Graphen über die Kontrollfelder oben rechts beliebig ein- und ausgeschaltet werden.
  4. Dieses Diagramm zeigt den Streckenverlauf an, wie er sich durch die Rekonstruktion aus den Odometriedaten ergibt. Der rote Punkt kennzeichnet den Startpunkt der Fahrt, die Strecke wird in Sekundenintervallen abwechselnd schwarz und rot gezeichnet. Dies ermöglicht beim Betrachten der Streckenzeichnung eine Abschätzung des Zeitverlaufs. Über die Schaltfläche 'Messpunke' werden die bei der Rekonstruktion ermittelten Punkte blau angezeigt, die den Streckenverlauf vorgeben. Die Abstände zwischen diesen Punkten entsprechen einer Fahrtzeit von 100ms.
  5. Dieses Diagramm stellt die Ansteuerwerte der beiden Motoren und die Position des Asuro in Relation zur verfolgten Linie dar. Zur besseren Übersichtlichkeit können die einzelnen Graphen über die Kontrollfelder oben rechts beliebig ein- und ausgeschaltet werden.
  6. Dieses Diagramm zeigt den Streckenverlauf an, wie er sich durch die Rekonstruktion aus den Motorwerten ergibt. Der rote Punkt kennzeichnet den Startpunkt der Fahrt, die Strecke wird in Sekundenintervallen abwechselnd schwarz und rot gezeichnet. Dies ermöglicht beim Betrachten der Streckenzeichnung eine Abschätzung des Zeitverlaufs. Über die Schaltfläche 'Messpunke' werden die bei der Rekonstruktion ermittelten Punkte blau angezeigt, die den Streckenverlauf vorgeben. Die Abstände zwischen diesen Punkten entsprechen einer Fahrtzeit von 50ms.
  7. Dieses Tab zeigt als Referenz ein Bild der Originallinie, der der Asuro gefolgt ist. Die Streckengraphik wird beim Laden einer Datei mit Meßdaten automatisch geladen, sofern sie gefunden wird. Der Dateiname unter dem die Graphik gesucht wird, entspricht dem Namen der Streckendatei bis zum ersten Auftreten eines Unterstrichs. Dadurch wird es ermöglicht, mehrere Meßdaten-Dateien zur gleichen Streckengraphik zu sammeln, indem diese hinter einem Unterstrich eine eindeutige Bezeichnung erhalten. Die Dateien test.txt, test_1.txt und test_asdf_002.txt verweisen somit alle auf die gleiche Graphik test.jpg.
  8. Radabstand bezeichnet den für die Streckenrekonstruktion benötigten Abstand der Räder zum Mittelpunkt der Radachse. Dieser Wert beeinflußt den Wendekreis des Asuro für die Rekonstruktion und hängt individuell vom verwendeten Asuro und dessen Fahrverhalten ab. Der experimentell ermittelte Standardwert muß je nach verwendetem Asuro angepaßt werden, falls die rekonstruierten Kurven unabhängig von ihrer Richtung zu stark oder nicht stark genug gezeichnet werden. Änderungen des Radabstandes werden umgehend für beide gezeichneten Streckenverläufe umgesetzt, was eine komfortable Kalibrierung des passenden Wertes ermöglicht.
  9. Der Odometerausgleich dient dazu, unterschiedlich empfindliche Messungen der beiden Odometer auszugleichen. Bei positiven Werten werden die Meßwerte des linken Odometers durch einen entsprechenden Vorfaktor vergrößert, bei negativen Werten entsprechend die des rechten Odometers. Dies dient dazu, eine bekannte 'Meßschwäche' auf einer Seite auszugleichen. Änderungen dieses Kalibrierungswertes werden umgehend in der Streckenrekonstruktion umgesetzt.
  10. Der Motorausgleich dient analog zum Odometerausgleich zur nachträglichen Kalibrierung der aufgezeichneten PWM-Signale falls der verwendete Asuro über unterschiedlich starke Motoren verfügt und bei gleichen Ansteuerwerten nicht geradeaus fährt.
  11. Mit der Option 'Messpunkte' können für alle Diagramme die genauen Meßpunkte der Graphen angezeigt werden. Bei den Streckenzeichnungen werden bei Aktivierung dieser Option die Punkte markiert, die sich während der Rekonstruktion der Strecke ergeben und die den Verlauf der Fahrtstrecke angeben.

Softwaredokumentation des Programms

Die Softwaredokumentation wird aus den Codekommentaren des Programms mit Hilfe des Microsoft Dokumentationscompilers Sandcastle erstellt.

Softwaredokumentation