Skip to content

Open-Source SLAM Stack Comparison

This comparison is for engineering selection, not leaderboard admiration. A SLAM stack is useful when its sensor assumptions, license, ROS support, diagnostics, map outputs, runtime behavior, and maintenance model match the deployment. For airside AVs, the likely production architecture is a hybrid: offline LiDAR-inertial SLAM and factor-graph map optimization for survey, validated scan-to-map localization for runtime, and place-recognition recovery for startup and faults.

Related areaLinkWhy it matters
LiDAR algorithm detailLiDAR SLAM AlgorithmsDeeper comparison of KISS-ICP, LIO-SAM, FAST-LIO2, Faster-LIO-style voxel LIO, CT-ICP, and Point-LIO.
Runtime localizationProduction LiDAR Map LocalizationThe open-source stack should plug into or inform scan-to-map localization, not replace safety architecture blindly.
Place recognitionLiDAR Place Recognition and Re-LocalizationMost stacks need external loop/relocalization strengthening for production.
Map constructionMap Construction PipelineStack output must be compatible with survey processing, GCP alignment, map QA, and OTA deployment.
State estimationRobust State Estimation Multi-SensorPose output quality is not enough; covariance, gating, dropout, and sensor health matter.
Backend mathGTSAM Factor GraphsEssential for understanding LIO-SAM, GLIM, map optimization, and production factor insertion.
Gaussian/neural mapsGaussian Splatting for DrivingGood future-facing map/QA representation, but not yet a primary certified pose stack.
Coverage auditSLAM Coverage Audit and BacklogTracks missing stack pages such as MOLA, KISS-SLAM, FAST-LIVO/R3LIVE, LOCUS/LAMP, DLIO/DLIOM, and cuVSLAM.

Comparison Criteria

CriterionWhat to checkRed flag
Sensor assumptionsLiDAR type, camera model, IMU grade, wheel/GNSS support, time syncDemo works only on one sensor bag with hard-coded fields
Map representationVoxel map, submaps, occupancy grid, sparse landmarks, Gaussians, factor graphNo export path to production map format
BackendIEKF, pose graph, factor graph, bundle adjustment, Ceres/g2o/GTSAMBlack-box pose output with no residual/covariance access
ROS and middlewareROS 1/ROS 2, standalone API, bag replay, message typesROS 1-only when product stack is ROS 2 and wrappers are nontrivial
Runtime determinismP95/P99 latency, memory growth, thread modelMean-only timing or unbounded map growth
DiagnosticsResiduals, inlier ratio, degeneracy, covariance, loop acceptanceOnly publishes pose and point cloud
LicenseMIT/BSD/Apache/GPL/commercial constraintsGPL stack linked into closed product without legal review
MaintenanceActive issues, releases, build support, CI, dependency ageUnmaintained fork with old Ubuntu/ROS only
Production gapSafety case, fault handling, QA, calibration, maps"Works on KITTI" used as production readiness proof

Stack Comparison

