Skip to content

A Python-based SLAM prototype designed to capture video input, extract depth, build local 3D point clouds, and lay the foundation for full visual SLAM — with extensibility for navigation, mapping, and control.

License

Notifications You must be signed in to change notification settings

AntonSHBK/visual-slam-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visual SLAM Framework (Python)

Match

Overview

This repository contains a research-oriented implementation of a visual SLAM (Simultaneous Localization and Mapping) system developed as part of a dissertation and ongoing scientific research in the field of computer vision and autonomous navigation. The project focuses on the design, implementation, and experimental analysis of a modular visual SLAM pipeline, with an emphasis on clarity of architecture, extensibility, and reproducibility of results.

The system is designed as a fully Python-based visual SLAM framework, targeting monocular camera input, with a clear separation between initialization, tracking, mapping, and optimization components. The primary application domain includes UAVs and mobile robotic platforms operating in unknown environments.

Motivation and Background

The development of this framework was inspired by established and widely used SLAM systems, in particular:

These frameworks served as conceptual and architectural references, especially in terms of pipeline decomposition, map representation, and optimization strategies. However, this project does not aim to replicate their implementations, but rather to explore an alternative design that prioritizes Python-based development and research flexibility.

Finish point cloud

Map 1>

Map 2

Map 3

Project Status

Work in Progress

This project is currently under active development and should be considered experimental.

At the present stage, the following components have been implemented and integrated:

  • Map initialization for monocular input
  • Frame-to-frame tracking
  • Local mapping and keyframe handling
  • Local optimization of poses and map points
  • Internal map representation (frames, keyframes, map points, observations)
  • Visualization of the map, camera trajectory, and feature correspondences
  • Logging and debugging utilities for core subsystems

Global optimization, loop closing, and large-scale consistency mechanisms are not yet fully implemented and remain part of future work.

Key Characteristics

A defining feature of this framework is its independence from compiled third-party SLAM libraries.

  • The entire system is implemented in pure Python
  • No mandatory C++ extensions or external SLAM backends are required
  • Optimization is implemented using PyTorch, operating directly on tensor representations
  • This design choice simplifies experimentation, debugging, and modification of optimization strategies at the cost of computational efficiency

As a result, the current implementation is not optimized for real-time performance and is significantly less efficient than mature C++-based SLAM systems. Performance improvements, algorithmic refinements, and possible hybrid acceleration strategies are considered future research directions.

Usage

Detailed instructions on how to run and experiment with the system are provided in a separate documentation file:

This document describes dataset preparation, configuration, execution flow, and available visualization and logging options.

Citation

@misc{visual_slam_python,
  author       = {Anton Pisarenko},
  title        = {Visual SLAM on Python},
  year         = {2025},
  month        = {December},
  howpublished = {\url{https://github.com/AntonSHBK/visual-slam-core}},
  note         = {Accessed: 2025-12-22}
}

Contacts

For questions or support, please contact:

About

A Python-based SLAM prototype designed to capture video input, extract depth, build local 3D point clouds, and lay the foundation for full visual SLAM — with extensibility for navigation, mapping, and control.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published