Odometrie ist der Erste Schritt für einen Gleichlauf der Antriebe.
Bei einseitigen Traktionsproblemen, kan nes aber trotzdem passieren das er Kurven fährt.
Ein Kettenfahrwerk wie das vom RP5 ist da nicht unbedingt von Vorteil, da das Wenden und Enge Kurven eher ein Rutschen ohne definierten Drehpunkt ist.
Aber die Gradeausfahrt verbessert es schon.
Wenn Du in meinem Tread, im ersten Post den letzten Code ansiehst, findest Du die erste Version meines hc-sr04 Codes (noch ohne Fehlerauswertung falls kein Hinderniss innerhalb der Maximalreichweite vorhanden ist).
Da verwende ich aber schon ISRs um im den Echopin zu verarbeiten. Die Hauptschleife kann also derweil andere Aufgaben ausführen. In dem Code halt die drei Eingänge des Linefollow Moduls auswerten.
Beim Umschreiben kannst Du im Code ja erst mal lauter Print() und Println() Befehle einfügen und so Marken und Zeitstempel ausgeben lassen.
Dann siehst Du was wann durchlaufen wird.
Das hilft dann beim Testen ob der Code auch das macht was man sich denkt was er machen soll.
Der nächste schritt wäre dann z.B den Servo ständig die Positionen -30°,0° und +30° anfahren zu lassen und während der Fahrt ohne Anhalten zu messen.
Bei einem Abstand von 20 cm kann dann während der Fahrt der Kurs in etwa 10° Schritten korrigiert werden. bei Erreichen von 10 cm Abstand dann wie bisher anhalten und z.B. in 5, 45° Schritten messen und abhängig vom Abstand ausweichen.
Damit lässt sich dann schon ein flexibleres Verhaltensmuster erzeugen.
Sind z.B. in einer Sackgasse alle 5 Messpositionen Mit Abständen unter 20oder 30cm belegt, kannst Du ihn um ca. 130° drehen lassen und erneut messen lassen. Selbst wenn dann nur eine Ausfahrt vorhanden ist, die knapp 1,5 Roboterbreiten breit ist, sollt er einen Ausgang finden.
Bei 130° würde er mit einer Auflösung von 10° in 12 Umdrehungen die ganze Umgebung mit dem Sensor in Position 0° erfassen.
Eine Andere Strategie ist bei Gradeausfahrt und freiem Weg bei Sensor Position 0° und Hinderniss bei 30° zwar weiterhin in 10° Schritten zu korrigieren, aber wenn Gradeaus ein Hinderniss ist und bei Sensor 45° keins, dann direkt um die 45° zu drehen.
Da fallen Dir aber bestimmt noch andere Strategien ein.
Mein Ziel war es die Bumper nur für dünne Stuhl und Tischbeine sowie zu flache Gegenstände zu benötigen.
Lesezeichen