Warum benötigen wir in EKF-SLAM überhaupt eine Kilometerzähler, wenn es einen zuverlässigeren Sensor gibt? Sind alle SLAM-Algorithmen funktionsbasiert?

8

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?

Xegara
quelle
Bitte jeweils eine Frage. Aber ich habe versucht, beide zu beantworten. Bitte bearbeiten Sie die Frage jetzt nicht, um mehr zu stellen. Stellen Sie stattdessen separate Fragen. Vielen Dank!
Josh Vander Hook

Antworten:

10

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=0x

  • Es gibt eine Wand bei genau der der Roboter die Entfernung messen kann.x=10
  • Der Roboter verfügt über einen Laserscanner, um die Entfernung mit derσl2=.1
  • Der Roboter kann die zurückgelegte Strecke mit Kilometerzählern mithilfe der . Der Laser ist eindeutig genauer als die Odos.σo2=.5

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.)

  • Der Roboter versucht, eine Einheit nach rechts zu bewegen.
  • Die Kilometerzähler misstx=.9
  • Der Laserscanner sagt, dass Sie Einheiten von der Wand entfernt sind. (was bedeutet, dass Sie bei 1,2 sind)8.8

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

xmmse=σl2σo2+σl2(.9)+σo2σo2+σl2(1.2)
xmmse=1,15
xmmse=.1.6(.9)+.5.6(1.2)
xmmse=1.15

... es sei denn, ich habe irgendwo die Algebra vermasselt. Die Leute lokalisieren Flugzeuge mit Mathematik, was nicht viel komplizierter ist.

Josh Vander Hook
quelle
6

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!

Andrew Capodieci
quelle
3

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).

bergercookie
quelle
-1

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

AL-ROBOTER
quelle