Indoor mapping technologies and approaches

draft

A technical survey of sensing technologies and SLAM algorithms used to build floor plans and 3D models of building interiors. Covers ultrasound, time-of-flight, LiDAR, vision, radar, and inertial methods, with build recommendations for tiny indoor mapping devices.

June 23, 2026hardware2903 words · 15 min read
#robotics#slam#lidar#tof#indoor-mapping#computer-vision#sensors

Table of Contents

Goal of indoor mapping

Indoor mapping produces a geometric representation of the interior of a building from sensor measurements collected by a moving device. The output is typically a 2D occupancy grid (a floor plan) or a 3D point cloud, mesh, or model. The mapping process is usually coupled with localization, since the device must know its own pose to fuse measurements taken from different vantage points. This combined problem is Simultaneous Localization and Mapping (SLAM).

The choice of sensing technology determines map resolution, range, robustness to environment conditions, device size, power consumption, and cost. No single sensor is optimal across all dimensions, and most systems combine multiple modalities.

Ultrasonic ranging

Ultrasonic sensors emit a pulse of high-frequency sound (typically 40 kHz) and measure the time until the echo returns. Distance is computed from the round-trip time and the speed of sound in air (approximately 343 m/s at room temperature).

The most common module is the HC-SR04, which costs about one US dollar and has a stated range of 2 cm to 4 m.

Limitations:

  • The acoustic beam is a wide cone, typically 15 to 30 degrees. The sensor cannot distinguish which direction within the cone produced the echo, which limits angular resolution.
  • Soft surfaces such as fabric, foam, carpet, and upholstered furniture absorb the pulse, producing weak or missing returns.
  • The speed of sound varies with temperature and humidity, introducing a measurement bias of up to 2 percent across typical indoor conditions.
  • Multipath reflections from corners produce phantom obstacles.
  • Maximum sampling rate is limited by round-trip time. A 5 m measurement requires approximately 30 ms before the next pulse can be emitted without interference.

Ultrasonic sensors are useful for short-range obstacle detection and parking-assist applications, but produce indoor maps of poor metric quality. They were used in early robotics research before affordable optical alternatives existed.

Time-of-flight optical ranging

Time-of-Flight (ToF) sensors emit modulated infrared light and measure either the round-trip time or the phase shift of the returned signal to compute distance. Because the speed of light is constant and the beam is narrow, ToF sensors achieve far better metric accuracy and angular resolution than ultrasonic sensors.

Single-point ToF modules:

  • VL53L0X: 2 m range, 1 cm accuracy, ~$5
  • VL53L1X: 4 m range, ~$10
  • TFmini-S: 12 m range, ~$30
  • TFmini Plus: 12 m range, IP65 rated

Multi-zone ToF arrays sample multiple pixels in a single measurement:

  • VL53L5CX: 8 by 8 zone array, 4 m range, ~$15
  • VL53L8CX: improved 8 by 8 array, ~$20
  • TMF8821: 3 by 3 multi-target array

Multi-zone arrays give partial spatial information without moving parts, but resolution is low relative to LiDAR. Maximum range is shorter than spinning LiDAR because the available laser power is spread across many zones.

Spinning LiDAR

A spinning LiDAR mounts a single or paired ToF emitter on a motor that rotates 360 degrees, producing a 2D plane scan of distances around the device. Modern hobbyist units cost 70 to 200 US dollars and produce scans at 5 to 15 Hz.

Common modules:

  • Slamtec RPLIDAR A1M8: 12 m range, 8 kHz sample rate, 5.5 Hz scan rate, ~$100
  • Slamtec RPLIDAR A2 / A3: longer range and higher rates
  • YDLIDAR X2 / X2L: 8 m range, ~$70
  • YDLIDAR G4: 16 m range
  • Hokuyo URG-04LX: industrial-grade, ~$1500

Spinning LiDAR is the most cost-effective sensor for producing 2D floor plans of typical buildings. The output is a sequence of (angle, distance) pairs, which downstream SLAM algorithms convert to occupancy grids.

The limitation is mechanical: spinning parts wear over time and introduce vibration. Lifetime of consumer units is on the order of 5000 hours.

Solid-state LiDAR

Solid-state LiDAR replaces the mechanical scanner with electronic beam steering, using techniques such as optical phased arrays or MEMS mirrors. These sensors are smaller, quieter, and more reliable than spinning LiDAR but typically have a narrower field of view per unit.

Examples:

  • Intel L515: structured-light LiDAR with 9 m range and color camera (discontinued)
  • Livox Mid-40 / Avia: non-repetitive scan pattern, used in robotics research
  • Ouster OS0 / OS1: digital LiDAR with up to 128 vertical channels
  • Velodyne Puck (VLP-16): legacy 16-channel rotating LiDAR

