Lidar SLAM: How It Works, Key Algorithms, and How to Implement It
Lidar SLAM lets a robot, vehicle, or handheld scanner map an unknown space while tracking its own position inside it. This guide discusses the processing pipeline, compares nine lidar SLAM and odometry algorithms, from GMapping to lidar-inertial and neural methods, and shows how to choose sensors
Key Takeaways
Lidar SLAM estimates the sensor's trajectory and maps its surroundings simultaneously. Without loop closure, it reduces to odometry, and odometry drifts.
A SLAM system splits into a front end that turns lidar data into constraints (scan matching, place recognition) and a back end that optimizes them (a pose graph or a filter).
Lidar SLAM algorithms are chosen based on the sensor and motion. A 2D laser scanner on a planar robot suits SLAM Toolbox or Cartographer, while a 3D lidar with an IMU suits lidar-inertial odometry like LIO-SAM or FAST-LIO2.
Lidar performance is highly stable under illumination. It’s a key advantage over visual SLAM, but cameras are better at telling geometrically identical places apart.
SLAM Toolbox (the default SLAM package in ROS 2) and KISS-ICP (3D lidar odometry installed with one pip command) are practical open-source starting points.
Introduction
Self-localization is a critical attribute of modern robotics. To localize itself, a robot needs a consistent map, which is only possible through accurate estimation of its location.[1] Simultaneous localization and mapping (SLAM) breaks the challenge of circular dependency by estimating localization and mapping together.[2]
Lidar SLAM, or SLAM with lidar, does this with light detection and ranging sensors. A conventional lidar sends out laser pulses and calculates the time-of-flight of the echo it receives. A continuous stream of these values helps generate a 3D map of the scene point by point.[3]
Laser scanners are common perception sensors, mainly used for localization and mapping in industrial environments. SLAM methods built on such scanners are generally considered the most robust in the field.[4] This guide explains how the lidar SLAM pipeline works and compares the nine algorithms. We will also see the critical sensor specifications, how lidar SLAM differs from visual SLAM, and how to get a working system running with open-source tools.
What Is Lidar SLAM?
SLAM is the simultaneous construction of a model of the environment and estimation of the state of the robot moving within it.[2] In lidar-based SLAM, the map is built from lidar data:
2D scans from a planar laser scanner
3D point clouds from a multi-beam or solid-state sensor.
The state always includes the sensor's pose, meaning its position and orientation. In a 2D system such as Google's Cartographer, the pose is an (x, y) translation plus a rotation.[5] A 3D lidar-inertial system such as LIO-SAM also tracks velocity and IMU bias alongside rotation and position.[6]
Front-End and Back-End
The front-end abstracts sensor data into models that are amenable to estimation, and the back-end performs inference on what the front-end produces.[2]
At the front-end, SLAM overlaps with computer vision and signal processing. At the back-end, it is a mix of geometry, graph theory, optimization, and probabilistic estimation.[2]
Cartographer is a typical lidar example: its front-end handles scan matching and builds the trajectory and submaps, and its back-end does the loop closure.[4]
Why Loop Closure Separates SLAM From Odometry
If you sacrifice loop closures, SLAM reduces to odometry. Odometry drifts: wheel odometry, for example, quickly becomes unusable after a few meters.[2] Scan-to-scan lidar matching has the same weakness, because on its own it quickly accumulates error.[5]
A robot that neglects loop closures interprets the world as an infinite corridor. Recognizing a revisited place tells it that the corridor intersects itself, so it can recover the real topology of the environment.[2]
Recommended Reading: Lidar vs Radar: Key Differences, Specs and Uses in Autonomous Driving and Speed Enforcement
How Lidar SLAM Works: The Processing Pipeline
Lidar SLAM systems broadly follow the same sequence of stages, even when their internals differ. The diagram shows the flow from raw scans to a globally consistent map.
Capture lidar data. A moving lidar receives its range measurements at different times, so errors in the motion estimate can cause misregistration of the resulting point cloud.[7]
De-skew each scan. Motion compensation removes this data distortion. LIO-SAM uses IMU pre-integration to de-skew each point cloud and to give lidar odometry an initial guess,[6] while KISS-ICP uses a simple motion compensation approach without an IMU.[8]
Match the scan. Scan matching computes the relative pose change between the new scan and a previous scan, a local submap, or the map.[5]
Update the local map. The registered scan is inserted into a map representation, such as Cartographer's probability-grid submaps.[5]
Detect loop closures. The robot recognizes a previously visited place through scan matching and may establish one or more loop closures along its path.[9]
Optimize the pose graph. The back-end minimizes the error introduced by all constraints, and the loop closure information is used to update the map and adjust the estimated trajectory.[9]
Export and reuse the map. The output is an occupancy grid, or a 3D point cloud map. For instance, SLAM Toolbox serializes the pose graph and raw data so a later session can continue refining the same map, which is the basis for re-localization.[4]
Scan Matching: ICP, Features and Submaps
Scan matching is the core of the front-end, and there are several ways to do it.
Iterative closest point (ICP). ICP aligns raw points directly. KISS-ICP shows how far a lean version goes: point-to-point ICP with adaptive correspondence thresholds, a robust kernel, motion compensation, and point cloud subsampling, run with the same parameters, performs on par with state-of-the-art methods on automotive, UAV, and handheld platforms.[8]
Feature matching. LOAM extracts points on sharp edges and planar surfaces and matches them to edge line segments and planar surface patches.[7] Feature-based matching is computationally more efficient than matching a full point cloud.[6]
Scan-to-submap matching. Scan-to-map matching limits the error that scan-to-scan matching accumulates.[5] Cartographer matches each scan against a submap built from a few consecutive scans, using a Ceres-based nonlinear optimization.[5]
Direct registration. FAST-LIO2 skips feature extraction and registers raw points directly to the map, which lets it exploit subtle features and adapt to LiDARs with different scanning patterns.[10]
Loop Closure and Place Recognition
Loop closure needs a way to recognize a revisited place and a way to reject false matches. A global descriptor is a common approach for 3D lidar. Scan Context describes a 3D lidar scan without a histogram or prior training and uses a two-phase search to detect loops efficiently. Together, the descriptor and its search make loop detection invariant to lidar viewpoint changes, so a loop can be detected on a reverse revisit or at a corner.[11]
Cartographer takes a different route in 2D. A branch-and-bound search computes scan-to-submap matches fast enough for real-time loop closure at a 5 cm map resolution.[5]
A higher loop closure threshold helps reject false positives, but a high-score match may still be a bad match. This is typically true where the environment has similar or repeated features.[9]
Cartographer adds a robust loss function, such as Huber loss, to limit the damage from incorrect constraints in locally symmetric spaces like office cubicles.[5]
Pose Graph Optimization
Graph-based SLAM works over a collection of nodes representing poses and features. Edges are constraints generated from observations, and an optimizer minimizes the error introduced by all constraints.[5]
Cartographer follows Sparse Pose Adjustment and re-solves its problem with Ceres every few seconds, so to the operator, loops appear to close immediately when a location is revisited.[5] LIO-SAM builds a factor graph with four factor types:
IMU preintegration
LiDAR odometry
GPS
Loop closure.
Under a Gaussian noise assumption, maximum a posteriori inference on that graph is equivalent to solving a nonlinear least-squares problem.[6]
Filter-based methods are the older alternative. SLAM algorithms split into earlier Bayes filter approaches and newer graph-based methods, and GMapping and Hector SLAM are the significant filter-based implementations available as ROS packages.[4]
2D vs 3D Lidar SLAM
Before choosing a lidar SLAM algorithm, it’s essential to know whether you need 2D or 3D lidar SLAM.
A 2D lidar sweeps a single plane, and the SLAM system estimates a planar pose: x, y, and heading. On tilting platforms like Cartographer's mapping backpack, an IMU estimates the direction of gravity so each scan can be projected into the horizontal plane.[5] Classic 2D systems such as GMapping build grid maps from 2D lidar data.[4]
3D lidar SLAM estimates a full six-degree-of-freedom pose. LOAM, for example, was designed for a lidar moving in 6-DOF.[7] Multi-beam lidar sensors such as the Ouster OS1 provide 32, 64, or 128 channels over a 44° vertical field of view.[12]
Lidar SLAM Algorithms
The following table covers nine lidar SLAM and odometry algorithms, from the 2D filter-based classics to lidar-inertial and neural methods. Years refer to the original paper or preprint.
Method (year) | Sensor | Dimensions | Loop closure | Map representation |
GMapping (2007)[1] | 2D laser scanner and odometry | 2D | Fails to close loops accurately at industrial scale[4] | One grid map per particle |
Hector SLAM (2011)[13] | 2D laser scanner, no odometry needed, tolerates roll and pitch | 2D | No explicit loop closing | 2D map with a high update rate[4] |
Cartographer (2016)[5] | 2D laser scanner, IMU on unstable platforms | 2D (in the paper) | Branch-and-bound scan-to-submap matching | Probability-grid submaps, 5 cm in the paper |
SLAM Toolbox (2021)[4] | 2D laser scanner | 2D | Pose-graph optimization with the Karto scan matcher and a Ceres-based solver[14] | Serialized pose graph plus raw scan data |
LOAM (2014)[7] | 3D lidar (2-axis in the paper), IMU optional | 3D | None in the original method | Edge and planar features in a global voxel map[6] |
KISS-ICP (2022)[8] | 3D lidar only, no IMU | 3D | None (odometry pipeline) | Subsampled point cloud |
LIO-SAM (2020)[6] | 3D lidar and IMU, optional GPS | 3D | Loop closure factor in a factor graph | Keyframes registered to a sliding window of sub-keyframes |
FAST-LIO2 (2021)[10] | 3D lidar (spinning or solid-state) and IMU | 3D | Not part of the odometry framework | Raw points in an incremental k-d tree (ikd-Tree) |
PIN-SLAM (2024)[15] | Lidar or RGB-D camera | 3D | Loops detected from neural point features | Implicit signed distance field on neural points |
GMapping and Hector SLAM
GMapping and Hector SLAM are filter-based 2D SLAM algorithms. Such a technique uses a Rao-Blackwellized particle filter. Each particle carries its own map of the environment. Its contribution is a proposal distribution that accounts for the most recent observation. So it doesn’t only account for the robot's movement. Moreover, it offers selective resampling that reduces particle depletion.[1]
GMapping became one of the most commonly used SLAM libraries, but it is well suited to smaller spaces. Moreover,filter-based approaches cannot easily be reinitialized across multiple sessions.[4]
Hector SLAM works without odometry and on platforms with roll and pitch motion, delivering 2D pose estimates at the sensor's scan rate: 40 Hz with a Hokuyo UTM-30LX.[13] It has no explicit loop-closing ability, so it can produce inaccurate pose and map updates without Odometry, and when scans arrive at a lower rate or in large or featureless spaces.[4]
Cartographer and SLAM Toolbox
Cartographer and SLAM Toolbox use graph-based 2D SLAM.
Google's Cartographer was built for a backpack mapping platform and avoids a particle filter to keep hardware requirements modest. One of its test cases covered 22,000 m² collected over a 3 km trajectory.[5] In 2021, the SLAM Toolbox authors described Cartographer as having stopped maintenance and support from Google.[4]
SLAM Toolbox builds on OpenKarto and replaced GMapping as the default SLAM package in ROS 2, where it is integrated into the Navigation2 project. It has mapped large spaces of up to 24,000 m² in real time, operated by non-expert technicians.[4] Its README lists synchronous and asynchronous mapping, a localization mode built on the pose graph, and map serialization with lossless data storage.[14]
LOAM and KISS-ICP
LOAM and KISS-ICP algorithms feature 3D LiDAR Odometry techniques and are one of the highly ranked methods.
LOAM divides the problem between two algorithms. One performs odometry at high frequency but low fidelity, and the other runs an order of magnitude slower for fine matching and registration of the point cloud.[7]
In 2020, the LIO-SAM authors noted that LOAM had been ranked the top lidar-based method on the KITTI odometry benchmark since its release. They also noted that its global voxel map often makes loop closure detection difficult and that it drifts in large-scale tests.[6]
Lidar-Inertial Odometry with LIO-SAM and FAST-LIO2
Lidar-inertial odometry fuses lidar and IMU (inertial measurement unit) data, either loosely or tightly coupled. LOAM is loosely coupled. Its IMU de-skews scans and provides a motion prior, but takes no part in the optimization.[6]
LIO-SAM formulates tightly coupled lidar-inertial odometry on a factor graph and uses the lidar odometry solution to estimate the IMU bias.[6] For real-time performance, it marginalizes old scans instead of matching against a global map, and it registers each new keyframe to a fixed-size sliding window of sub-keyframes.
FAST-LIO2 builds on a tightly coupled iterated Kalman filter and was benchmarked on 19 sequences from open lidar datasets.[10] Its authors report odometry and mapping at up to 100 Hz in large outdoor environments, reliable pose estimation in cluttered indoor environments with rotation up to 1000 deg/s, and support for spinning and solid-state lidars on Intel and ARM processors.[10]
PIN-SLAM for Neural Implicit Mapping
PIN-SLAM represents the map as an implicit signed distance field stored on sparse, optimizable neural points.[15] The points deform with the global pose adjustment when a loop closes; loops are detected from the neural point features, and voxel hashing keeps the neural points indexed efficiently.[15]
The practical trade-off is hardware. PIN-SLAM runs at the sensor frame rate on a moderate GPU,[15] whereas FAST-LIO2 runs on Intel and ARM processors.[10] PIN-SLAM also accepts RGB-D cameras as well as lidar.[15]
Choosing Lidar Sensors for SLAM
When you pick a SLAM lidar, four sensor properties have a direct effect on how well SLAM algorithms perform:
Vertical field of view and channel count. These set how much 3D structure each sweep captures. A 2D lidar sees a single plane.
Scan rate. Hector SLAM leverages the high update rate of modern lidars,[13] and it can produce inaccurate pose and map updates when scans arrive at a lower rate.[4]
Scanning pattern. FAST-LIO2's authors note that eliminating hand-engineered feature extraction makes their method naturally adaptable to lidars with different scanning patterns, and they tested it on small-FoV solid-state lidars.[10]
IMU and time synchronization. Lidar-inertial methods need an IMU.[6] The Ouster OS1 Rev8 has a built-in 3-axis gyro and accelerometer at up to 2,560 samples per second, and it accepts IEEE 1588 Precision Time Protocol input for time synchronization.[12]
The table shows three lidar sensors with different architectures, as their manufacturers specify them.
Sensor | Type | Range | Field of view (H × V) | Frame rate | Notes |
Ouster OS1 (Rev8)[12] | Spinning, 32, 64 or 128 channels | 90 m at 10% reflectivity, 170 m at 80% | 360° × 44° | 5 to 40 Hz | Synchronous IMU, 865 nm laser, minimum range configurable down to 0 m (0.5 m default) |
InnovizOne[16] | Solid-state, automotive-grade | 1.2 m to 250 m | Up to 115° × 25° | 10 or 15 FPS | Eagle configuration: 115° × 15°, 15 FPS, 250 m maximum. Falcon: 115° × 25°, 10 FPS, 190 m maximum. 0.1° × 0.1° native resolution, 905 nm |
Continental HFL110[17] | Solid-state 3D flash, short range | 50 m | 120° × 30° | 25 frames per second | Released to series production in November 2021 |
Continental's flash technology came from Advanced Scientific Concepts (ASC). ASC's TigerCub camera, introduced in 2013, used a 128 × 128 focal plane array, a 1570 nm laser, and operated up to 20 Hz (30 Hz possible).[18] Continental bought ASC in 2016 to develop flash lidar for the autonomous car market.[3]
Recommended Reading: How to Choose the Right LiDAR Sensor for Your Project
Lidar SLAM vs Visual SLAM
Visual SLAM uses cameras instead of lidar. ORB-SLAM3, for example, performs visual, visual-inertial, and multi-map SLAM with monocular, stereo, and RGB-D cameras, and its source code is public.[19]
Vision-based methods typically triangulate features across successive images to determine camera motion. They are especially suitable for place recognition, but their sensitivity to initialization, illumination, and range makes them unreliable as the sole basis for autonomous navigation.[6]
The trade-off also runs the other way. Two rooms may look identical to a 2D laser scanner (perceptual aliasing), while a camera may tell them apart from appearance cues.[2] Visual SLAM can also be highly accurate. For instance, ORB-SLAM3's stereo-inertial mode averages 3.6 cm on the EuRoC drone dataset and 9 mm under quick hand-held motion in a TUM-VI room.[19]
Criterion | Lidar SLAM | Visual SLAM |
Primary sensor | 2D or 3D lidar, often with an IMU[6] | Monocular, stereo or RGB-D camera[19] |
How range is obtained | Measured by the sensor from laser pulse return times[3] | Triangulated from features across successive images[6] |
Lighting | Largely invariant to illumination change;[6] insensitive to ambient lighting and optical texture[7] | Sensitive to initialization, illumination and range[6] |
Place recognition | Geometric descriptors such as Scan Context[11] | Especially suitable for place recognition[6] |
Typical failure to plan for | Perceptual aliasing in geometrically similar spaces[2] | Long periods of poor visual information; ORB-SLAM3 starts a new map and merges it later[19] |
Example systems | LIO-SAM, FAST-LIO2, KISS-ICP | ORB-SLAM3 |
How to Implement Lidar SLAM With Open-Source Tools
A practical path from recorded data to a working map looks like this.
1. Decide between 2D and 3D. A wheeled robot on flat floors can often use 2D lidar SLAM. A drone, a handheld mapper, or a vehicle on uneven ground needs 3D lidar SLAM with a 6-DOF pose.
2. Calibrate and synchronize. LOAM assumes a pre-calibrated lidar,[7] and lidar-inertial methods fuse lidar and IMU measurements, so their timestamps must line up. Sensors such as the Ouster OS1 accept IEEE 1588 Precision Time Protocol input for this.[12]
3. Prototype on recorded data. MathWorks' lidar SLAM example builds a pose graph from a recorded series of lidar scans with a few lines of code. Its loop closure parameters are set empirically, so treat them as a starting point for your own data.[9]
maxLidarRange = 8; mapResolution = 20; slamAlg = lidarSLAM(mapResolution, maxLidarRange); slamAlg.LoopClosureThreshold = 210; slamAlg.LoopClosureSearchRadius = 8;
4. Run 2D SLAM on ROS 2 with SLAM Toolbox. The README installs it with
apt install ros-eloquent-slam-toolbox (substitute your own ROS 2 distribution) and launches it with the command below. Save the serialized map, then use localization mode to re-localize in it in later sessions.[14]
ros2 launch slam_toolbox online_sync_launch.py
5. Get a 3D odometry baseline with KISS-ICP. It needs no IMU[8] and, according to its authors, works in most cases without parameter tuning.[20]
pip install kiss-icp kiss_icp_pipeline --help
6. Add an IMU and loop closure for full 3D SLAM. Move to LIO-SAM if you want a factor graph that can also take GPS and loop closure factors,[6] or to FAST-LIO2 for high-rate lidar-inertial odometry on spinning or solid-state lidars. Its implementation is open source on GitHub.[10]
7. Validate the map. Check each loop closure visually and compare the final map with a floor plan. MathWorks can plot the scans and pose graph whenever a loop closure is identified, then overlay the final map on the original floor plan.[9]
Applications of Lidar SLAM
Autonomous Vehicles and Autonomous Driving
State estimation, localization, and mapping are fundamental prerequisites for an intelligent mobile robot, required for feedback control, obstacle avoidance, and planning.[6] Automotive lidar sensors are designed for this role. InnovizOne targets mass production of Level 2.5 to Level 5 autonomous vehicles, and its perception software classifies pixels frame by frame as possible obstacles within the drivable and non-drivable areas.[16]
Continental's HFL110 release targets passenger and commercial vehicles, and positions its lidar sensors for adverse weather or road conditions where cameras and radar may be limited.[17]
Suggested reading: Autonomous Vehicle Technology Report
Mobile Robots in Warehouses, Retail and Hospitals
Autonomous robots now operate in retail stores, hospitals, and warehouses, and those spaces are both dynamic and frequently massive. An average Walmart store is over 16,000 m².[4] Laser-based SLAM can provide accurate positioning in the presence of dynamic obstacles and changing environments, and SLAM Toolbox adds multi-session mapping and prototype lifelong mapping for spaces that change over time.[4]
Recommended Reading: How autonomous robots know where they are
Drones and Handheld Mappers
Aerial and handheld platforms move in all six degrees of freedom, so they use 3D lidar SLAM or a 2D method that handles tilt. Hector SLAM has been used on logged data from quadrotor UAVs,[13] FAST-LIO2 supports UAV and handheld platforms,[10] and KISS-ICP was evaluated on UAV-based operation and handheld lidars.[8]
Surveying and Laser Scanning
Cartographer was developed to capture as-built floor plans. Manual surveys that combine CAD with laser tape measures are slow, and SLAM makes it possible to survey buildings swiftly and accurately.[5]
Handheld SLAM scanners bring the same kind of lidar mapping to site work. The Leica BLK2GO combines a dual-axis lidar, a multi-camera vision system, and an IMU,[22] captures 420,000 points per second, and specifies ±10 mm indoor accuracy at one sigma, measured in a controlled environment with a 2-minute scan.[21]
Recommended Reading: Precision Meets Simplicity: Fixposition's Impact on Modern Surveying and Mapping
Challenges and Troubleshooting
The table maps common lidar SLAM symptoms to likely causes and fixes.
Symptom | Likely cause | What to try |
Walls look doubled or smeared when the sensor moves fast | Motion distortion within a sweep[7] | De-skew with IMU pre-integration[6] or a motion compensation step[8] |
The trajectory does not meet itself when you return to the start | Odometry drift without loop closure[2] | Enable loop closure and pose graph optimization[9] |
Two different corridors merge into one | False-positive loop closure in similar or repeated structure[9] | Raise the loop closure threshold[9] and use a robust loss such as Huber loss[5] |
Pose jumps in large or featureless areas | Too little structure for scan matching, worse without odometry[4] | Add odometry or an IMU; lidar-inertial methods fuse both[6] |
The system falls behind real time | Too much data for the optimizer; LIOM, for example, ran at about 0.6 times real time[6] | Subsample points,[8] use keyframes and a sliding window,[6] or use a lighter map structure such as an ikd-Tree[10] |
Dynamic objects are a separate issue. People, vehicles, and moved inventory add points that do not belong in a static map, and they are obstacles the robot must still avoid. Retail and warehouse spaces can also change drastically throughout the year, so deployed robots need tools to update their maps over time.[4]
Lidar alone also has limits. Registration using skewed point clouds or features eventually causes large drift, which is why lidar is typically combined with other sensors such as an IMU or GPS.[6]
Conclusion
Lidar SLAM combines front-end scan matching and place recognition with back-end optimization to produce a map and a trajectory that stay consistent over time. Moreover, loop closure makes it more than odometry, and reliable place recognition keeps false loop closures out of the map.
For 2D mapping planar robots, SLAM Toolbox and Cartographer are suitable algorithms. For vehicles, drones, and handheld devices, lidar-inertial methods such as LIO-SAM and FAST-LIO2 handle full 6-DOF motion, KISS-ICP gives a simple lidar-only odometry baseline, and PIN-SLAM shows where neural map representations are heading.
FAQs
1. What is SLAM in laser scanning?
In laser scanning, SLAM lets a mobile or handheld scanner work out where it is and where it has been while it moves, so you capture a space by walking through it. Leica, for example, describes scanning over and under objects, through rooms and doorways, around corners and up and down stairwells with its BLK2GO, which uses SLAM to know where it is and where it has been.
2. What does SLAM mean in AI?
In AI and robotics, SLAM stands for simultaneous localization and mapping. It builds a model of an unknown environment while estimating the state of the robot moving within it. It combines computer vision and signal processing at the front-end with optimization and probabilistic estimation at the back-end.
3. What is the difference between lidar SLAM and visual SLAM?
Lidar SLAM measures range directly and is stable under illumination. Visual SLAM triangulates features across camera images. It is especially suitable for place recognition but sensitive to initialization and illumination.
4. Can lidar SLAM work without an IMU?
Yes. LOAM was designed to work without high-accuracy inertial measurements, KISS-ICP relies only on 3D point clouds, and Cartographer's authors note that more frequent or pixel-accurate scan matching, although more computationally intensive, can be used in the absence of an IMU.
5. What is 3D lidar SLAM?
3D lidar SLAM estimates a six-degree-of-freedom pose from 3D point clouds and builds a 3D point cloud map. LOAM, LIO-SAM, FAST-LIO2, KISS-ICP (odometry only), and PIN-SLAM are 3D methods, while GMapping, Hector SLAM, and SLAM Toolbox work on 2D scans.
6. How does lidar SLAM improve autonomous vehicle navigation?
It gives the vehicle a continuously updated estimate of its pose and surroundings, which feedback control, obstacle avoidance, and planning depend on. Because lidar is largely invariant to illumination changes, it holds up in lighting conditions that make camera-only methods unreliable.
7. Is odometry the same as SLAM?
No. Odometry integrates motion over time and drifts. SLAM adds loop closures to correct that drift; without them, SLAM reduces to odometry.
References
Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filters, G. Grisetti, C. Stachniss and W. Burgard, 2007 (author copy hosted by the University of Bonn).
Past, Present, and Future of Simultaneous Localization and Mapping: Towards the Robust-Perception Age, C. Cadena et al., IEEE Transactions on Robotics 32(6), 2016.
Flash Lidar Enables Driverless Navigation, NASA Spinoff, 2020.
SLAM Toolbox: SLAM for the dynamic world, S. Macenski and I. Jambrecic, Journal of Open Source Software 6(61), 2021.
Real-Time Loop Closure in 2D LIDAR SLAM, W. Hess, D. Kohler, H. Rapp and D. Andor, Google, 2016.
LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping, T. Shan et al., arXiv:2007.00258, 2020.
LOAM: Lidar Odometry and Mapping in Real-time, J. Zhang and S. Singh, Robotics: Science and Systems X, 2014.
KISS-ICP: In Defense of Point-to-Point ICP, I. Vizzo et al., arXiv:2209.15397, 2022.
Implement Simultaneous Localization And Mapping (SLAM) with Lidar Scans, MathWorks documentation.
FAST-LIO2: Fast Direct LiDAR-inertial Odometry, W. Xu et al., arXiv:2107.06829, 2021.
Scan Context: Egocentric Spatial Descriptor for Place Recognition Within 3D Point Cloud Map, G. Kim and A. Kim, IEEE/RSJ IROS, 2018.
OS1 Mid-Range High-Resolution Imaging Lidar, Hardware Rev8 datasheet, Ouster, 2026.
hector_mapping package description, ROS Index.
slam_toolbox repository README, S. Macenski, GitHub.
PIN-SLAM: LiDAR SLAM Using a Point-Based Implicit Neural Representation for Achieving Global Map Consistency, Y. Pan et al., arXiv:2401.09101, 2024.
InnovizOne Series Production Unit datasheet, Innoviz Technologies, 2023 (hosted by distributor Level Five Supplies).
Continental Releases HFL110 3D Flash LiDAR to Series Production, Continental, November 2021.
Advanced Scientific Concepts, Inc. (ASC) Introduces the TigerCub 3D Flash LIDAR Camera with Zephyr Laser, Advanced Scientific Concepts via PR Newswire, 2013.
ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM, C. Campos et al., arXiv:2007.11898, 2020.
KISS-ICP repository README, PRBonn, GitHub.
Leica BLK2GO specifications sheet, Leica Geosystems.
Leica BLK2GO Handheld Imaging Laser Scanner, Leica Geosystems.
in this article
1. Key Takeaways2. Introduction3. What Is Lidar SLAM?4. How Lidar SLAM Works: The Processing Pipeline5. 2D vs 3D Lidar SLAM6. Lidar SLAM Algorithms7. Choosing Lidar Sensors for SLAM8. Lidar SLAM vs Visual SLAM9. How to Implement Lidar SLAM With Open-Source Tools10. Applications of Lidar SLAM11. Challenges and Troubleshooting12. Conclusion13. FAQs14. References