StackSensorsBackend/optimizationLicenseROS/standaloneStrengthsCaveatsBest fit
KISS-ICP3D LiDARPoint-to-point ICP, voxel local mapMITStandalone, Python, ROS 2; ROS 1 deprecated in current repoVery simple, strong baseline, easy to run, low integration riskOdometry only; no global loop closure in base pipelineFallback odometry, survey validation, method baseline
KISS-SLAM3D LiDARKISS-ICP front-end, loop closure, g2oMITPython package/standaloneSimple LiDAR-only SLAM, indoor parameter guidance, reproducible paper tagNewer than KISS-ICP; production maturity still emergingLightweight LiDAR SLAM, survey prototypes
LIO-SAM3D LiDAR, IMU, optional GPSGTSAM factor graphs, IMU preintegration, feature-based LiDAR factorsBSD-3ROS 1 original; ROS 2 branch/community variantsExcellent teaching/reference architecture for factor-graph LIO with GPS/loopsFeature extraction and ROS 1 assumptions can be brittle; needs careful IMU setupSurvey mapping, factor-graph design reference
FAST-LIO23D LiDAR, IMUTightly coupled iterated EKF, ikd-tree mapGPL-2.0ROS 1High-rate direct LIO, supports spinning and solid-state LiDAR, strong real-time performanceGPL integration risk; no native loop closure in core; timing calibration criticalSurvey front-end, GPS-denied odometry, UAV/handheld
Faster-LIO family3D LiDAR, IMUTightly coupled LIO, iVox incremental voxelsGPL-family repo terms require reviewROS 1Faster map structure than tree-based LIO in many casesVoxel-size sensitivity; less common production adoptionSpeed-focused LIO experiments
Point-LIO3D LiDAR, IMUPoint-wise LIO with high-rate outputGPL-2.0 repo terms require reviewROS 1High-bandwidth odometry, aggressive motion/vibration robustnessIMU synchronization and saturation configuration are non-negotiableUAV, vibration-heavy platforms, high-rate control
CT-ICP3D LiDARContinuous-time ICP, LiDAR-only elastic modelCheck repo license before product useStandalone/ROS wrappersModels intra-scan motion without IMU; good LiDAR-only referenceLess natural multi-sensor fusion than factor-graph LIOLiDAR-only vehicles, motion-distortion studies
GLIMRange sensors, IMU optional, RGB-D capableDirect multi-scan registration on factor graphs, GPU scan-matching factors via gtsam_pointsMITROS 2 and standalone ecosystemModern, extensible, GPU-aware, GTSAM-based, manual map correctionNewer stack; dependencies include GTSAM/gtsam_points/CUDA for full benefitSerious 3D mapping research and survey tooling
Cartographer2D/3D LiDAR, IMU, odomSubmaps, scan matching, sparse pose adjustmentApache-2.0ROS integrations, standalone coreMature submap architecture, branch-and-bound loop closure, strong 2D heritageGoogle project is effectively mature/maintenance-mode; configuration-heavy2D/3D robotics mapping reference, indoor SLAM
RTAB-MapRGB-D, stereo, LiDAR, IMU/odom inputsGraph SLAM, appearance-based loop closureBSD-style core; verify dependenciesROS 1/2 and standaloneVery practical robotics tool, broad sensor support, visualizationMany knobs; not a minimal AV localization coreIndoor mapping, RGB-D, multi-sensor robot prototypes
ORB-SLAM3Monocular, stereo, RGB-D, visual-inertialSparse features, bundle adjustment, multi-map SLAMGPL-3.0Standalone examples, community ROS wrappersStrong visual/VIO baseline, multi-map recoveryGPL; visual degradation in glare/weather/low textureCamera-first robotics and research benchmark
OpenVINSMono/stereo cameras, IMUMSCKF/EKF visual-inertial estimatorGPL-3.0ROS 1/2 and ROS-freeExcellent documentation, evaluation tools, covariance disciplineSparse VIO, not full dense mapper; GPLVIO research, estimator consistency reference
VINS-FusionMono+IMU, stereo+IMU, stereo, GPS exampleSliding-window optimization with Ceres, loop fusionGPL-3.0ROS 1Widely used VIO baseline with multi-sensor modesOlder dependencies; GPL; calibration-sensitiveVisual-inertial baseline, GPS fusion reference
SLAM Toolbox2D LiDAR, odomPose graph, scan solvers, occupancy gridBSD-3ROS 2Practical ROS 2 indoor mapping/localization stack, Nav2 integration2D only; not for 3D AV mapsWarehouses, service robots, Nav2 products
Autoware NDT3D LiDAR, map, EKF/GNSS inputsNDT scan matching, Monte Carlo initial poseApache-2.0 ecosystemROS 2/AutowareProduction-oriented diagnostics, dynamic map loading, covariance, servicesLocalization stack, not full SLAM; tied to Autoware interfacesRoad/yard/airside localization reference
MOLALiDAR/LO/LIO/GNSS/kinematics/mapsModular localization and mapping, metric maps, particle filtersBSD-family/MRPT ecosystem; verify modulesROS 2 and standaloneStrong modularity, localization-only modes, georeferenced workflowsSmaller ecosystem than Autoware/ROS Nav2Research-to-product mapping/localization bridge
gtsam_pointsLiDAR/range factorsGICP/VGICP/colored ICP factors, CPU/GPU optionsMITLibrary with GLIM integrationDirect bridge from scan matching to GTSAM graphsLibrary, not a complete robot stackCustom factor-graph SLAM/localization