Most solid-state options aimed at robotics and autonomous vehicles cost several hundred to several thousand US dollars. For indoor mapping, the price-to-coverage ratio rarely beats a spinning unit at the consumer end.

Visual sensing with a single camera

A single RGB camera captures projections of the environment without direct depth information. Depth must be inferred from sequences of images using motion. This is the basis of monocular Visual SLAM.

Algorithms compute camera motion by tracking image features (corners, edges, learned descriptors) across frames, then triangulate the 3D position of those features from the recovered camera motion. Drift accumulates over distance and must be corrected by loop closure when the camera revisits a previously mapped area.

Monocular visual SLAM has two intrinsic limitations:

  • Absolute scale is ambiguous from a single camera without additional sensors. The reconstructed map is correct only up to an unknown scale factor.
  • Featureless regions (blank walls, foggy windows) provide no measurements, so the system loses track.

Pairing the camera with an Inertial Measurement Unit (IMU) resolves scale and provides motion estimates during featureless intervals. This is Visual-Inertial SLAM, used by smartphone AR systems and most modern visual SLAM stacks.

Stereo and depth cameras

A stereo camera uses two synchronized cameras with a known baseline to compute depth from disparity between corresponding image points. Stereo provides absolute scale directly and works in textured environments without requiring motion.

Common stereo modules:

  • Intel RealSense D435 / D455: active stereo with IR projector, 10 m range
  • ZED 2i: passive stereo, 20 m range
  • Stereolabs Mini: small form factor stereo

RGB-D cameras combine a color camera with a depth sensor based on structured light or ToF projection:

  • Microsoft Kinect (v1 structured light, v2 ToF): large, requires external power
  • Microsoft Azure Kinect DK: 7.5 m ToF range, color, IMU
  • Orbbec Astra / Femto: smaller alternatives
  • Intel RealSense L515: ToF LiDAR with color (discontinued)

Stereo and RGB-D cameras produce dense depth maps at video rates, suitable for building textured 3D models. Power consumption is higher than ToF point sensors, and IR-based sensors fail in direct sunlight.

Millimeter-wave radar

Millimeter-wave (mmWave) radar operates at 60 to 81 GHz and measures range, velocity, and angle of arrival to reflecting objects. Radar is robust to lighting conditions, dust, smoke, and fog, all of which affect optical sensors.

Modules:

  • Texas Instruments IWR6843 / IWR1843: integrated radar SoCs
  • Acconeer A111 / A121: pulse-coherent radar
  • Vayyar mmWave imaging: full 3D imaging radar

Indoor mapping with mmWave is an active research area. Spatial resolution is coarser than LiDAR (angular resolution of degrees rather than fractions of a degree), and reflections are dominated by metallic surfaces, but the technology is useful in environments where optical sensors fail.

Inertial Measurement Units

An Inertial Measurement Unit (IMU) combines accelerometers and gyroscopes (and often a magnetometer) to measure linear acceleration, angular velocity, and orientation. IMUs cannot map the environment by themselves, but they provide motion estimates between measurements from other sensors.

IMUs are essential for visual-inertial SLAM and improve robustness in LiDAR SLAM by providing motion priors. They are also used for dead reckoning, in which position is estimated by integrating motion measurements, though integration error grows quadratically with time.

Common modules:

  • MPU-6050: 6-axis, low cost, ~$5
  • BMI270 / BMI088: 6-axis, lower noise
  • ICM-20948: 9-axis with magnetometer
  • VectorNav VN-100: industrial-grade

Ultra-wideband ranging

Ultra-Wideband (UWB) radios measure range between transceivers with centimeter-level accuracy by computing time-of-flight of short radio pulses. UWB is used for localization, not directly for mapping the environment, but it is relevant for indoor positioning systems that complement on-device mapping.

Modules such as the Decawave/Qorvo DWM1000 enable indoor positioning networks with fixed anchors and mobile tags.

Radio fingerprinting

WiFi and Bluetooth signal strength fingerprinting estimates location by comparing observed signals against a previously surveyed database. Accuracy is on the order of meters and depends heavily on the density and stability of the radio environment. Useful for room-level localization, not for geometric mapping.

Smartphone-based mapping

Modern smartphones include ARKit (iOS) and ARCore (Android) frameworks that perform visual-inertial SLAM on device. Newer Apple devices (iPhone 12 Pro and later, iPad Pro since 2020) include a small ToF LiDAR sensor, enabling direct 3D scanning.

Applications such as Polycam, Scaniverse, RoomPlan, Magicplan, and Matterport produce indoor floor plans and 3D models without requiring custom hardware. For tasks where the goal is the floor plan rather than the device itself, a smartphone is the most practical starting point.

SLAM algorithms

