{"id":27037109,"url":"https://github.com/rainorangelemon/gnn-motion-planning","last_synced_at":"2025-06-29T10:37:56.254Z","repository":{"id":41351878,"uuid":"411850787","full_name":"rainorangelemon/gnn-motion-planning","owner":"rainorangelemon","description":"The official repo for NeurIPS 2021 paper 'Reducing Collision Checking for Sampling-Based Motion Planning Using Graph Neural Networks'","archived":false,"fork":false,"pushed_at":"2023-01-29T20:02:17.000Z","size":86609,"stargazers_count":105,"open_issues_count":5,"forks_count":18,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-08T02:07:37.713Z","etag":null,"topics":["collision-checking","collision-detection","graph-neural-network","motion-planning","pybullet"],"latest_commit_sha":null,"homepage":"","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/rainorangelemon.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}},"created_at":"2021-09-29T22:48:19.000Z","updated_at":"2025-05-18T14:06:39.000Z","dependencies_parsed_at":"2023-02-16T01:01:08.186Z","dependency_job_id":null,"html_url":"https://github.com/rainorangelemon/gnn-motion-planning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rainorangelemon/gnn-motion-planning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainorangelemon%2Fgnn-motion-planning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainorangelemon%2Fgnn-motion-planning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainorangelemon%2Fgnn-motion-planning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainorangelemon%2Fgnn-motion-planning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rainorangelemon","download_url":"https://codeload.github.com/rainorangelemon/gnn-motion-planning/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainorangelemon%2Fgnn-motion-planning/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262579769,"owners_count":23331866,"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":["collision-checking","collision-detection","graph-neural-network","motion-planning","pybullet"],"created_at":"2025-04-05T01:16:27.721Z","updated_at":"2025-06-29T10:37:51.212Z","avatar_url":"https://github.com/rainorangelemon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GNN-Motion-Planning\n\n[paper](https://rainorangelemon.github.io/NeurIPS2021/paper.pdf) | [website](https://rainorangelemon.github.io/NeurIPS2021/)\n\n## Abstract\n\n![framework](./data/images/framework.png)\n\nSampling-based motion planning is a popular approach in robotics for finding paths in continuous configuration spaces. Checking collision with obstacles is the major computational bottleneck in this process. We propose new learning-based methods for reducing collision checking to accelerate motion planning by training graph neural networks (GNNs) that perform path exploration and path smoothing. Given random geometric graphs (RGGs) generated from batch sampling, the path exploration component iteratively predicts collision-free edges to prioritize their exploration. The path smoothing component then optimizes paths obtained from the exploration stage. The methods benefit from the ability of GNNs of capturing geometric patterns from RGGs through batch sampling and generalize better to unseen environments. Experimental results show that the learned components can significantly reduce collision checking and improve overall planning efficiency in challenging high-dimensional motion planning tasks.\n\n## Environments\n\nWe provide 6 diverse environments from 2D mazes to 14D dual KUKA iiwa arms. We use PyBullet to perform collision detection and visualization.\n![envs](./data/images/envs.png)\n\n## Installation\n```bash\nconda create -n gnnmp python=3.8\nconda activate gnnmp\n# install pytorch, modify the following line according to your environment\nconda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch\n# install torch geometric, refer to https://github.com/pyg-team/pytorch_geometric\nconda install pyg -c pyg\npip install pybullet jupyterlab transforms3d matplotlib shapely descartes\n```\n\n## Download Extra Files for Training / Test\nPlease find the training and test sets in https://drive.google.com/drive/folders/1ADHjbmhT7OCFmOSLn4YDZF0CBmkmzLye?usp=sharing. Once the files are downloaded, put them under the `data/pkl` folder.\n\n## Usage\nSee [main.ipynb](./main.ipynb) for further details.\n\nAdditionally, this repo also covers other popular approaches, including \n- [PRM with Dijkstra](./algorithm/dijkstra.py)\n- [RRT*](./algorithm/tsa.py)\n- [BIT*](./algorithm/bit_star.py)\n- [LazySP](./algorithm/lazy_sp.py)\n- [NEXT](./algorithm/tsa.py)\n\nTo evaluate all the methods, see [eval_all.py](./eval_all.py)\n\n## Citation\n\nWe would appreciate it if you found this repo helpful. Feel free to cite:\n\n```\n@inproceedings{chenning2021collision,\n    title={Reducing Collision Checking for Sampling-Based Motion Planning Using Graph Neural Networks},\n    author={Yu, Chenning and Gao, Sicun},\n    booktitle={Proceedings of the 35rd International Conference on Neural Information Processing Systems},\n    year={2021}\n}\n```\n\n## Acknowledgement\n\nWe sincerely thank the following GitHub repos:\n\n[Learning to Plan in High Dimensions via Neural Exploration-Exploitation Trees](https://github.com/NeurEXT/NEXT-learning-to-plan)\n\n[Gated Path Planning Networks](https://github.com/RLAgent/gated-path-planning-networks)\n\n[PyBullet Planning](https://github.com/caelan/pybullet-planning)\n\n[PyBullet](https://github.com/bulletphysics/bullet3)\n\n[Path Planning](https://github.com/zhm-real/PathPlanning)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frainorangelemon%2Fgnn-motion-planning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frainorangelemon%2Fgnn-motion-planning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frainorangelemon%2Fgnn-motion-planning/lists"}