Warum brauchen wir im SLAM-Buch für Dummies überhaupt die Kilometerzähler, wenn der Roboter die vom Laserscanner abgerufenen Daten verwendet, die genauer sind als die Kilometerzähler? Warum nicht einfach den Laserscanner erneut verwenden und sich von der Kilometerzähler entfernen? Gibt es einen Beitrag der Kilometerzähler, den der Laserscanner nicht hat? Sind alle SLAM-Algorithmen funktionsbasiert?
localization
slam
mapping
Xegara
quelle
quelle
Antworten:
Sie lesen es zu eng.
Sie "brauchen" keinen Kilometerzähler. SLAM ist einfach eine Möglichkeit, Sensorschätzungen zu einer konsistenten Schätzung des Roboterzustands zusammenzuführen.
"Feature-basiert" bedeutet nicht unbedingt, dass Sie überall in der Umgebung identifizierbare Features haben müssen.
Erstes Prinzip der Sensorfusion: Zwei Schätzungen sind besser als eine!
Beispiel
Ich habe das Buch "für Dummies" nicht gelesen, aber wenn sie das folgende numerische Beispiel nicht machen, würde ich das Buch in Brand setzen und ein besseres bekommen. Und wenn sie tun , diesem Beispiel haben, dann frage ich mich , warum hast du es nicht erwähnt!
(Sie können in der Mathematik hier folgen )
Ein Roboter befindet sich an Position und bewegt sich nach rechts (Erhöhung von ). In dieser perfekten Welt sind die Dynamik und die Sensormodi linear. (Andernfalls verwenden Sie EKF, PF oder eine andere Variante).xx=0 x
So handhabt der Roboter SLAM in dieser einfachen Umgebung. (Beachten Sie, dass dies tatsächlich eine Lokalisierung ist, da wir die Position der Wand nicht aktualisieren.)
Frage : Wo bist du?
Wählen Sie den besten Sensor? In diesem Fall ist der Laser der beste, oder? Also bin ich offensichtlich bei .x=1.2
Wählen Sie diejenige, die Ihren Erwartungen am nächsten kommt? Nun, in diesem Fall sollten wir die Kilometerzähler verwenden, da näher an dem liegt, was ich beabsichtigt habe (eine Einheit bewegen)..9
Vielleicht könnten Sie die beiden mitteln? Nun, das ist besser, aber es ist anfällig für Ausreißer.
Die glänzenden Prinzipien der Sensorfusion erklären Ihnen, wie Sie die Frage wie folgt beantworten können:
Ihre minimale mittlere quadratische Schätzung der Roboterposition ergibt sich aus:
xmmse=0,1
... es sei denn, ich habe irgendwo die Algebra vermasselt. Die Leute lokalisieren Flugzeuge mit Mathematik, was nicht viel komplizierter ist.
quelle
Wenn Sie sich über die Prinzipien der Sensorfusion informieren, erhalten Sie immer eine bessere Schätzung, wenn Sie Daten richtig kombinieren. Wenn Sie beispielsweise die Temperatur in einem Raum mit 3 verschiedenen Temperatursensoren messen, ist es nicht ideal, nur den besten Sensor zu verwenden. Der Idealfall wäre, eine gewichtete Kombination jedes Sensors zu erstellen, wobei das Gewicht des Sensors proportional zu eins über die Varianz dieses Sensors ist. Ganz zu schweigen davon, dass die Kilometerzählungsdaten SEHR gut sind. Es ist die Extraktion von Orientierungspunkten, die verrauscht ist und höchstwahrscheinlich eine höhere Varianz aufweist.
Wenn Sie aus einer übergeordneten Perspektive darüber nachdenken, ist es auch erforderlich, dass Sie ein auf Kilometerzähler basierendes Bewegungsupdate haben. Wenn Sie nur Orientierungspunkte verwenden würden, hätten Sie mehrdeutige Fälle. Nehmen Sie zum Beispiel den Fall, dass Sie nur einen Orientierungspunkt identifizieren. Sie hätten einen Abstand z von Ihrem Roboter zum Orientierungspunkt, aber dies würde einer unendlichen Anzahl von Punkten in einem Kreis um den Orientierungspunkt zugeordnet. Wenn Sie keine Orientierungspunkte identifizieren, können Sie nichts tun! Durch die Einbeziehung der Kilometerzähler haben wir keine Mehrdeutigkeit mehr. Angenommen, wir lokalisieren in einer 2D-Ebene (x, y), müssten Sie sicherstellen, dass Sie Messwerte für mindestens 3 Orientierungspunkte haben, um Ihre Position ohne Kilometerzähler zu triangulieren, und Sie können diese Garantie in normalen Umgebungen nicht geben.
Schließlich kann ein Encoder in der Größenordnung von 50 Hz abgetastet werden, während ein LIDAR nur bei etwa 6-7 Hz abgetastet werden kann (zitieren Sie mich nicht auf diesen Frequenzen). Dies bedeutet, dass Sie Ihre aktuelle Position über die Kilometerzähler viel häufiger aktualisieren können als anhand der Sensorwerte. Dies berücksichtigt nicht einmal, wie lange Sie brauchen, um Ihren Sensorwert zu verarbeiten, um Orientierungspunkte zu identifizieren!
quelle
Um dies zusammenzufassen: Die Verwendung der Kilometerzähler zur Schätzung der Roboterposition ist viel schneller als die Verwendung von Daten von einem Laserscanner. In den meisten Situationen werden Daten von einem Entfernungsscanner als 2D-PointCloud behandelt. Dies bedeutet, dass Sie zum Schätzen der relativen Pose zwischen den Positionen A, B die entsprechenden PointClouds ausrichten und die wahrscheinlichste Pose dieser Ausrichtungsoperation finden müssen. Dazu verwenden Sie ICP oder einen ähnlichen Algorithmus, der aufgrund seiner Iteration rechenintensiv ist.
Auf der anderen Seite müssen Sie bei Verwendung von Kilometerzählerinformationen (z. B. von den Radgebern) nur die aktuelle Schätzung Ihrer Pose addieren, die nur die Summe von zwei Wahrscheinlichkeitsdichtefunktionen ist (Stromschätzung + inkrementelle Kilometerzählermessung).
quelle
Die EKF-Grundsätze wurden in den anderen Antworten ausführlich erläutert.
Ich möchte hinzufügen, dass Sie SLAM ohne Verwendung von Odometry ausführen können, dh nur mit einem LIDAR.
"Sind alle SLAM-Algorithmen funktionsbasiert?"
Nein, natürlich nicht alle
quelle