{"id":18792460,"url":"https://github.com/prbonn/locndf","last_synced_at":"2026-03-14T12:45:34.522Z","repository":{"id":176825524,"uuid":"659623008","full_name":"PRBonn/LocNDF","owner":"PRBonn","description":"LocNDF: Neural Distance Field Mapping for Robot Localization","archived":false,"fork":false,"pushed_at":"2024-04-04T05:38:10.000Z","size":38,"stargazers_count":142,"open_issues_count":1,"forks_count":12,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-12-10T11:53:16.081Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PRBonn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-28T08:10:19.000Z","updated_at":"2024-11-18T11:54:23.000Z","dependencies_parsed_at":"2023-11-21T14:46:32.278Z","dependency_job_id":"bc54b2e5-2c95-4007-a796-37c6fea89098","html_url":"https://github.com/PRBonn/LocNDF","commit_stats":null,"previous_names":["prbonn/locndf"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2FLocNDF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2FLocNDF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2FLocNDF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2FLocNDF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PRBonn","download_url":"https://codeload.github.com/PRBonn/LocNDF/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230520393,"owners_count":18238948,"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","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":[],"created_at":"2024-11-07T21:19:57.629Z","updated_at":"2026-03-14T12:45:34.468Z","avatar_url":"https://github.com/PRBonn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LocNDF\n\nLocNDF: Neural Distance Field Mapping for Robot Localization\n\n## Installation\n\nThe system has been tested with Ubuntu-20.04 and Python3.9. Install the following dependencies if needed:\n\n```sh\napt-get install libgl1-mesa-glx libx11-dev ldconfig\n```\n\nFor the installation of the python package simply clone the repo and pip install it.\n\n```sh\ngit clone git@github.com:PRBonn/LocNDF.git\ncd LocNDF\npip install .\n```\n\nOptionally one can use `pip install -e .` for the editable mode if you plan to change the src code.\n\n## Usage\n\nThe following commands are expected to be executed in this root directory.\n\n### Pose tracking in Apollo Southbay\n\nFirst, get the data:\nDownload the [Apollo Southbay](https://developer.apollo.auto/southbay.html) dataset and place it in `data/` (or create a symlink). The `ColumbiaPark/` set is enough for the examples.\n\n#### Training one Submap\n\nFor training a single model you can configure `config/config.yaml` and run `scripts_pose_tracking/train.py`. \n\nRegistering a scan to the trained model can be done using  `scripts_pose_tracking/register_scan.py` while only visualizing the meshed result one can use `scripts_pose_tracking/mesh_it.py`.\n\n#### Training multiple key-poses\n\nFor the training of multiple key-poses you can use the `config/config_mapping.yaml` file and run `scripts_pose_tracking/train_mapping.py -c config/config_mapping.yaml`.\n\nTracking the car pose in the trained submaps can be done using `python3 scripts/pose_tracking.py experiments/PATH-TO-THE-CHECKPOINTS/best-v*.ckpt -vis`.\n\nPretrained models can be downloaded [here](https://www.ipb.uni-bonn.de/html/projects/locndf/experiments.zip) and should be placed under `/experiments`. Those models can be used as explained above.\n\n### Training on your own data\n\nMost importantly implement your own dataloader. An example can be seen in `src/loc_ndf/datasets/datasets.py`. Second, exchange the dataloader in the training script by you dataloader. Ready to train.\n\n### 2D - MCL\n\nThe data can be downloaded [here](https://www.ipb.uni-bonn.de/html/projects/locndf/indoor_scan_poses_2d.zip). The training data consists of `poses.txt` and `scans/*.npy`. The evaluation is done on seq1 to seq5 using the provided scans as well as the `odometry.txt`. The extrected files are expected to be in in `data/`.\n\n#### Training\n\nFor training a model you can configure `scripts_mcl/config.yaml` and run `scripts_mcl/train.py`.\n\nAfter training a model, one can run the MCL example, e.g. (`scripts_mcl/run_mcl.py -c PATH-TO-YOUR_CKPT -i data/indoor_scan_poses_2d/seqX -cal data/indoor_scan_poses_2d/base2laser.txt -o out_poses.txt`) with the trained model.\n\nThe Pretrained models can be downloaded [here](https://www.ipb.uni-bonn.de/html/projects/locndf/experiments.zip) and should be placed under `/experiments`.\n\n## Citation\n\nIf you use this library for any academic work, please cite the original paper.\n\n```bibtex\n@article{wiesmann2023ral,\nauthor = {L. Wiesmann and T. Guadagnino and I. Vizzo and N. Zimmerman and Y. Pan and H. Kuang and J. Behley and C. Stachniss},\ntitle = {{LocNDF: Neural Distance Field Mapping for Robot Localization}},\njournal = ral,\nvolume = {8},\nnumber = {8},\npages = {4999--5006},\nyear = 2023,\nissn = {2377-3766},\ndoi = {10.1109/LRA.2023.3291274},\ncodeurl = {https://github.com/PRBonn/LocNDF}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprbonn%2Flocndf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprbonn%2Flocndf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprbonn%2Flocndf/lists"}