Backend and Toolkit Comparison

ToolkitRoleLicenseStrengthsCaveatsUse here
GTSAMFactor graphs, smoothing, iSAM2, IMU preintegrationBSDRobotics-native factors, manifolds, incremental smoothing, Python/MATLAB wrappersAPI/version migration needs attention; not a turnkey SLAM systemPrimary backend reference for airside SLAM/map/localization factors
g2oGeneral graph optimizationBSDLightweight, proven in visual SLAM and pose graphsLess sensor-fusion-oriented than GTSAMLoop closure and pose-graph systems such as KISS-SLAM/ORB-style stacks
Ceres SolverNonlinear least squaresApache-2.0Mature, robust, production-proven, excellent for bundle adjustment/calibrationNo native factor-graph semantics; user handles graph structureVisual BA, calibration, scan-matching optimization
Open3D3D data processingMITRegistration, point-cloud processing, visualization, Python workflowsNot a full SLAM product by itselfMap QA, prototyping, post-processing
PCLPoint-cloud algorithmsBSDBroad point-cloud ecosystem, ICP/NDT filtersLegacy APIs and performance varyReference implementations and offline tools
FAISSSimilarity searchMITFast descriptor retrieval at scaleNot geometric verificationPlace recognition database acceleration

AV, Indoor, Outdoor Shortlists

DomainShortlistStack roleExpected additions
Airside runtime localizationAutoware NDT diagnostics, custom GPU VGICP/gtsam_points, GTSAM/iSAM2, Scan Context/MinkLoc3DRuntime pose in validated mapMulti-LiDAR calibration, covariance gating, RTK/wheel/IMU factors, safe fallback
Airside survey mappingFAST-LIO2, GLIM, LIO-SAM, KISS-ICP, KISS-SLAMBuild and validate mapsGCP factors, map QA, dynamic filtering, geodetic export
Indoor warehouse productSLAM Toolbox, AMCL/Nav2, RTAB-Map for RGB-DOccupancy map and navigationReflectors/AprilTags, map versioning, aisle relocalization
Construction/underground mappingGLIM, FAST-LIO2, Point-LIO, RTAB-Map3D mapping in hard geometryMulti-session loop closure, dust/dark testing, Hilti-style benchmark
Camera-first robotORB-SLAM3, OpenVINS, VINS-FusionVisual/VIO baselineExposure/blur checks, robust relocalization, calibration automation
Dense visual map researchRTAB-Map, NICE-SLAM, SplaTAM, Splat-SLAMReconstruction/QA/simulationClassical pose fallback, uncertainty estimation, static/dynamic segmentation

Integration Patterns

