Ich mache SLAM mit einem vierrädrigen Differentialantriebsroboter (Zweiradantrieb), der durch einen Flur fährt. Der Flur ist nicht überall flach. Und der Roboter dreht sich, indem er sich an Ort und Stelle dreht und dann in die resultierende Richtung fährt. Der SLAM-Algorithmus muss nicht online ausgeführt werden.
Der Roboter nimmt Messungen von einer IMU / Gyro-Messung mit Riemen nach unten vor (ax,ay,az,wx,wy,wz)
, wobei ax
sich die Beschleunigung in x-Richtung und wx
die Winkelbeschleunigung um die x-Achse bezieht . Der LIDAR scannt den Flur mit einem 270-Grad-Bogen und misst Bereiche und Winkel. Soweit ich weiß, weist der Flurweg jedoch keine erkennbaren Merkmale auf, es sei denn, er biegt ab
Ich muss den besten Weg finden, um die vom Encoder gemessene vorgeschlagene Aktion mit IMU- und LIDAR-Daten zu verschmelzen. Für mich ist es sinnvoll, das Gieren von IMU mit Encoderdaten zu verschmelzen, um ein besseres Gefühl für die Überschrift zu erhalten. Aber wie sollte ich LIDAR-Daten einbeziehen?
Was ist im Wesentlichen das geeignete Messmodell und wie sollte ich Rauschen in das Bewegungsmodell integrieren ? Neben dem Hinzufügen von Gaußschem Rauschen (0,σ)
?
Nachtrag
Das ist etwas orthogonal zur Frage, aber genauso verwirrend für mich. Derzeit verwende ich einen Partikelfilter für SLAM, und ich bin ein wenig verwirrt darüber, ob die Unsicherheit der Winkelbeschleunigung in den Partikeln selbst dargestellt werden soll. Ich sehe zwei Möglichkeiten:
Ein separater Navigationsfilter, der EKF (oder irgendetwas wirklich) verwendet, um zuerst einen Vektor der "besten Schätzung" der Winkelbeschleunigungsmatrix zu finden, und dann diese Matrix als absolute Wahrheit für den Partikelfilter zu verwenden. Damit ist eine Drift in den Partikeln nicht auf eine Unsicherheit der Winkelbeschleunigung zurückzuführen.
Integrieren Sie die Unsicherheit selbst in die Partikeldrift. Diese Option erscheint sinnvoller, aber ich bin mir nicht sicher, wie dies grundsätzlich geschehen soll.