{"id":30368542,"url":"https://github.com/tumftm/openlidarmap","last_synced_at":"2025-08-20T01:34:59.865Z","repository":{"id":276980652,"uuid":"927172687","full_name":"TUMFTM/OpenLiDARMap","owner":"TUMFTM","description":"Zero-Drift Point Cloud Mapping using Map Priors","archived":false,"fork":false,"pushed_at":"2025-04-28T13:47:15.000Z","size":27132,"stargazers_count":218,"open_issues_count":2,"forks_count":13,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-28T14:47:36.161Z","etag":null,"topics":["cpp","docker","localization","mapping","pcd","python","ros2","slam"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TUMFTM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-04T14:26:31.000Z","updated_at":"2025-04-28T13:47:18.000Z","dependencies_parsed_at":"2025-03-05T13:33:58.539Z","dependency_job_id":"0e164b3a-d25d-4675-a252-8579ede57b6d","html_url":"https://github.com/TUMFTM/OpenLiDARMap","commit_stats":null,"previous_names":["tumftm/openlidarmap"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/TUMFTM/OpenLiDARMap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FOpenLiDARMap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FOpenLiDARMap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FOpenLiDARMap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FOpenLiDARMap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TUMFTM","download_url":"https://codeload.github.com/TUMFTM/OpenLiDARMap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FOpenLiDARMap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271252619,"owners_count":24726914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","docker","localization","mapping","pcd","python","ros2","slam"],"created_at":"2025-08-20T01:34:58.701Z","updated_at":"2025-08-20T01:34:59.859Z","avatar_url":"https://github.com/TUMFTM.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eOpenLiDARMap\u003c/h1\u003e\n    \u003ch2\u003eZero-Drift Point Cloud Mapping using Map Priors\u003c/h2\u003e\n  \u003cbr\u003e\n\n  ![C++](https://img.shields.io/badge/-C++-blue?logo=cplusplus)\n  ![Python](https://img.shields.io/badge/Python-3670A0?logo=python\u0026logoColor=ffdd54)\n  [![Docker](https://badgen.net/badge/icon/Docker?icon=docker\u0026label)](https://www.docker.com/)\n  ![License](https://img.shields.io/badge/license-Apache%202.0-blue)\n  ![Version](https://img.shields.io/badge/version-0.2.1-blue)\n  [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-b31b1b.svg)](https://arxiv.org/abs/2501.11111)\n  [![DOI:10.5220/0013405400003941](https://img.shields.io/badge/DOI-10.5220/0013405400003941-00629B.svg)](https://doi.org/10.5220/0013405400003941)\n  [![YouTube](https://img.shields.io/badge/YouTube-FF0000?logo=youtube\u0026logoColor=white)](https://www.youtube.com/watch?v=3QsLBMW8xB0\u0026list=PL0qnWNTSPM4pfnHflUxCHcshOIlXDSNWp)\n  \n  \u003cbr align=\"center\"\u003e\n  \n  [![openlidarmap](doc/openlidarmap_seq00.gif)](https://www.youtube.com/watch?v=3QsLBMW8xB0\u0026list=PL0qnWNTSPM4pfnHflUxCHcshOIlXDSNWp)\n  \u003cbr\u003e\n\n\u003c/div\u003e\n\n## Concept\n\nWe 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.\n\n\u003cimg src=doc/pipeline_diagram.png alt=\"diagram\" width=\"480\" /\u003e\n\n## Usage\n\n\u003cdetails\u003e\n\u003csummary\u003eInstall\u003c/summary\u003e\n\nWe 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.  \n```sh\n./docker/build_docker.sh # (optional)\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eRun\u003c/summary\u003e\n\nTo use our approach, you need a reference map and an initial guess of the first pose.  \nMore details on reference maps can be found in our paper.\n\nThe easiest way to use our approach is with the provided Docker image.  \nWe currently support point cloud files in `.bin`(KITTI), `.pcd.bin`(nuScenes), `.pcd`, `.ply` and `.xyz`.\n```sh\n./docker/run_docker.sh \u003cmap_path\u003e \u003cscan_path\u003e \u003coutput_path\u003e \u003cx\u003e \u003cy\u003e \u003cz\u003e \u003cqx\u003e \u003cqy\u003e \u003cqz\u003e \u003cqw\u003e\n\n# Example\n./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\n```\n\nThe output of the algorithm are poses in the KITTI format.\n  \nWe also provide Python bindings. Have a look in the `python` folder, where we provide a test script.\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eConfigure\u003c/summary\u003e\n\nThe 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:\n\n| Parameter | Description | Default | Note |\n| :-------- | :-------- | :--------: | :-------- |\n| pipeline_.visualize | Toggle GUI | `true` | use `false` on headless servers |\n| pipeline_.save_submaps | Toggle submap saving | `false` | use to directly save high-resolution PCD submaps |\n| preprocess_.downsampling_resolution | Scans are voxelized before usage | `1.5` | Reduce the size for increased robustness |\n| preprocess_.num_neighbors | Points for covariance calculation | `10` | Try both directions |\n| registration_.voxel_resolution | Voxelhashmap voxel size | `1.0` | Reduce the size for increased robustness | \n| registration_.lambda | Optimization dampening factor | `1.0` | Increase to increase the robustness |\n\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDevelop\u003c/summary\u003e\n\nWe also provida a Development image, if you like to contribute or adapt or approach.  \nOpen this repository in VSCode -\u003e F1 -\u003e Rebuild and Reopen in Container.  \n\nTo build the C++ code:\n```sh\nmkdir build\ncd build\ncmake ../cpp \u0026\u0026 make -j\n```\n\nTo build the Python bindings:\n```sh\ncd python\npip install -e .\n```\n\n\u003c/details\u003e\n\n## Data\n\nThe 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\n\n## Limitations\n\n* Detailed instructions on how to create refrence maps are missing\n\n## Acknowledgement\n\nGreat inspiration has come from the following repositories. If you use our work, please also leave a star in their repositories and cite their work.\n\n* [KISS-ICP](https://github.com/PRBonn/kiss-icp)\n* [small_gicp](https://github.com/koide3/small_gicp)\n* [Iridescence](https://github.com/koide3/iridescence)\n* [Open3D](https://github.com/isl-org/Open3D)\n\n\n## Citation\n\n```bibtex\n@conference{kulmer2025openlidarmap,\n  author={Kulmer, Dominik and Leitenstern, Maximilian and Weinmann, Marcel and Lienkamp, Markus},\n  title={OpenLiDARMap: Zero-Drift Point Cloud Mapping Using Map Priors},\n  booktitle={Proceedings of the 11th International Conference on Vehicle Technology and Intelligent Transport Systems - VEHITS},\n  year={2025},\n  pages={178-188},\n  publisher={SciTePress},\n  organization={INSTICC},\n  doi={10.5220/0013405400003941},\n  isbn={978-989-758-745-0},\n  issn={2184-495X},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftumftm%2Fopenlidarmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftumftm%2Fopenlidarmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftumftm%2Fopenlidarmap/lists"}