{"id":14961319,"url":"https://github.com/realkushagrakhare/3d_path_planning","last_synced_at":"2025-10-24T20:31:40.245Z","repository":{"id":46190344,"uuid":"146254126","full_name":"realkushagrakhare/3D_Path_Planning","owner":"realkushagrakhare","description":"AI project for 3D Path Planning. Other details and running instructions can be found on the Readme.md file","archived":false,"fork":false,"pushed_at":"2018-12-07T11:14:40.000Z","size":6019,"stargazers_count":115,"open_issues_count":0,"forks_count":38,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-31T04:16:32.502Z","etag":null,"topics":["3d-path-planning","3d-pathfinding","artificial-intelligence","artificial-intelligence-algorithms","collision-detection","constraint-satisfaction-problem","constraints","dubins","dubins-rrt","motion","node-prune","path-planning","planning-algorithms","rapidly-exploring-random-tree","reeds-shepp-planner","rrt","rrt-star","satisfaction","spline-fit","spline-interpolation"],"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/realkushagrakhare.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":"2018-08-27T06:10:15.000Z","updated_at":"2025-01-30T02:57:28.000Z","dependencies_parsed_at":"2022-07-19T03:32:06.331Z","dependency_job_id":null,"html_url":"https://github.com/realkushagrakhare/3D_Path_Planning","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/realkushagrakhare%2F3D_Path_Planning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realkushagrakhare%2F3D_Path_Planning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realkushagrakhare%2F3D_Path_Planning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realkushagrakhare%2F3D_Path_Planning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/realkushagrakhare","download_url":"https://codeload.github.com/realkushagrakhare/3D_Path_Planning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238035385,"owners_count":19405682,"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":["3d-path-planning","3d-pathfinding","artificial-intelligence","artificial-intelligence-algorithms","collision-detection","constraint-satisfaction-problem","constraints","dubins","dubins-rrt","motion","node-prune","path-planning","planning-algorithms","rapidly-exploring-random-tree","reeds-shepp-planner","rrt","rrt-star","satisfaction","spline-fit","spline-interpolation"],"created_at":"2024-09-24T13:24:46.900Z","updated_at":"2025-10-24T20:31:31.168Z","avatar_url":"https://github.com/realkushagrakhare.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3D_Path_Planning\n### is an AI project for 3D Path Planning which involves pruning with constant satisfaction.\n3D path planning is required in various applications such as robotics, self-driving cars,\nprotein folding, games etc. It ensures to and a trajectory from the initial point to the\ndestination, subject to rules of motion and any other constraints, such as collision avoid-\nance, balance and joint limits.\u003cbr\u003e\nAlgorithms like Dijkstra, A* can be used but they are quite expensive to compute for\nlarge clustered space Random sampling based planning algorithm like RRT can solve\nmotion planning problem while also taking the differential constraint into consideration.\nBut the paths so produced are jagged, with several unnecessary branches. They need\nto be pruned and smoothed. An approach could be to fit a spline over the points which\nwould produce a smooth path.\u003cbr\u003e\n\u003cbr\u003e\n\u003cb\u003e Developers: \u003c/b\u003e Kushagra Khare, Rachit Jain \u003cbr\u003e\n\u003cb\u003e Mentor: \u003c/b\u003e Prof. Srisha Rao, IIIT-B \u003cbr\u003e\n\u003cb\u003e Project Duration: \u003c/b\u003e Aug '18 - Nov '18 \u003cbr\u003e\n\n## Goal\nIn this project, we aim to provide an algorithm for 3D Path Planning. We will implement a \nRRT-A* based 3D Path Planning algorithm. The algorithm would include path pruning with \nconstraint satisfaction and account for non-holonomic constraints. We will go ahead with \nManhattan based RRT-A* in the initial stages but will also try to find an optimized distance \nmetric function using Voronoi bias property for the algorithm.\n\n## Technologies used:\n\u003cul\u003e\n\u003cli\u003ePyGame \u0026 POGL\u003c/li\u003e\n\u003cli\u003eScikit, NumPy, Scipy\u003c/li\u003e\n\u003c/ul\u003e\n\n## Running Requirements\n\u003cul\u003e\n\u003cli\u003e Python 3.7\u003c/li\u003e\n\u003cli\u003e Pygame and Scipy \u003c/li\u003e\n\u003c/ul\u003e\n\n## Milestones\n### Week 1\n\u003cul\u003e\n\u003cli\u003eImplemented a basic Random-exploring Random Tree algorithm using PyGame.\u003c/li\u003e\n\u003cli\u003eRead about various types of RRTs and implemented RRT-A* vartion. Compared its pros and \ncons with the basic algorithm\u003c/li\u003e\n\u003c/ul\u003e\n\n![RRT](Screenshots/RRT.JPG)\n\n![RRT-A*](Screenshots/RRT-A_Star.JPG)\n\n### Week 2\n\u003cul\u003e\n\u003cli\u003eImplemented RRT* which results into asymptotically optimum solution.\u003c/li\u003e\n\u003c/ul\u003e\n\n![RRT*](Screenshots/RRT-star_2.JPG)\n\n### Week 4\n\u003cul\u003e\n\u003cli\u003eAdded Node Pruning and Spline Fitting in RRT* pipeline.\u003c/li\u003e\n\u003cli\u003eLater we realized that node pruning is not needed for RRT* as probability of pruning a path of RRT* is nearly 0.04.\u003c/li\u003e\n\u003c/ul\u003e\n\n![Spline Fitting](Screenshots/RRT-star_SplineFitting.JPG)\n\n![Node Pruning](Screenshots/RRT-star_SplineFitting_NodePruning.JPG)\n\n### Week 5\n\u003cul\u003e\n\u003cli\u003eImplemented 2-Phase Sampling making the algorithm faster.\u003c/li\u003e\n\u003c/ul\u003e\n\n![Two Phase Sampling](Screenshots/RRT-star_SplineFitting_TwoPhaseSampling.JPG)\n\n### Week 7\n\u003cul\u003e\n\u003cli\u003eCombined Dubins and Reeds-Shepp Path Planning algorithms with RRT* for non-holonomic constraints.\u003c/li\u003e\n\u003c/ul\u003e\n\n![RRT*-Reeds-Sheep](Screenshots/RRT-star_ReedsSheepPlanning.JPG)\n\n![RRT*-Dubins](Screenshots/RRT-star_DubinsPathPlanning.JPG)\n\n## Future works:\n\u003cul\u003e\n\u003cli\u003eObstacle collision detection can be parallelized by using CUDA which will make computation a lot faster and applicable in real life scenarios.\n\u003cli\u003eIncluding various other non-holonomic constraints like velocity, size of robot(or car).\n\u003c/ul\u003e \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frealkushagrakhare%2F3d_path_planning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frealkushagrakhare%2F3d_path_planning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frealkushagrakhare%2F3d_path_planning/lists"}