Skip to content

Sherin-SEF-AI/easy-slam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

EasySLAM

EasySLAM is a production-ready Python package that makes Simultaneous Localization and Mapping (SLAM) accessible to beginners while providing advanced features for researchers and professionals.

image

Screenshot from 2025-07-08 20-15-16

Screenshot from 2025-07-08 20-15-09

Screenshot from 2025-07-08 20-15-03

PyPI version License: MIT Python 3.7+

๐Ÿš€ Features

Core SLAM Algorithms

  • ORB-SLAM: Feature-based visual SLAM with loop closure
  • FastSLAM: Particle filter SLAM for mobile robots
  • GraphSLAM: Graph optimization-based SLAM
  • Visual-Inertial SLAM: Camera + IMU fusion
  • RGB-D SLAM: Depth camera SLAM with Open3D

Sensor Support

  • Webcam: Standard USB cameras
  • RealSense: Intel RealSense depth cameras
  • Stereo Cameras: Dual camera setups
  • LiDAR: 3D laser scanners
  • Datasets: TUM, KITTI, custom datasets

Advanced Features

  • Semantic Mapping: Object detection and labeling
  • Sensor Fusion: Multi-sensor data fusion with EKF
  • Map Merging: Combine multiple SLAM sessions
  • Performance Profiling: Real-time monitoring and optimization
  • GUI Interface: PyQt6-based visualization tool

Output Formats

  • Trajectory: TUM format, JSON, CSV
  • Point Clouds: PLY, PCD formats
  • 3D Maps: Mesh reconstruction
  • Performance Reports: Detailed analytics

๐Ÿ“ฆ Installation

From PyPI (Recommended)

pip install easy-slam

From Source

git clone https://github.com/Sherin-SEF-AI/EasySLAM.git
cd EasySLAM
pip install -e .

Optional Dependencies

# For 3D visualization
pip install easy-slam[3d]

# For RealSense cameras
pip install easy-slam[realsense]

# For advanced optimization
pip install easy-slam[g2o]

# For development
pip install easy-slam[dev]

๐ŸŽฏ Quick Start

Basic Usage

from easy_slam import EasySLAM

# Initialize with webcam
slam = EasySLAM(camera=0, algorithm='orb_slam')
slam.start()

Advanced Usage

from easy_slam import EasySLAM

# Configure with advanced features
slam = EasySLAM(
    camera='realsense',
    algorithm='rgbd_slam',
    semantic_mapping=True,
    sensor_fusion=True,
    save_trajectory=True,
    output_dir='./results'
)

# Start SLAM processing
slam.start()

# Get results
trajectory = slam.get_trajectory()
map_data = slam.get_map()

GUI Interface

# Launch the GUI
easy-slam-gui

# Or run programmatically
python -m easy_slam.gui

๐Ÿ“– Documentation

API Reference

EasySLAM Class

class EasySLAM:
    def __init__(self, 
                 camera: Union[int, str] = 0,
                 config: Optional[str] = None,
                 mode: str = 'realtime',
                 algorithm: str = 'orb_slam',
                 visualization: bool = True,
                 save_trajectory: bool = False,
                 output_dir: str = "./results",
                 **kwargs):
        """
        Initialize SLAM system.
        
        Args:
            camera: Camera index, path, or sensor type
            config: Optional path to YAML config file
            mode: 'realtime' or 'offline'
            algorithm: SLAM algorithm name
            visualization: Enable 3D visualization
            save_trajectory: Save trajectory to file
            output_dir: Directory for output files
        """

Available Algorithms

  • 'orb_slam': ORB-SLAM (default)
  • 'fastslam': FastSLAM particle filter
  • 'graphslam': Graph optimization SLAM
  • 'visual_inertial': Visual-inertial SLAM
  • 'rgbd_slam': RGB-D SLAM

Available Cameras

  • 0, 1, 2...: Webcam indices
  • 'webcam': Default webcam
  • 'realsense': Intel RealSense
  • 'stereo': Stereo camera setup
  • 'lidar': LiDAR sensor
  • 'path/to/dataset': Dataset file or directory

Configuration

Create a YAML configuration file:

slam:
  algorithm: orb_slam
  mode: realtime

sensor:
  type: webcam
  resolution: [640, 480]
  fps: 30

algorithm:
  max_features: 2000
  scale_factor: 1.2
  levels: 8

visualization:
  enabled: true
  update_rate: 10

output:
  save_trajectory: true
  directory: "./results"

performance:
  threading: true
  memory_limit: "2GB"

๐ŸŽฎ GUI Features

The EasySLAM GUI provides:

  • Real-time video display
  • 2D trajectory visualization
  • 3D map view
  • Feature point visualization
  • Performance monitoring
  • Live log output
  • Camera and algorithm selection
  • Advanced feature toggles

๐Ÿ”ง Advanced Features

Semantic Mapping

slam = EasySLAM(
    camera=0,
    semantic_mapping=True,
    semantic_model='yolov8'
)

Sensor Fusion

slam = EasySLAM(
    camera='realsense',
    sensor_fusion=True,
    imu_enabled=True
)

Map Merging

slam = EasySLAM(
    camera=0,
    map_merging=True,
    loop_closure=True
)

๐Ÿ“Š Performance

EasySLAM is optimized for real-time performance:

  • 30+ FPS on standard webcams
  • Memory efficient for long sessions
  • Multi-threaded processing
  • GPU acceleration support (optional)

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

git clone https://github.com/Sherin-SEF-AI/EasySLAM.git
cd EasySLAM
pip install -e .[dev]
pytest tests/

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • OpenCV for computer vision algorithms
  • Open3D for 3D processing
  • PyQt6 for GUI framework
  • NumPy and SciPy for numerical computing

๐Ÿ“ž Support

๐Ÿ”— Links


** sherin joseph roy**

Trigger GitHub Pages workflow

About

Production-ready Python SLAM package for beginners and advanced users

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages