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,
Haben Sie versucht https://en.wikipedia.org/wiki/Procrustes_analysis? –