Open Source Robotics

Eine kuratierte Sammlung hochwertiger Open-Source-Robotikprojekte, Werkzeuge und Software für die Robotik-Community.

pySLAM

Hybride Python/C++-Pipeline für visuelles SLAM mit klassischen und Deep-Learning-Frontends

Lizenz

GPL-3.0

Überblick

pySLAM ist ein hybrides Python/C++-Framework für visuelles SLAM von Luigi Freda, das vollständiges SLAM ausführt — Feature-Tracking, Keyframe-Kartierung, Loop Closing, Relokalisierung und volumetrische dichte Rekonstruktion — auf monokularen, Stereo- und RGB-D-Eingaben. Sein prägendes Merkmal ist Modularität: Dutzende austauschbarer lokaler Features (von ORB und SIFT bis SuperPoint, XFeat und LightGlue), mehrere Loop-Closing- und Place-Recognition-Backends sowie optionale Module für Tiefenvorhersage und semantische Kartierung machen es zu einem funktionierenden Labor für moderne SLAM-Forschung und -Lehre.

pySLAM implementiert den kompletten visuellen SLAM-Stack mit Schwerpunkt auf austauschbaren Komponenten. Das Frontend unterstützt über zwanzig lokale Feature-Detektoren/-Deskriptoren, sowohl handgefertigte (ORB, SIFT, AKAZE, BRISK) als auch gelernte (SuperPoint, DISK, ALIKED, XFeat), mit Matching über klassische Ratio-Tests oder gelernte Matcher wie LightGlue und LoFTR. Das Backend bietet Sparse Bundle Adjustment auf g2o, Loop Closing mit mehreren Aggregationsmethoden (DBoW2/3, VLAD, globale Deskriptoren im NetVLAD-Stil) und Pose-Graph-Optimierung. Über sparses SLAM hinaus bietet es monokulare Tiefenvorhersage (z. B. DepthAnything), volumetrische dichte Rekonstruktion mit TSDF-/Gaussian-Splatting-Optionen und semantische Kartierung, die Segmentierungen pro Frame in die Karte fusioniert. Performance-kritische Teile laufen in C++ mit Python-Bindings, wodurch die Codebasis für Forschung und Lehre hackbar bleibt und dennoch schnell genug für den Live-Kamerabetrieb ist.

Warum es wichtig ist

pySLAM ist zur Referenz-Spielwiese für visuelles SLAM geworden: Es ist eines der ganz wenigen Systeme, in denen klassische Pipelines im ORB-SLAM-Stil und moderne Deep-Frontends hinter einer Schnittstelle koexistieren — Forscher und Studierende können handgefertigte gegen gelernte Komponenten in einem vollständig funktionierenden System benchmarken statt isoliert.

Welches Problem es löst

Ein neues Feature, einen Matcher oder eine Loop-Closing-Methode in einem vollständigen SLAM-System zu evaluieren bedeutet normalerweise invasive Eingriffe in eine monolithische C++-Codebasis. pySLAM macht jede Komponente zu einem Plugin, sodass Experimente und Lehrveranstaltungen in Stunden von der Idee zum laufenden SLAM kommen.

Wichtigste Punkte

  • Vollständiges visuelles SLAM: Tracking, lokale Kartierung, Loop Closing, Relokalisierung und dichte Rekonstruktion
  • Unterstützung für monokular, Stereo und RGB-D mit über 20 austauschbaren Feature-Detektoren und Matchern
  • Gelernte Komponenten als First-Class-Bausteine: SuperPoint, XFeat, LightGlue, LoFTR, DepthAnything und mehr
  • Volumetrische dichte Kartierung mit TSDF- und Gaussian-Splatting-Backends
  • Modul für semantische Kartierung fusioniert Segmentierungen in die 3D-Karte

Für wen

  • SLAM-Forscher, die Komponenten benchmarken
  • Masterstudierende und Doktoranden, die visuelles SLAM praktisch lernen
  • Perception-Ingenieure, die kamerabasierte Lokalisierung prototypisieren
  • Lehrende, die SLAM-Kurse durchführen

Einschränkungen

  • Code auf Forschungsniveau — nicht für den Produktiveinsatz auf Robotern gehärtet
  • Python-Schichten begrenzen die Echtzeit-Performance gegenüber optimierten C++-Systemen auf schwacher Hardware
  • Die GPL-3.0-Lizenz schränkt die Nutzung in Closed-Source-Produkten ein
  • Die vollständige Installation mit allen Deep-Learning-Extras ist schwergewichtig und CUDA-abhängig

Diese Website benötigt JavaScript. Bitte aktivieren Sie JavaScript, um unsere Open-Source-Robotikprojekte zu erkunden.