OpenLiDARMap

TUMFTMApache-2.0更新放缓

用地图先验做零漂移点云建图,把激光雷达采集的点云对齐到已有地图上,解决长距离建图累积误差的问题。

Zero-Drift Point Cloud Mapping using Map Priors

v0.2.1发布于 2026-01-26 14:24 UTC362star27fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
./docker/run_docker.sh <map_path> <scan_path> <output_path> <x> <y> <z> <qx> <qy> <qz> <qw>
硬件要求按 README 说明

README 未说明具体显存或 GPU 型号要求;提供 Docker 镜像运行,未提及是否支持纯 CPU 运行。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用先验地图约束 LiDAR 里程计,实现无 GNSS 的零漂移点云建图

用地图先验做零漂移点云建图,把激光雷达采集的点云对齐到已有地图上,解决长距离建图累积误差的问题。

核心能力

  • 结合参考地图与经典 LiDAR 里程计消除累积漂移
  • 无需 GNSS 即可输出地理配准的点云地图
  • 支持 .bin/.pcd.bin/.pcd/.ply/.xyz 多种点云格式
  • 提供 Docker 镜像与 Python 绑定两种调用方式
  • 可调降采样、体素分辨率与优化阻尼等参数

容易踩的坑

运行前必须自备参考地图并给出首帧位姿初值,否则无法启动;参考地图需按 LoD2PCD 流程另行生成或从论文数据链接下载;无头服务器上需把 pipeline_.visualize 设为 false,否则 GUI 会报错。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

4 个版本v0.2.1
  1. v0.2.1v0.2.1 - nuscenes dataloader最新正式版2026-01-26 · 2026-01-26 14:24 UTC

    What's Changed

    Full Changelog: https://github.com/TUMFTM/OpenLiDARMap/compare/v0.2.0...v0.2.1

  2. v0.2.0v0.2.0 - dataloader variety without PCL dependency2025-02-15 · 2025-02-15 22:56 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/TUMFTM/OpenLiDARMap/compare/v0.1.0...v0.2.0

  3. v0.1.0v0.1.0 - GICP-version2025-02-11 · 2025-02-11 14:03 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/TUMFTM/OpenLiDARMap/compare/v0.0.1...v0.1.0

  4. v0.0.1v0.0.1 - Paper state2025-02-09 · 2025-02-09 16:33 UTC
    查看更新说明

    This release is the version described in the paper OpenLiDARMap - Zero-Drift Point Cloud Mapping using Map Priors.

    • ICP-based scan matching
    • Scan-to-scan (scan-to-local-map) matching
    • Scan-to-map matching
    • Pose graph optimization

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    C++ Python Docker License Version arXiv DOI:10.5220/0013405400003941 YouTube

    openlidarmap

    Concept

    We use reference maps in combination with classical LiDAR odometry to enable drift-free localization/mapping. Our approach is designed for high precision mapping. It enables georeferenced LiDAR-only point cloud mapping without GNSS. A detailed description of our pipeline can be found in the linked paper.

    <img src=doc/pipeline_diagram.png alt="diagram" width="480" />

    Usage

    We provide a Docker image on Docker Hub, which will automatically be pulled within the Run section, but you also have the option to build it locally.

    ./docker/build_docker.sh # (optional)
    

    To use our approach, you need a reference map and an initial guess of the first pose.
    More details on reference maps can be found in our paper.

    The easiest way to use our approach is with the provided Docker image.
    We currently support point cloud files in .bin(KITTI), .pcd.bin(nuScenes), .pcd, .ply and .xyz.

    ./docker/run_docker.sh <map_path> <scan_path> <output_path> <x> <y> <z> <qx> <qy> <qz> <qw>
    
    # Example
    ./docker/run_docker.sh /datasets/kitti/map.pcd /datasets/data_odometry_velodyne/dataset/sequences/00/velodyne /output/directory 395.5 1696.25 117.55 0 0 0.4848096 0.8746197
    

    The output of the algorithm are poses in the KITTI format.

    We also provide Python bindings. Have a look in the python folder, where we provide a test script.

    The configuration of this pipeline can be changed in the cpp/config files. The naming suggest the intended usecase for the files. The most important parameters to play with if your results are not as good as expected are:

    ParameterDescriptionDefaultNote
    pipeline_.visualizeToggle GUItrueuse false on headless servers
    pipeline_.save_submapsToggle submap savingfalseuse to directly save high-resolution PCD submaps
    preprocess_.downsampling_resolutionScans are voxelized before usage1.5Reduce the size for increased robustness
    preprocess_.num_neighborsPoints for covariance calculation10Try both directions
    registration_.voxel_resolutionVoxelhashmap voxel size1.0Reduce the size for increased robustness
    registration_.lambdaOptimization dampening factor1.0Increase to increase the robustness

    We also provida a Development image, if you like to contribute or adapt or approach.
    Open this repository in VSCode -> F1 -> Rebuild and Reopen in Container.

    To build the C++ code:

    mkdir build
    cd build
    cmake ../cpp && make -j
    

    To build the Python bindings:

    cd python
    pip install -e .
    

    Data

    The reference maps and original map outputs (v0.0.1) used for the paper can be downloaded from the following link: https://doi.org/10.14459/2025mp1771733

    Prior Map Generation

    To find out how to generate reference maps, please follow this link: https://github.com/ga58lar/LoD2PCD

    Acknowledgement

    Great inspiration has come from the following repositories. If you use our work, please also leave a star in their repositories and cite their work.

    Citation

    @conference{kulmer2025openlidarmap,
      author={Kulmer, Dominik and Leitenstern, Maximilian and Weinmann, Marcel and Lienkamp, Markus},
      title={OpenLiDARMap: Zero-Drift Point Cloud Mapping Using Map Priors},
      booktitle={Proceedings of the 11th International Conference on Vehicle Technology and Intelligent Transport Systems - VEHITS},
      year={2025},
      pages={178-188},
      publisher={SciTePress},
      organization={INSTICC},
      doi={10.5220/0013405400003941},
      isbn={978-989-758-745-0},
      issn={2184-495X},
    }