Skip to content

MostlyKIGuess/slam-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SLAM-RS

Trying to implement a SLAM system in Rust.

Dependencies

Usage

Build with Cargo:

cargo build --release

Run visual odometry example:

# Use default KITTI intrinsics
cargo run --example visual_odometry /path/to/video.mp4

# Specify custom camera intrinsics
cargo run --example visual_odometry /path/to/video.mp4 -- --fx 500 --fy 500 --cx 320 --cy 240

Run point cloud generation with real-time 3D visualization (Rerun):

# With Rerun 3D viewer (shows map, trajectory, matches, video in real-time!)
cargo run --example point_cloud --features rerun /path/to/video.mp4 -- --rerun

# Or save to PLY file (default, no Rerun)
cargo run --example point_cloud /path/to/video.mp4 -- --save-ply

# With custom camera intrinsics
cargo run --example point_cloud --features rerun /path/to/video.mp4 -- --rerun --fx 718.856 --fy 718.856 --cx 607.1928 --cy 185.2157

Run feature detection visualization:

cargo run --example visualize_features /path/to/video.mp4

Modules

  • feature: ORB feature detection and matching
  • odometry: Camera intrinsics, pose estimation, trajectory tracking
  • mapping: Keyframe selection, 3D point triangulation, map points, bundle adjustment

Examples

  • visualize_features: Real-time feature detection and matching visualization
  • visual_odometry: Full VO pipeline with trajectory tracking and visualization
  • point_cloud: 3D point cloud reconstruction with triangulation (use --features rerun --rerun for rerun viz!)

See TODO for development status.

FAQ

  • Why is the map sparse?
    • This is a feature-based system using ORB features (~1000-2000 per frame). We only triangulate at corner-like features, not every pixel. This is similar to ORB-SLAM.
  • How can I make the map denser?
    • For dense reconstruction, you need:
      • Dense/semi-dense tracking (all high-gradient pixels)
      • Depth estimation/fusion
      • More computational resources

About

A Rust library for implementing SLAM systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages