StrataSLAM: open-source multi-floor SLAM for ROS 2 (stairs, elevators, ramps, identical floors)

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.

2 Likes