Hi Alex,
statt eines Gyros würde ich einen Kompass verwenden, finde das einfacher. GPS kann auch helfen wenn die Karte bekannt ist.
Ansonsten, es gibt ja nicht den SLAM Alogrithmus, sondern viele verschiedene Ansätze, die man so weit vereinfachen kann dass es auch mit einem langsamem System funktioniert.
Ich bastle mir gerade ein Atmega-fähiges System mit 8 Ultraschallsensoren in 45° angeordnet. Das vereinfacht schon mal die Auswertung und Datenmenge. Die Karte ist im Prinzip bekannt (Rasterkarte), aber die kleinen Hindernisse werden von selbst eingetragen. Es wird bei jeder Positionsbestimmung im Prinzip ein Kartenvergleich 5x5m der Ultraschallsensoren und der globalen Karte vorgenommen, bei >70% Übereinstimmung wird die neue Position übernommen. Und nach SLAM werden erst danach neue Hindernisse in die Karte eingetragen, bzw ungültige gelöscht. Ich mach das einfach über einen Zähler: >20x Hinderniss erkannt => wird berücksichtigt, kein Hinderniss an dieser Stelle, Zähler runtersetzen.
Ablauf bei mir: zuerst wird von der letzten gültige Position über Odometrie die aktuelle Position ermittelt, und dann in 1m Umkreis von dieser Position aus verglichen ob es mit den Ultraschallwerten eine bessere Übereinstimmung gibt. Wenn ja, wird die neue Position übernommen, wenn nein kommt der Vergleich mit den GPS Daten. So soll der Robi von eine beliebigen Startposition aus seine aktuelle Position ermitteln können.
Und das ganze läuft auf einem Atmega1284p mit 16Mhz. Programmiert ist es schon, der Robi braucht aber noch 1-2 Wochen bis er zusammengebaut ist.
LG!
Lesezeichen