2016-05-17 16 views
1

Ich bin auf der Suche nach einem einfachen Loop-Closing-Algorithmus zu implementieren.Loop Closing 3D Point Clouds

Hier ist meine Situation: Ich habe x Zahlen von Punktwolken, und ich habe einen Registrierungsalgorithmus in 3d verwendet, der mir die Pose all dieser Punktwolken gegeben hat.

Am Ende lande ich mehr oder weniger am selben Punkt in meiner Karte, aber mit Drift. Ich kann meinen Registrierungsalgorithmus verwenden, um zu sehen, wo sich meine tatsächliche finale Punktwolke in Bezug auf meine ursprüngliche befindet.

Da ich das weiß, möchte ich den Rest meiner Punktwolken auf der Grundlage der von mir berechneten "Drift" global optimieren.

Ich habe es geschafft, etwas in Bezug auf die Übersetzung schnell zu kodieren, was richtig scheint, aber die Rotation ist problematisch, da in der Genauigkeit/Superposition von Features (Wände usw.) reduziert wird.

Was ich gesucht habe: g2o, GTSAM, ISAM-Bibliotheken, alle auf der Suche nach Optimierung, aber ich fühle mich wie ein riesiger Overhead zur Umsetzung dieser, sie alle erfordern mehrere Einschränkungen, große Anzahl von Parametern usw. einstellen.

Ich bin nicht einmal auf der Suche nach Schleifen automatisch (ich werde das später tun), würde ich gerne tun: Diese zwei Punktwolken repräsentieren eine Schleife, propagieren (richtig) die Drift in Translation und Rotation Ich berechne) zwischen ihnen zu allen Punktwolken zwischen den beiden.

Vielen Dank im Voraus,

+0

Haben Sie versucht https://en.wikipedia.org/wiki/Procrustes_analysis? –

Antwort

1

Loop-Schließung als Ganze in der Regel in diesen Schritten zerlegt wird:

1- Schleifenerkennung 2- Schleife Schließen 3- Schleifenkorrektur

Sie dies nicht tun brauche jetzt automatische Loop-Erkennung, ich werde es überspringen.

Schleifen schließen ist das Problem, die richtige Pose von einem Ende zu erhalten, um das andere Ende zu passen. Die Pose ist eine SE3-Transformation (3D-Rototraslation), oder, wenn Sie Skalenverschiebungen haben (wie monokulare visuelle Slams), ist die Pose eine Sim3-Transformation (3D-Ähnlichkeit).

Mit dieser Pose ist die Schleifenkorrektur das Problem, alle Punkte und Keyframes zu korrigieren, um Kohärenz für die gesamte Karte zu schaffen.

Maßstab Drift-Aware Large Scale Monocular SLAM ist ein Papier von Strasdat et al beschreibt eine Methode zur Korrektur von Schleifen (der dritte Schritt).

ORB-SLAM2 implementiert es in Optimizer :: OptimizeEssentialGraph und ist Open Source.