Hallihallo,
folgende Grafik zeigt die von meinem aktuellen Robbiprojekt erzeugte Karte meines Kellers. Als Linien schwarz eingezeichnet der über Raddecoder gemessene Kurs, blau der korrigierte Kurs.
Start ist mittig links, danach einmal durch den unteren Bereich, dann nach oben durch die Waschküche (der große Raum oben), anschließend wieder zurück zum Ausgangspunkt.
Die Kurskorrekturen habe ich aus den Rundumscan-Daten erzeugt, die als Kreuzchen und Linien (über einen Algorithmus gebildet) die Konturen der Hindernisse grob abbilden. Dabei habe ich erst einmal nur die von der aktuellen Position gemessenen Hindernislinien mit den in der Karte bereits vorhandenen Linien verglichen.
Mit einem Pfeil rot gekennzeichnet mein Problem: Der zweimal durchfahrene "Flaschenhals", der als Bindeglied die Waschküche mit dem Rest verbindet und dessen Messungen (wie bei allen Messungen) Fehler aufweisen, die eine Winkelverschiebung der beiden Kartenteile relativ zueinander bewirken (Die Waschküche steht zum Rest des Flurs unten etwas schräg und NEIN, DER MAURER HAT NICHT GETRUNKEN).
Jetzt also meine Frage: Kann man das irgendwie kompensieren? Wie macht ein offizieller SLAM-Algorithmus das? Oder treten bei der Verwendung von SLAM beim Durchfahren solcher Flaschenhälse die gleichen Winkelfehler von Kartenteilen zueinander auf?
Mir fallen für dieses Problem eigentlich nur zwei Lösungen ein:
- die Pfuschlösung: GEHE VON RECHTWINKELIGEN UMRISSEN AUS UND KORRIGIERE DIE LAGE DER HINDERNISSE UND DER POSITION ENTSPRECHEND.
- Die Messlösung: verbessere die Flaschenhalsmessung durch wiederholte Messungen und Mittelwertbildung. Dann aber das Folgeproblem: woher weiß der Robbi, wo ein Flaschenhals liegt?
Fällt Euch da etwa Besseres ein?
Lesezeichen