Skip to main content

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.

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

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


Made with ❤️ by sherin joseph roy

Metadata

Release files for easy-slam 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for easy-slam 0.1.0
File Size Uploaded
easy_slam-0.1.0.tar.gz 46.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for easy-slam 0.1.0
File Interpreter ABI Platform
easy_slam-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 94.9 kB

Release files / easy_slam-0.1.0.tar.gz

Download URL easy_slam-0.1.0.tar.gz
Size 46.2 kB
Tags Source
SHA-256 checksum
How to use checksums
26f58f763c62db2781ba322a47cc3c0f9d846ff5d5c39149b0b8e5b010a6f753
BLAKE2b-256 checksum
How to use checksums
fc6872f6653f5f0a39ba7825e1336ab9a5c2572e810d328f159876a5964432ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / easy_slam-0.1.0-py3-none-any.whl

Download URL easy_slam-0.1.0-py3-none-any.whl
Size 48.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4f84e7ee791d3c76d206fc8e41882e65287ea7e09cf880938dc748dbb7c413ea
BLAKE2b-256 checksum
How to use checksums
ab796338c68ee4bae9415e37a4c2d9de0dff87e2ccbd868136cd3a0bccea0a90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page