Hallo.
Ich habe einen Roboter basierend auf zwei Arduinos, einem Raspberry Pi und einem Laserscanner (RP-Lidar).
Der Roboter ist über das Internet auf seinem Webinterface erreichbar.
Dank des Laserscanners und der Stepper Motoren (Dead Reconing) kann ich eine ziemlich gute Karte erstellen (probability map, danke der hohen Frequenz des Scanners sind Fehler auch schnell korrigiert) und darin navigieren (A*). Auch die Localization per Dead Reconing funktioniert recht gut, solange nichts gerammt wird. Etwas Drift tritt mit der Zeit natürlich auf. Um die zu korrigieren brauche ich einen pragmatischen Ansatz.
SLAM scheidet aufgrund der geringen Rechenleistung des PI aus.
Ein Ansatz wäre, sich am Startpunkt an einer Wand auszurichten und den Abstand zu dieser und zur 90° versetzen Wand zu messen (der Robot startet in einer Ecke). Dann kann sich der Robot nach einer Zeit wieder dorthin begeben, sich ausrichten (Orientierung korrigiert) und die Abstände messen (x/y korrigiert).
Die Korrektur findet dann halt selten statt. Aber das ist erstmal ok.
Aber da gibt es doch bestimmt noch einen besseren Ansatz. Montecarlo localization ist glaube ich auch zu aufwändig.
Hat da jemand Erfahrung und/oder eine gute Idee?
Robert
Lesezeichen