TRGS-SLAM: IMU-Aided Gaussian Splatting SLAM for Blurry, Rolling Shutter, and Noisy Thermal Images
Organizations: University of Michigan, Ann Arbor, MI USA
Abstract
Thermal cameras offer several advantages for simultaneous localization and mapping (SLAM) with mobile robots: they provide a passive, low-power solution to operating in darkness, are invariant to rapidly changing or high dynamic range illumination, and can see through fog, dust, and smoke. However, uncooled microbolometer thermal cameras, the only practical option in most robotics applications, suffer from significant motion blur, rolling shutter distortions, and fixed pattern noise. In this paper, we present TRGS-SLAM, a 3D Gaussian Splatting (3DGS) based thermal inertial SLAM system uniquely capable of handling these degradations. To overcome the challenges of thermal data, we introduce a model-aware 3DGS rendering method and several general innovations to 3DGS SLAM, including B-spline trajectory optimization with a two-stage IMU loss, view-diversity-based opacity resetting, and pose drift correction schemes. Our system demonstrates accurate tracking on real-world, fast motion, and high-noise thermal data that causes all other tested SLAM methods to fail. Moreover, through offline refinement of our SLAM results, we demonstrate thermal image restoration competitive with prior work that required ground truth poses.
Figures & tables
| Type | Method | SO | MO | FO | SI | MI | FI |
| Monocular | ORB-SLAM3 | 0.8 | 9.4 | ||||
| DSM | 9.4 | 76.7 | |||||
| DROID-SLAM | 0.5 | 2.6 | 0.7 | ||||
| MASt3R-SLAM* | 1.6 | 94.5 | 2.7 | 88.4 | |||
| MonoGS | 7.7 | 83.9 | |||||
| Mono-Inertial | ORB-SLAM3 (inertial) | 1.1 |
| Method | MO | FO | MI | FI |
|---|---|---|---|---|
| GS on the Move* | 0.093 | 0.283 | 0.206 | 0.328 |
| TRNeRF* | 0.042 | 0.078 | 0.068 | 0.117 |
| TRGS-SLAM + Refinement | 0.067 | 0.098 | 0.095 | 0.116 |
| *Utilize ground truth poses. Results copied from [ 7 ] . | ||||
| Version | Device | Number of Timestamps Evaluated | Rotation Loss Compute Time (ms) | Ang. Vel. Loss Compute Time (ms) | ||
|---|---|---|---|---|---|---|
| Forward | Backward | Forward | Backward | |||
| PyPose | CPU | 1k | 5.45 | 4.97 | 5.64 | 5.71 |
| LieTorch | CPU | 1k | 1.68 | 1.39 | 1.82 | 1.48 |
| C++ | CPU | 1k | 0.59 | 0.41 | 0.51 | 0.27 |
| PyPose | GPU | 1k | 14.30 | 13.74 | 15.44 | 15.55 |
| LieTorch | GPU | 1k | 3.11 | 2.12 | 4.28 | 2.28 |
| Description | Value |
| Trajectory | |
| Spline order for the positions and rotations ( ) | 4 |
| Knot interval for the positions and rotations ( ) | milliseconds (half the frame period) |
| Learning rates for the position and rotation control points | |
| Number of predicted poses used in spline fitting ( ) | 10 per knot in the time range of the predictions |
| IMU Parameters & Loss | |
| Ablation Method | SO | MO | FO | SI | MI | FI | ||||||
| ATE (cm) | # of Trials Completed | ATE (cm) | # of Trials Completed | ATE (cm) | # of Trials Completed | ATE (cm) | # of Trials Completed | ATE (cm) | # of Trials Completed | ATE (cm) | # of Trials Completed | |
| Monocular* | 22.5 | 3 | 0 | 0 | 7.9 | 3 | 0 | 0 | ||||
| No Gyro. Before IMU Init. | 51.8 | 3 | 32.6 | 1 | 18.0 | 3 | 10.2 | 3 | 8.3 | 3 | 0 | |
| Gyroscope Only* | 3.6 | 3 | 5.7 | 3 | 3.7 | 3 | 3.3 | 3 | 4.6 | 1 | 0 | |
| No Roll/Blur Modeling | 9.0 | 3 | 7.3 | 3 | 32.8 | 1 | 4.2 | 3 | 5.7 | 3 | 0 | |
| No Pixel-wise FPN | 22.7 | 3 | 0 | 0 | 52.1 | 1 | 0 | 0 | ||||
| Task | Avg. Time Per Run (ms) Avg. Number of Runs per Parent Task | % of Parent Task | |||
| Tracking | 193.27 9654 | 36.9 | |||
| B-Spline Extension | 27.32 | 14.1 | |||
| Optimization Iteration | 5.12 32 | 84.8 | |||
| Rendering | 1.88 | 36.8 | |||
| Pose Evaluation | 0.60 | 31.7 | |||
| Rasterization | 0.57 | 30.1 | |||
Simultaneous Localization and Mapping
Simultaneous localization and mapping estimates a robot’s motion while building a map of an unknown environment.
See all 193 papers