Odometrie alleine ist nach spätestens 30 min. fahren immer ungenau - oft schon nach 30 sec.
Wenn du andererseits im unbekannten Terrain herumfährst, kannst du überhaupt nicht exakt navigieren, denn du hast ja keine Ortsreferenzdaten: da kannst du höchstens möglichst genau "koppeln" (also Ortbestimmung relativ zum Startpunkt - englisch: "dead reckonning").
Professionelle Systeme machen das indoors mit Sensorfusion (Odometrie, Gyro, Accelerometer) und stochstischen Filtern, insb. Kalmanfiltern (z.B. Staubsaugerroboter).
Ohne externe Referenzen mit Peilungen bekommst du aber nie eine wirklich genaue Ortsbestimmung.
Das brauchen aber keine Baken zu sein, es gehen theoretisch auch eine Vielzahl von Transpondern, die du überall verteilst, oder eine Vielzahl von (Ultraschall-, IR-) Entfernungsdaten in alle möglichen Richtungen.
In diesem Falle brauchst du aber zur Ortsberechnung ebenfalls stochastische Filter, am ehesten funktionieren hier SMC (sequentielle Monte Carlo Methoden, auch "Partikelfilter" genannt): die funktionieren perfekt, wenn die Referenzwerte stark verrauscht sind, aber man stattdessen ein vielzahl dieser Referenzen hat. Auch Odometriedaten und Gyro-Werte kann man in den SMC mit einkalkulieren.
Beide stochastischen Filter (Kalman und SMC) brauchen aber als Basis sehr große vorweg bekannte Datenmengen (z.B. Standardabweichung der Messgenauigkeiten sämtlicher Sensoren und/oder eine bekannte Karte des betr. Raums) und sehr viel Mathematik zur Auswertung. Ein ARM-Prozessor (wie der Arduino Due oder der Lego NXT) samt preemptivem Multitasking für Navigation in Echtzeit sind sicher Vorraussetzung. Vorgegebene oder ermittelte Karten lassen sich am bestem auf dem Flash speichern, quasi wie ein Schachbrettmuster.
Guckst du z.B. hier:
Lesezeichen