PatternComponentsWhen to useMain risk
LiDAR-only independent fallbackKISS-ICP running beside production scan-to-mapDetect IMU/map-localization failures and provide dead-reckoning fallbackDrift if used too long; must have safe-stop budget
LIO survey front-end plus graph backendFAST-LIO2 or Point-LIO producing odometry into GTSAMBuild high-quality survey maps with external anchorsDouble-counting IMU if factors are not modeled correctly
Full factor-graph SLAMLIO-SAM or GLIM-style graphNeed loop closure, GPS/GCP, multi-session constraintsBad loop factors can corrupt full map without robust gating
Localization-only modeAutoware NDT, MOLA localization, custom VGICPProduction operation in a known mapWrong initial pose and map staleness
Visual auxiliaryORB-SLAM3, OpenVINS, VINS-Fusion feeding health or relative motionCameras already available and lighting is acceptableVisual failure under glare/weather if treated as primary
Dense/neural QA overlayGaussian/RGB-D stack after classical pose/map generationInspect map, create digital twin, support simulationOverinterpreting rendering quality as localization certainty

License and Product-Risk Matrix

License/statusExamplesProduct implication
MIT/BSD/Apache-friendlyKISS-ICP, KISS-SLAM, GTSAM, Ceres, GLIM, SLAM Toolbox, AutowareUsually easier to integrate, but still review dependencies and modifications.
GPL-familyFAST-LIO2, Point-LIO, ORB-SLAM3, OpenVINS, VINS-FusionExcellent research baselines; product linking/distribution requires legal review or clean-room reimplementation.
Research/new stackSplat-SLAM, many Gaussian SLAM projects, newer LIO variantsUseful for experimentation; require extra maturity assessment and failure monitoring.
Dataset license restrictionsHilti non-commercial, some AV datasetsGood for benchmarking, not necessarily for commercial training/product use.

Stack-Specific Caveats

StackCaveatMitigation
KISS-ICPNo global correction; local map onlyPair with loop closure or use as odometry/fallback baseline.
LIO-SAMRequires correct IMU orientation, extrinsics, deskewing, and feature parametersBuild a calibration replay test before trusting results.
FAST-LIO2Great front-end but not a full map lifecycleFeed outputs into loop closure/GTSAM/GCP map optimization.
Point-LIOHigh-rate point updates expose sensor timestamp mistakes quicklyAdd IMU saturation checks and time-sync health metrics.
CT-ICPContinuous-time LiDAR-only modeling can be compute/config sensitiveCompare against IMU-deskewed LIO on same motion profiles.
GLIMPowerful but newer and dependency-richFreeze versions and benchmark CUDA/GTSAM compatibility on target hardware.
CartographerTuning submaps and loop closure can dominate project timeUse when submap behavior is needed and configuration effort is acceptable.
RTAB-MapBroad feature set can hide complexityLock a narrow sensor mode and parameter set for deployment.
ORB-SLAM3Visual-only failure under airport glare/night/rainUse as auxiliary or camera-first research baseline, not primary airside pose.
OpenVINSFilter consistency depends on calibration and feature tracking assumptionsUse its NEES/evaluation tooling to validate covariance.
Autoware NDTNDT can fail in sparse or changed geometryAdd GNSS/IMU/wheel priors, covariance monitoring, and fallback matching.
LayerRecommended open-source referenceProduction interpretation
Primary LiDAR-only baselineKISS-ICPKeep as a simple benchmark and independent odometry monitor.
Primary LIO survey baselineFAST-LIO2 and GLIMUse to generate survey trajectories/submaps; check license before product embedding.
Factor-graph referenceLIO-SAM, GTSAM, GLIM/gtsam_pointsReuse concepts for IMU, GPS/GCP, loop, scan-matching, and map factors.
Indoor navigation referenceSLAM Toolbox, Cartographer, RTAB-MapUse for warehouse/AGV scenarios, not as airside AV default.
Visual/VIO referenceORB-SLAM3, OpenVINS, VINS-FusionUse to benchmark camera contribution and calibration, not primary all-weather pose.
Runtime AV localization referenceAutoware NDT and MOLA localizationStudy diagnostics/interfaces; production stack may use custom VGICP/GTSAM.
Dense/neural map referenceSplaTAM, Splat-SLAM, NICE-SLAMTreat as map QA/simulation research; require classical pose fallback.

Sources

Public research notes collected from public sources.