GLidE-SLAM is a monocular hybrid indirect-direct visual SLAM framework for embedded and resource-constrained devices. It offloads direct photometric tracking to vendor-agnostic OpenGL ES 3.1 compute shaders, reducing CPU bottlenecks and preserving CPU resources for mapping, bundle adjustment, loop closure, and other backend tasks.
The key result is not only relative speedup, but practical usability on small embedded hardware. On platforms such as the Radxa Zero 3W, a CPU-only baseline can be prohibitive for online SLAM, while GLidE-SLAM brings performance into a usable online regime (from an average of ~7 FPS to over 20 FPS).
To our knowledge, this is the first complete direct photometric pose estimator for embedded-class devices implemented with compute shaders rather than CUDA. GLidE-SLAM is designed for portability and scalability across GPU-equipped embedded platforms, leveraging the integrated GPUs already present on many small boards without vendor-specific dependencies. This supports commodity hardware, larger gains on stronger embedded GPUs, and scalable deployments such as multi-robot and multi-agent systems.
GLidE-SLAM combines two complementary tracking paradigms:
- Indirect keyframe pipeline: used for map extension, relocalization, and global consistency
- Direct photometric tracking: used on intermediate frames for efficient pose-only estimation
- GPU acceleration: direct tracking is executed end-to-end with OpenGL ES 3.1 compute shaders
- Efficient workload separation: tracking is moved off the CPU, preserving compute budget for the rest of the SLAM pipeline
In this design, direct tracking handles the high-frequency pose estimation workload, while the indirect pipeline is invoked when map maintenance, recovery, or keyframe updates are required.
Submission video clips:
GLidE_SLAM.mp4
https://youtu.be/CUJF1Cmh_bI?si=n0GhJMzCTt14lTG2
The submitted paper reports over 2× speedup on the originally evaluated platforms while maintaining comparable trajectory accuracy. Evaluation was performed on the Radxa Zero 3W (RK3566, Mali-G52 MP2) and a development laptop (AMD Radeon 890M), with five runs per sequence.
Original submitted evaluation platforms:
- Radxa Zero 3W (RK3566, Mali-G52)
- Development laptop (AMD Radeon 890M)
Median per-frame processing time in seconds:
| Sequence | ORB-SLAM2 | GLidE-SLAM | Speedup |
|---|---|---|---|
| fr3/long office | 0.009 | 0.004 | 2.2× |
| fr2/desk | 0.010 | 0.004 | 2.5× |
| fr2/xyz | 0.008 | 0.003 | 2.6× |
| MH01 | 0.012 | 0.006 | 2.0× |
| MH03 | 0.010 | 0.010 | 1.0× |
| MH05 | 0.010 | 0.009 | 1.1× |
Median per-frame processing time in seconds:
| Sequence | ORB-SLAM2 | GLidE-SLAM | Speedup |
|---|---|---|---|
| fr3/long office | 0.131 | 0.061 | 2.1× |
| fr2/desk | 0.132 | 0.067 | 2.0× |
| fr2/xyz | 0.127 | 0.050 | 2.5× |
| MH01 | 0.136 | 0.106 | 1.3× |
| MH03 | 0.135 | 0.112 | 1.2× |
| MH05 | 0.124 | 0.167 | 0.7× |
Absolute Trajectory Error (ATE RMSE) in meters:
| Sequence | ORB-SLAM2 | GLidE-SLAM |
|---|---|---|
| fr3/long office | 0.011 | 0.015 |
| fr2/desk | 0.008 | 0.007 |
| fr2/xyz | 0.002 | 0.003 |
| MH01 | 0.037 | 0.033 |
| MH03 | 0.030 | 0.035 |
| MH05 | 0.051 | 0.040 |
Absolute Trajectory Error (ATE RMSE) in meters:
| Sequence | ORB-SLAM2 | GLidE-SLAM |
|---|---|---|
| fr3/long office | 0.009 | 0.013 |
| fr2/desk | 0.006 | 0.008 |
| fr2/xyz | 0.002 | 0.002 |
| MH01 | 0.036 | 0.042 |
| MH03 | 0.032 | 0.030 |
| MH05 | 0.037 | 0.041 |
- autonomous robots and drones
- wearable AR/VR/XR systems
- multi-robot and multi-agent systems
- commodity GPU-equipped embedded hardware
This repository serves as a supplementary project page with videos and benchmark updates.
Public release information for code, benchmark scripts, and citation details will be added later.