The sensor data must be processed into a coherent map through a SLAM algorithm. Algorithms can be categorized by sensor modality and by mathematical approach.

2D LiDAR SLAM

  • Gmapping: particle-filter-based, robust on small maps, the classic baseline.
  • Hector SLAM: scan-matching with no odometry requirement, fast.
  • Cartographer (Google): graph-based, supports 2D and 3D, well documented.
  • slam_toolbox: graph-based SLAM with lifelong mapping support, current ROS 2 default.
  • Karto SLAM: graph-based, supports loop closure.

3D LiDAR SLAM

  • LOAM and its derivatives (A-LOAM, LeGO-LOAM, F-LOAM, LIO-SAM): scan registration with optional IMU fusion.
  • FAST-LIO and FAST-LIO2: tightly-coupled lidar-inertial odometry, low computational cost.
  • KISS-ICP: minimal-parameter point-to-point ICP for LiDAR odometry.

Visual and visual-inertial SLAM

  • ORB-SLAM2 and ORB-SLAM3: feature-based, monocular/stereo/RGB-D, mature.
  • VINS-Mono and VINS-Fusion: tightly-coupled visual-inertial.
  • OpenVINS: extended Kalman filter framework for visual-inertial estimation.
  • Kimera: visual-inertial with semantic 3D mesh output.
  • DSO and LSD-SLAM: direct (photometric) approaches, work well in low-texture conditions.

Visual-only dense reconstruction

  • COLMAP: offline Structure-from-Motion, very high quality, slow.
  • OpenMVS: dense multi-view stereo for textured meshes.
  • NeRF and 3D Gaussian Splatting: neural and differentiable scene representations, increasingly used for indoor capture.

General SLAM frameworks

  • GTSAM: factor graph optimization library used internally by many SLAM systems.
  • g2o: graph optimization library, used by ORB-SLAM among others.
  • Ceres Solver: nonlinear least squares optimizer.

Computational requirements

Sensor data rates and algorithm complexity determine the compute platform required.

  • 2D LiDAR with grid SLAM: runs on Raspberry Pi Zero 2 W to Raspberry Pi 4. ~100 MB RAM, single core.
  • 3D LiDAR SLAM (FAST-LIO2): comfortable on Raspberry Pi 5, Jetson Nano, or x86 mini-PC.
  • Visual-inertial SLAM (ORB-SLAM3, VINS): needs Jetson Orin Nano or x86 with at least 4 cores, real-time at VGA resolution.
  • Dense neural reconstruction (NeRF, Gaussian Splatting): typically offline on a workstation GPU.

Power and size considerations

The mass and volume of a portable mapping device are dominated by sensors, compute, and battery rather than enclosure. Approximate budgets for a handheld device of about 150 grams:

  • LiDAR: 50 to 150 grams, 1.5 to 5 W
  • IMU: under 5 grams, under 0.1 W
  • Compute (Raspberry Pi Zero 2 W to Pi 4): 10 to 50 grams, 1 to 5 W
  • Battery for one hour of operation: 30 to 100 grams

Solid-state ToF arrays and visual-inertial setups can be lighter than spinning LiDAR but typically require more compute, shifting weight from sensor to processor.

Floor plan of a building, lowest difficulty

Slamtec RPLIDAR A1M8 plus IMU plus Raspberry Pi Zero 2 W plus LiPo battery. Run slam_toolbox under ROS 2. Walk through the building or mount on a wheeled chassis. Produces 2D occupancy grid at room accuracy of a few centimeters.

3D model of indoor space, hobbyist

Intel RealSense D435i plus Raspberry Pi 5 or Jetson Orin Nano. Run RTAB-Map for visual-inertial RGB-D SLAM. Produces colored 3D point cloud and mesh.

Smallest possible device, no moving parts

VL53L5CX or VL53L8CX array plus BMI270 IMU plus ESP32-S3 or Raspberry Pi Pico W. Acquire frames while sweeping by hand, fuse offline. Limited by 4 m range and 8 by 8 spatial resolution per frame.

Research-grade, dense and accurate

Ouster OS0 plus VectorNav IMU plus x86 mini-PC. Run FAST-LIO2 or LIO-SAM. Produces dense 3D point cloud at centimeter accuracy. Higher cost and weight.

Smartphone-based, no custom hardware

iPhone 12 Pro or later with Polycam, Scaniverse, or Apple RoomPlan SDK. Mature implementation, no custom build effort, output is industry-standard formats (OBJ, USDZ, IFC).

Summary of trade-offs

The most cost-effective indoor mapping technology in 2026 is a 2D spinning LiDAR combined with an IMU and a small Linux compute board, processed with established SLAM software such as Cartographer or slam_toolbox. Solid-state ToF arrays are the strongest path toward miniaturization, at the cost of range. Visual-inertial methods are the most flexible and lowest-power option for sensors, but require more compute and adequate lighting. Ultrasonic sensors are not competitive for mapping at any current price point. Smartphone-based systems already solve the indoor mapping problem for most practical purposes and should be considered before any custom hardware is built.

