Ich versuche, die Planung des Glaubensraums für einen Roboter zu implementieren, dessen Hauptsensor eine Kamera ist. Ähnlich wie bei SLAM verfügt der Roboter über eine Karte mit 3D-Punkten und lokalisiert diese, indem er bei jedem Schritt einen 2D-3D-Abgleich mit der Umgebung durchführt. Für diese Frage gehe ich davon aus, dass sich die Karte nicht ändert.
Als Teil der Glaubensraumplanung möchte ich Pfade für den Roboter planen, die ihn vom Start bis zum Ziel führen, aber so, dass seine Lokalisierungsgenauigkeit immer maximiert wird. Daher müsste ich mögliche Zustände des Roboters abtasten, ohne mich tatsächlich dorthin zu bewegen, und die Beobachtungen, die der Roboter machen würde, wenn er sich in diesen Zuständen befände, die zusammen (korrigieren Sie mich, wenn ich falsch liege) den „Glauben“ des Roboters bilden Anschließend wird die Lokalisierungsunsicherheit an diesen Punkten codiert. Und dann würde mein Planer versuchen, die Knoten zu verbinden, die mir die geringste Unsicherheit geben (Kovarianz).
Da meine Lokalisierungsunsicherheit für diesen kamerabasierten Roboter vollständig davon abhängt, wie viele Merkmalspunkte von einem bestimmten Ort aus sichtbar sind, der Richtungswinkel des Roboters usw.: Ich benötige eine Schätzung, wie schlecht meine Lokalisierung bei einer bestimmten Stichprobe ist wäre zu bestimmen, ob ich es verwerfen sollte. Wie definiere ich das Messmodell dafür, wäre es das Messmodell der Kamera oder etwas, das sich auf die Position des Roboters bezieht? Wie "errate" ich meine Messungen im Voraus und wie berechne ich die Kovarianz des Roboters anhand dieser erratenen Messungen?
EDIT: Die Hauptreferenz für mich ist die Idee , zufällige Glaubensbäume schnell zu erkunden , was eine Erweiterung der Methode Belief Road Maps ist . Ein anderes relevantes Papier verwendet RRBTs für eine eingeschränkte Planung. In diesem Artikel werden Zustände ähnlich wie bei herkömmlichen RRTs abgetastet, die als Scheitelpunkte als Diagramm dargestellt werden. Wenn jedoch die Scheitelpunkte verbunden werden sollen, überträgt der Algorithmus den Glauben vom aktuellen Scheitelpunkt auf den neuen (PROPAGATE-Funktion in Abschnitt V von 1 ). und hier stecke ich fest: Ich verstehe nicht ganz, wie ich den Glauben entlang einer Kante verbreiten kann, ohne ihn tatsächlich zu durchqueren und neue Messungen zu erhalten, wodurch neue Kovarianzen aus der Lokalisierung entstehen. Das RRBT-Papier sagt "die Kovarianzvorhersage- und Kostenerwartungsgleichungen sind in der PROPAGATE-Funktion implementiert": Wenn jedoch nur die Vorhersage verwendet wird, woher weiß sie beispielsweise, ob an der zukünftigen Position genügend Merkmale vorhanden sind, die die Lokalisierungsgenauigkeit verbessern / verschlechtern könnten?
quelle
Antworten:
Verwenden Sie die Nur-Lager-Lokalisierung, um die Informativität der Kamera zu modellieren und Messungen ohne Rauschen zu simulieren (z. B. ohne Innovation).
Aus einer Vielzahl von Gründen ist dies tatsächlich eine theoretisch fundierte Methode, um die Informativität eines Pfades abzuschätzen.
Es gibt viele "messungsfreie" Informationsmetriken wie die Fisher Information Matrix . Sie benötigen lediglich die Positionen des Roboters und die Positionen der Orientierungspunkte auf der Karte, um zu bestimmen, wie viele Informationen über die Position des Roboters durch Messen der Orientierungspunkte erhalten werden. (Oder umgekehrt, die Innovation aus Messungen wird sowohl auf das Ziel als auch auf den Roboter angewendet (es ist SLAM, oder?), Sodass für beide dieselbe Metrik funktioniert).
Ich würde mit einem Lagersensor beginnen, da dies ein gutes, gut akzeptiertes Modell eines Vision-Sensors ist. Ermitteln Sie das "Rauschen" bei den Lagermessungen, indem Sie einige Fehlerpixel bei der Lokalisierung von Merkmalen in der Welt annehmen. Lassen Sie den Zustand des Systems die Position des Roboters plus seine Unsicherheit sein und probieren Sie dann die Pfade aus (wie Sie vorschlagen). Von jeder Position im abgetasteten Pfad würde ich die vorhergesagte Unsicherheit unter Verwendung der FIM neu berechnen . Dies ist nicht schwer zu tun, nehmen Sie einfach keinen Fehler in den Messungen an (dh es wird keine "Innovation" in Bezug auf die Überzeugung des Roboters geben, aber Sie werden immer noch einen Rückgang der Unsicherheit feststellen, der durch eine schrumpfende Kovarianz in der Positionsschätzung des Roboters dargestellt wird. Ich würde Aktualisieren Sie nicht die Standorte oder Unsicherheiten der Orientierungspunkte, nur um das Problem zu vereinfachen.
Dies ist ein ziemlich gut verstandener Ansatz, an den ich mich in meiner letzten Überprüfung dieser Literatur erinnere, aber nehmen Sie nicht mein Wort dafür (überprüfen Sie sich selbst!). Zumindest sollte dies einen Basisansatz bilden, der leicht zu simulieren ist. Nutzen wir die Kraft der Literatur. Sie können diese These für den Aufbau und die Gleichungen lesen .
Zusammenfassen
Einige Feinheiten
Verwenden Sie den kleinsten sinnvollen Zustandsvektor. Wenn Sie davon ausgehen können, dass der Roboter die Kamera unabhängig von der Bewegung richten kann oder über mehrere Kameras verfügt, ignorieren Sie die Ausrichtung und verfolgen Sie einfach die Position. Ich werde nur in 2D-Positionen fortfahren.
Sie müssen das linearisierte System ableiten, können es aber aus der obigen These ausleihen. Stellen Sie sicher, dass Sie sich nicht mit der Simulation von Messungen beschäftigen (z. B. wenn Sie EKF-Aktualisierungen nur mit "simulierten Messungen" durchführen, gehen Sie davon aus, dass die Messungen wahr und ohne Rauschen sind.
Wenn wir die Woodbury-Matrixidentität anwenden
Was ist die Messgleichung? Es ist
Die Rekursion abwickeln. Ich würde wie folgt vorgehen:
quelle