Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

pySLAM

Pipeline de SLAM visuel hybride Python/C++ avec front-ends classiques et par deep learning

Licence

GPL-3.0

Aperçu

pySLAM est un framework de SLAM visuel hybride Python/C++ par Luigi Freda qui exécute le SLAM complet — suivi de features, cartographie par keyframes, fermeture de boucle, relocalisation et reconstruction dense volumétrique — sur des entrées monoculaires, stéréo et RGB-D. Sa caractéristique déterminante est la modularité : des dizaines de features locales interchangeables (d'ORB et SIFT à SuperPoint, XFeat et LightGlue), plusieurs back-ends de fermeture de boucle et de reconnaissance de lieux, et des modules optionnels de prédiction de profondeur et de cartographie sémantique en font un véritable laboratoire pour la recherche et l'enseignement du SLAM moderne.

pySLAM implémente la stack complète du SLAM visuel avec un accent sur les composants interchangeables. Le front-end prend en charge plus de vingt détecteurs/descripteurs de features locales, tant faits main (ORB, SIFT, AKAZE, BRISK) qu'appris (SuperPoint, DISK, ALIKED, XFeat), avec un appariement par tests de ratio classiques ou par matchers appris tels que LightGlue et LoFTR. Le back-end fournit un ajustement de faisceaux épars sur g2o, une fermeture de boucle avec plusieurs méthodes d'agrégation (DBoW2/3, VLAD, descripteurs globaux de type NetVLAD), et une optimisation de graphe de poses. Au-delà du SLAM épars, il offre la prédiction de profondeur monoculaire (p. ex. DepthAnything), la reconstruction dense volumétrique avec des options TSDF/Gaussian splatting, et une cartographie sémantique qui fusionne la segmentation image par image dans la carte. Les parties critiques en performance tournent en C++ avec des bindings Python, gardant le code hackable pour la recherche et les cours tout en restant assez rapide pour un usage avec caméra en direct.

Pourquoi c'est important

pySLAM est devenu le terrain de jeu de référence du SLAM visuel : c'est l'un des très rares systèmes où les pipelines classiques de type ORB-SLAM et les front-ends modernes par deep learning coexistent derrière une même interface, permettant aux chercheurs et étudiants de comparer composants faits main et composants appris dans un système complet en fonctionnement plutôt qu'isolément.

Le problème résolu

Évaluer une nouvelle feature, un nouveau matcher ou une nouvelle méthode de fermeture de boucle au sein d'un système SLAM complet exige normalement une chirurgie invasive dans un code C++ monolithique. pySLAM fait de chaque composant un plug-in, si bien que les expériences et les TP passent de l'idée au SLAM qui tourne en quelques heures.

Points clés

  • SLAM visuel complet : suivi, cartographie locale, fermeture de boucle, relocalisation et reconstruction dense
  • Prise en charge monoculaire, stéréo et RGB-D avec plus de 20 détecteurs de features et matchers interchangeables
  • Composants appris de premier ordre : SuperPoint, XFeat, LightGlue, LoFTR, DepthAnything et plus
  • Cartographie dense volumétrique avec back-ends TSDF et Gaussian splatting
  • Le module de cartographie sémantique fusionne la segmentation dans la carte 3D

Pour qui

  • Chercheurs en SLAM comparant des composants
  • Étudiants de troisième cycle apprenant le SLAM visuel par la pratique
  • Ingénieurs en perception prototypant une localisation par caméra
  • Enseignants animant des cours de SLAM

Limites

  • Code de niveau recherche — non durci pour un déploiement en production sur des robots
  • Les couches Python plafonnent les performances temps réel face aux systèmes C++ optimisés sur du matériel faible
  • La licence GPL-3.0 restreint l'usage dans des produits à code fermé
  • L'installation complète avec tous les extras deep learning est lourde et dépendante de CUDA

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.