Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

pySLAM

Pipeline de SLAM visual híbrido en Python/C++ con front-ends clásicos y de deep learning

Licencia

GPL-3.0

Resumen

pySLAM es un framework de SLAM visual híbrido en Python/C++ creado por Luigi Freda que ejecuta SLAM completo —seguimiento de características, mapeo por keyframes, cierre de bucles, relocalización y reconstrucción densa volumétrica— con entradas monoculares, estéreo y RGB-D. Su característica definitoria es la modularidad: docenas de características locales intercambiables (desde ORB y SIFT hasta SuperPoint, XFeat y LightGlue), múltiples back-ends de cierre de bucles y reconocimiento de lugares, y módulos opcionales de predicción de profundidad y mapeo semántico lo convierten en un laboratorio funcional para la investigación y la enseñanza del SLAM moderno.

pySLAM implementa el stack completo de SLAM visual con énfasis en componentes intercambiables. El front-end soporta más de veinte detectores/descriptores de características locales, tanto artesanales (ORB, SIFT, AKAZE, BRISK) como aprendidos (SuperPoint, DISK, ALIKED, XFeat), con emparejamiento mediante pruebas de ratio clásicas o matchers aprendidos como LightGlue y LoFTR. El back-end proporciona bundle adjustment disperso sobre g2o, cierre de bucles con varios métodos de agregación (DBoW2/3, VLAD, descriptores globales estilo NetVLAD) y optimización de grafos de poses. Más allá del SLAM disperso, ofrece predicción de profundidad monocular (p. ej. DepthAnything), reconstrucción densa volumétrica con opciones de TSDF/Gaussian splatting, y mapeo semántico que fusiona la segmentación por frame en el mapa. Las piezas críticas para el rendimiento se ejecutan en C++ con bindings de Python, manteniendo el código hackeable para investigación y docencia sin dejar de ser lo bastante rápido para uso con cámara en vivo.

Por qué importa

pySLAM se ha convertido en el patio de juegos de referencia para el SLAM visual: es uno de los muy pocos sistemas donde los pipelines clásicos estilo ORB-SLAM y los front-ends profundos modernos coexisten tras una única interfaz, permitiendo a investigadores y estudiantes comparar componentes artesanales frente a aprendidos en un sistema completo y funcional en lugar de en aislamiento.

Qué problema resuelve

Evaluar una nueva característica, matcher o método de cierre de bucles dentro de un sistema de SLAM completo normalmente implica cirugía invasiva en una base de código C++ monolítica. pySLAM convierte cada componente en un plug-in, de modo que los experimentos y las prácticas docentes pasan de la idea a un SLAM en funcionamiento en horas.

Puntos clave

  • SLAM visual completo: seguimiento, mapeo local, cierre de bucles, relocalización y reconstrucción densa
  • Soporte monocular, estéreo y RGB-D con más de 20 detectores de características y matchers intercambiables
  • Componentes aprendidos de primera clase: SuperPoint, XFeat, LightGlue, LoFTR, DepthAnything y más
  • Mapeo denso volumétrico con back-ends de TSDF y Gaussian splatting
  • El módulo de mapeo semántico fusiona la segmentación en el mapa 3D

Para quién es

  • Investigadores de SLAM que comparan componentes
  • Estudiantes de posgrado que aprenden SLAM visual de forma práctica
  • Ingenieros de percepción que prototipan localización basada en cámaras
  • Educadores que imparten cursos de SLAM

Limitaciones

  • Código de nivel investigación: no endurecido para despliegue en producción sobre robots
  • Las capas de Python limitan el rendimiento en tiempo real frente a sistemas C++ optimizados en hardware modesto
  • La licencia GPL-3.0 restringe el uso en productos de código cerrado
  • La instalación completa con todos los extras de deep learning es pesada y dependiente de CUDA

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.