{"id":13528834,"url":"https://github.com/devendrachaplot/Neural-SLAM","last_synced_at":"2025-04-01T14:33:18.741Z","repository":{"id":38346065,"uuid":"254725341","full_name":"devendrachaplot/Neural-SLAM","owner":"devendrachaplot","description":"Pytorch code for ICLR-20 Paper \"Learning to Explore using Active Neural SLAM\"","archived":false,"fork":false,"pushed_at":"2024-06-17T23:05:03.000Z","size":6262,"stargazers_count":754,"open_issues_count":8,"forks_count":141,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-11-02T15:36:27.901Z","etag":null,"topics":["active-neural-slam","deep-learning","deep-reinforcement-learning","deep-rl","exploration","navigation","neural-slam","robotics","visual-navigation"],"latest_commit_sha":null,"homepage":"http://www.cs.cmu.edu/~dchaplot/projects/neural-slam.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devendrachaplot.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":"2020-04-10T20:03:45.000Z","updated_at":"2024-10-23T03:35:43.000Z","dependencies_parsed_at":"2024-11-02T15:31:25.857Z","dependency_job_id":"46159d6b-37af-48e4-b397-369d812700c9","html_url":"https://github.com/devendrachaplot/Neural-SLAM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devendrachaplot%2FNeural-SLAM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devendrachaplot%2FNeural-SLAM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devendrachaplot%2FNeural-SLAM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devendrachaplot%2FNeural-SLAM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devendrachaplot","download_url":"https://codeload.github.com/devendrachaplot/Neural-SLAM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246655318,"owners_count":20812615,"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":["active-neural-slam","deep-learning","deep-reinforcement-learning","deep-rl","exploration","navigation","neural-slam","robotics","visual-navigation"],"created_at":"2024-08-01T07:00:25.764Z","updated_at":"2025-04-01T14:33:13.728Z","avatar_url":"https://github.com/devendrachaplot.png","language":"Python","funding_links":[],"categories":["5. Learning based SLAM"],"sub_categories":["5.2 Others"],"readme":"# Active Neural SLAM\nThis is a PyTorch implementation of the ICLR-20 paper:\n\n[Learning To Explore Using Active Neural SLAM](https://openreview.net/pdf?id=HklXn1BKDH)\u003cbr /\u003e\nDevendra Singh Chaplot, Dhiraj Gandhi, Saurabh Gupta, Abhinav Gupta, Ruslan Salakhutdinov\u003cbr /\u003e\nCarnegie Mellon University, Facebook AI Research, UIUC\n\nProject Website: https://devendrachaplot.github.io/projects/Neural-SLAM\n\n![example](./docs/example.gif)\n\n### Overview:\nThe Active Neural SLAM model consists of three modules: a Global Policy, a Local Policy and a Neural SLAM Module. \nAs shown below, the Neural-SLAM module predicts a map and agent pose estimate from incoming RGB observations and \nsensor readings. This map and pose are used by a Global policy to output a long-term goal, which is converted to \na short-term goal using an analytic path planner. A Local Policy is trained to navigate to this short-term goal.\n\n![overview](./docs/overview.png)\n\n\n## Installing Dependencies\nWe use earlier versions of [habitat-sim](https://github.com/facebookresearch/habitat-sim) and [habitat-api](https://github.com/facebookresearch/habitat-api). The specific commits are mentioned below.\n\nInstalling habitat-sim:\n```\ngit clone https://github.com/facebookresearch/habitat-sim.git\ncd habitat-sim; git checkout 9575dcd45fe6f55d2a44043833af08972a7895a9; \npip install -r requirements.txt; \npython setup.py install --headless\npython setup.py install # (for Mac OS)\n\n```\n\nInstalling habitat-api:\n```\ngit clone https://github.com/facebookresearch/habitat-api.git\ncd habitat-api; git checkout b5f2b00a25627ecb52b43b13ea96b05998d9a121; \npip install -e .\n```\n\nInstall pytorch from https://pytorch.org/ according to your system configuration. The code is tested on pytorch v1.2.0. If you are using conda:\n```\nconda install pytorch==1.2.0 torchvision cudatoolkit=10.0 -c pytorch #(Linux with GPU)\nconda install pytorch==1.2.0 torchvision==0.4.0 -c pytorch #(Mac OS)\n```\n\n## Setup\nClone the repository and install other requirements:\n```\ngit clone --recurse-submodules https://github.com/devendrachaplot/Neural-SLAM\ncd Neural-SLAM;\npip install -r requirements.txt\n```\n\nThe code requires datasets in a `data` folder in the following format (same as habitat-api):\n```\nNeural-SLAM/\n  data/\n    scene_datasets/\n      gibson/\n        Adrian.glb\n        Adrian.navmesh\n        ...\n    datasets/\n      pointnav/\n        gibson/\n          v1/\n            train/\n            val/\n            ...\n```\nPlease download the data using the instructions here: https://github.com/facebookresearch/habitat-api#data\n\nTo verify that dependencies are correctly installed and data is setup correctly, run:\n```\npython main.py -n1 --auto_gpu_config 0 --split val\n```\n\n\n## Usage\n\n### Training:\nFor training the complete Active Neural SLAM model on the Exploration task:\n```\npython main.py\n```\n\n### Downloading pre-trained models\n```\nmkdir pretrained_models;\nwget --no-check-certificate 'https://drive.google.com/uc?export=download\u0026id=1UK2hT0GWzoTaVR5lAI6i8o27tqEmYeyY' -O pretrained_models/model_best.global;\nwget --no-check-certificate 'https://drive.google.com/uc?export=download\u0026id=1A1s_HNnbpvdYBUAiw2y1JmmELRLfAJb8' -O pretrained_models/model_best.local;\nwget --no-check-certificate 'https://drive.google.com/uc?export=download\u0026id=1o5OG7DIUKZyvi5stozSqRpAEae1F2BmX' -O pretrained_models/model_best.slam;\n```\n\n### For evaluation:\nFor evaluating the pre-trained models:\n```\npython main.py --split val --eval 1 --train_global 0 --train_local 0 --train_slam 0 \\\n--load_global pretrained_models/model_best.global \\\n--load_local pretrained_models/model_best.local \\\n--load_slam pretrained_models/model_best.slam \n```\n\nFor visualizing the agent observations and predicted map and pose, add `-v 1` as an argument to the above\n\nFor more detailed instructions, see [INSTRUCTIONS](./docs/INSTRUCTIONS.md).\n\n\n## Cite as\n\u003eChaplot, D.S., Gandhi, D., Gupta, S., Gupta, A. and Salakhutdinov, R., 2020. Learning To Explore Using Active Neural SLAM. In International Conference on Learning Representations (ICLR). ([PDF](https://openreview.net/pdf?id=HklXn1BKDH))\n\n### Bibtex:\n```\n@inproceedings{chaplot2020learning,\n  title={Learning To Explore Using Active Neural SLAM},\n  author={Chaplot, Devendra Singh and Gandhi, Dhiraj and Gupta, Saurabh and Gupta, Abhinav and Salakhutdinov, Ruslan},\n  booktitle={International Conference on Learning Representations (ICLR)},\n  year={2020}\n}\n```\n\n## Acknowledgements\nThis repository uses Habitat API (https://github.com/facebookresearch/habitat-api) and parts of the code from the API.\nThe implementation of PPO is borrowed from https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/.\nWe thank Guillaume Lample for discussions and coding during initial stages of this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevendrachaplot%2FNeural-SLAM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevendrachaplot%2FNeural-SLAM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevendrachaplot%2FNeural-SLAM/lists"}