Liste der Anhänge anzeigen (Anzahl: 2)
Projekt "Robby will nach Hause":Wer will mitmachen
Liebe Asuro-Fans,
nach der ersten erfolgreichen geradeaus-Regelung haben wir uns jetzt ein größeres Projekt vorgenommen. Weiß noch nicht, wie schnell wir dazu kommen, es umzusetzen. Ihr seid jedenfalls alle herzlich eingeladen, Euch zu beteiligen.
Übrigens haben unsere Kinder den Asuro "Robby" getauft. Deswegen heißt das Projekt "Robby will...."
Die Aufgabenstellung (Skizze siehe Attachment Robby1.gif)
Die Positionsdefinition am Robby (Foto siehe Attachment RobbyFoto.jpg)
Liste der Anhänge anzeigen (Anzahl: 1)
Berechnung der Koordinatenänderung
Um die Aufgabenstellung lösen zu können, muss man dem Programm am Anfang die Startpostion P_START bekanntgeben. Ab dem Momment muss dann Robby aufgrund seiner Odometriedaten die aktuellen Koordinaten nachverfolgen.
Nimmt man an, dass die Zeit zwischen den Positionen P_0 und P_1 (siehe Attachment) so kurz ist, dass sich das Verhältnis der beiden Räderdrehzahlen nicht ändert, dann bewegt sich Robby entlang einer Kreisbahn.
Skizze dazu siehe Attachment Robby2.gif
Den Radabstand d kann man abmessen. Bei mir ist d=102mm.
Den gefahrenen Bogen b_1 für das rechte Rad und b_2 für das linke Rad muss man sich aus den Odometriedaten ausrechnen. Ich verwende den Zahnradaufkleber mit den 4 schwarzen Sektoren. Da sind es dann zwischen zwei Weiß/Schwarz-Übergängen 6mm, die Robby fährt.
Aufgabe ist es daher, zunächst die Koordinaten von Position P_1 aus den Koordinaten von P_0 und den Odometriedaten auszurechnen.
Skizze dazu siehe Attachment Robby2.gig
Liste der Anhänge anzeigen (Anzahl: 1)
Berechnung der neuen Koordinaten - Fortsetzung
Aus den Geometrischen Zusammenhängen im Bild Robby2.gif kann man die Gleichungen (1) bis (5) hinschreiben und kann man die Werte g und h berechnen.
Berechnung siehe Attachment Robby3.gif
Liste der Anhänge anzeigen (Anzahl: 1)
Ergebnis der Koordinatenberechnung
Hat zum Zeitpunkt t_0 Robby den Richtungswinkel Alpha_0, dann hat er nach seiner Kurvenfahrt den Richtungswinkel Alpha_1 = Alpha_0 - Beta,
wobei die Notation wieder aus dem Bild Robby2.gif entnommen ist.
Mit den Ergebnissen vom vorherigen Abschnitt, kann man somit die Positionskoordinaten P_1 = (x_1, y_1, Alpha_1, v_1) berechnen.
Siehe Gln. (18), (19), (13) und (16) am Attachment Robby4.gif
Sub-Projekt 1: Odometriedatenauswertung mit Zwischenwerten
Sub-Projekt 1: Odometriedatenauswertung mit Zwischenwerten
Meiner Meinung nach wird die größte Herausforderung sein, die Odometriedaten so auszuwerten, dass die Koordinatenänderungen von Robby ausreichend genau mitverfolgt werden können.
Da Robby ja kein GPS besitzt haben wir das Problem, dass wir ja nie die abosulte Position messen können, sondern nur inkrementell mitrechnen können, sich die Fehler also aufintegrieren.
Es reicht daher wohl nicht aus, so wie bei der Geradeausregelung einfach nur die Weiß/Schwarz-Übergänge zu zählen, sondern wir müssen wohl auch Zwischenwerte aus den Odometriedaten auswerten.
Sub-Projekt 1 wäre daher:
Die Odometriedaten so auszuwerten, dass nicht nur in ganzen Weiß/Schwarzübergängen gezählt wird, sondern auch Zwischenwerte gemessen werden, um möglichst genau die gefahrenen Bogenlänegn b_1 und b_2 zu erhalten.
Input: Odomietriedaten
Output: möglichst genaues b_1 und b_2
Sub Projekt 2: Navigationsalgorithmus
Sub Projekt 2: Navigationsalgorithmus
Wenn man alles bisherige geschafft hat, dann beginnt der Spaß. Jetzt kann man sich überlegen, nach welchem Algorithmus Robby nach Hause findet.
Da wird wohl für den Anfang ein Primitiv-Algorithmus reichen:
1. Lenke so, dass Du in Richtung Ziel schaust und fahre richtung Ziel solange bis Du an einem Hindernis anstoßt (Fortsetzung bei 2.) oder das Ziel erreichst (Fortsetzung bei 3.).
2. Wenn Du an einem Ziel angestoßen bist, dann fahre eine Zufallszahl zwischen 100mm und 150mm zurück (um eine Endlosschleife zu vermeiden), dann fahre in einer Rechtskurve wieder nach vorne, solange bis Du wieder anstößt (Fortsetzung bei 2.) oder 3 Sekunden vergangen sind (Fortsetzung bei 1.) oder zu am Ziel angekommen bist (Fortsetzung bei 3.)
3. wenn Du am Ziel angekommen bist, bleibe stehen.
Als Beispiel siehe Skizze Robby1.gif
Klingt doch gar nicht so kompliziert. =D>
Gibt es wen, der das auch probieren will (oder schon probiert hat)?
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo dorothea,
ist ja ne schwierige Aufgabenstellung, aber was soll's.
Amerkung zum Subprojekt 1:
Können wir als Einschränkung annehmen, dass wir nicht in allzu hellen Umgebungen fahren? Die Sensoren der Odometrie haben bei einem hohen Umgebungslicht eigendlich keine Funktion mehr, da der auswertbare Unterschied zwischen Hell und Dunkel extrem klein wird. Bei 'dämmerigem Umgebungslicht' ließen sich bestimmt 'Zwischenwerte' als Zähltakte erzeugen.
Als Auswertung hierzu habe ich mal die Excel-Liste OdoMittelReihe-ALLE.xls angehängt. Da sind von zig Messreihen die Ergebnisse von Hell- und Dunkel-Messwerten bei unterschiedlichstem Umgebungslicht zusammengefasst. (Links im Diagram sehr helles Umgebungslicht; rechts Dunkel => LD=Linker Sensor;Dunkle Stelle am Zahnrad / RH=Rechter Sensor;Helle Stelle am Zahnrad) Hier sieht man sehr gut, dass der Kontrast immer schlechter wird.
Genau zu diesem Problem habe ich, merkwürdigerweise heute, die Idee gehabt an den gedruckten Bildchen auf den Zahnrädern etwas zu ändern.
Die originale Anordnung zwischen der LED, schwarz/weiss-Reflektor und Sensor, ist nicht unbedingt optimal. (Die LED und der Sensor liegen nicht auf der Achse, sondern liegen ca 4 mm darüber.)
Als Muster für einen (hoffentlich) besseren Kontrast habe ich mein noch nicht fertiges Arbeitsmuster schon mal angehängt. Hier ist noch nichts getestet. ihr sehe nur meinen ersten Entwurf!! (Ist für das linke Rad, Für rechts muss es gespiegelt werden.)
Amerkung (eher Frage) zum Subprojekt 2:
Warum möchtest du bei einer Ausweichbewegung im Bogen fahren?
Die Positionsberechnung wird dadurch doch nur unverhältnissmäßig schwieriger.
(sehe gerade, das stochri hier mal wieder schneller ist als ich. Sein Einwand hat natürlich wieder mal Hand und Fuss)