Minimal Raspberry Pi build

A practical shopping list for a hand-carried 2D floor-plan mapper based on a Raspberry Pi. Prices in USD are typical mid-2026 retail ranges from international hobby electronics distributors.

ItemPrice (USD)Notes
Raspberry Pi Zero 2 W40 – 62Smallest board with enough compute for 2D SLAM
microSD 32 GB class 108 – 13SanDisk or Samsung
YDLIDAR X2L67 – 100Lowest-cost 360-degree 2D LiDAR, 8 m range
MPU-6050 IMU module3 – 6GY-521 breakout, 6-axis
Power bank 10 000 mAh13 – 275V 2A output minimum
USB-A to micro-USB cable2 – 3Pi Zero 2 W power
Jumper wires and breadboard3 – 6IMU wiring
Pi Zero header pins1 – 2Pi Zero 2 W usually ships unsoldered
Mini HDMI to HDMI adapter2 – 4First-time setup
Micro-USB OTG adapter1 – 2USB keyboard during setup

Total cost is approximately 145 to 225 USD.

If the budget allows an extra 50 to 80 USD, the Raspberry Pi 4 (2 GB) is preferable to the Pi Zero 2 W. The four cores and larger RAM make live SLAM smoother and avoid post-processing. The Pi Zero 2 W is sufficient but CPU-bound on real-time mapping.

If the Slamtec RPLIDAR A1M8 (135 to 180 USD) is available at a comparable price, prefer it over the YDLIDAR X2L. The A1M8 has slightly longer range, lower noise, and substantially more community documentation and example code. The YDLIDAR X2L is selected here strictly on cost.

The minimum-viable software path is BreezySLAM, a Python library that runs on the Pi Zero 2 W with either LiDAR and produces 2D occupancy grids without requiring ROS. Migrate to ROS 2 with slam_toolbox later if the project grows.

Raspberry Pi build for 3D point cloud scanning

A handheld 3D scanner that produces colored point clouds and meshes requires an RGB-D or stereo sensor and a more capable compute board than the 2D build. Prices in USD are typical mid-2026 retail ranges.

ItemPrice (USD)Notes
Raspberry Pi 5 (4 GB)60 – 80USB 3.0 and four Cortex-A76 cores are required for real-time visual-inertial SLAM
Intel RealSense D435i260 – 330Active stereo with built-in IMU, 10 m range, IR projector
microSD 64 GB class 10 or NVMe HAT + SSD12 – 60NVMe recommended for storing dense point clouds
Active cooling case for Pi 512 – 20RTAB-Map sustains high CPU load
USB 3.0 type-A to type-C cable5 – 10Quality cable matters; cheap cables drop frames
USB-C PD power bank (5V 5A or 9V 3A)25 – 50Pi 5 requires 5V at up to 5A under load
Mounting plate or 3D-printed enclosure5 – 15Rigid coupling between camera and Pi reduces IMU vibration noise

Total cost is approximately 380 to 565 USD.

The Intel RealSense D435i is the standard choice for handheld indoor 3D capture in this price range. Its built-in IMU eliminates the need for a separate sensor and matches the camera frame timing. The active stereo with structured IR projector works in textureless rooms where pure passive stereo fails.

Alternative sensors at this scale:

  • Luxonis OAK-D Lite at 150 to 200 USD performs stereo depth and visual-inertial estimation on-camera, offloading work from the Pi. Lower depth quality than the D435i but reduces Pi load substantially.
  • Stereolabs ZED 2i at 450 to 600 USD provides longer range (20 m) but requires more compute and is typically paired with a Jetson rather than a Pi.
  • Orbbec Femto Bolt at 350 to 450 USD is a ToF-based RGB-D camera with similar capability to the discontinued Azure Kinect.

The software path on the Pi 5 is RTAB-Map under ROS 2 Jazzy. RTAB-Map performs RGB-D SLAM with loop closure, exports colored point clouds in PCD or PLY format, and can produce textured meshes through its built-in OctoMap and Poisson reconstruction backends. The Pi 5 sustains RGB-D SLAM at VGA resolution and 15 frames per second; higher resolutions require a Jetson Orin Nano or an x86 mini-PC.

For a lower-cost 3D approach without an RGB-D camera, a 2D spinning LiDAR can be mounted on a tilting servo gimbal and indexed through vertical angles. The RPLIDAR A1M8 plus an SG90 servo plus a Pi 4 produces a 3D point cloud for under 200 USD, at the cost of much slower scan time (minutes per room instead of seconds) and the requirement that the device remain stationary during each scan.