Hi all,
We have released StrataSLAM, an open-source multi-floor 3D SLAM for ROS 2 from the Intelligent Robotics Lab (Universidad Rey Juan Carlos).
Most SLAM systems struggle when a robot changes floor. They lose the height in an elevator, because the cabin moves with the sensor. They close false loops between floors that look alike, or lose track in a dark stairwell. StrataSLAM keeps one submap per floor and builds a global map from them:
- Floor transitions (stairs, ramps, elevators, flights between floors) are detected and classified. An elevator ride is measured with the IMU even when the camera or LiDAR only sees the cabin.
- A floor gate: no loop closure is ever accepted between two floors, so identical floors are never merged. The video shows it side by side with the gate turned off.
- Sensors: RGB-D camera, 3D LiDAR or both. IMU, barometer and wheel odometry are optional.
- One YAML profile per robot, with templates for ground, hand-held and aerial platforms. `strataslam doctor` checks topics, rates, TF and synchronisation before you map.
- Offline fusion places the floors relative to each other in a gravity-aligned 4-DoF frame, even without any visual overlap between them.
- Maps are saved in an open, versioned format, with one point cloud per floor and a global one.
The video shows simulated buildings first, then real data: a hand-held LiDAR + IMU through real elevators (Elevator-VIGS), our Summit XL on ramps between levels, a TIAGo with LiDAR + RGB-D camera, and KITTI outdoors.
ROS 2 Jazzy, Ubuntu 24.04, Apache-2.0.
Code and docs: GitHub - EasyNavigation/StrataSLAM · GitHub
Feedback, issues and bags from your own multi-floor buildings are very welcome.