{"id":15028199,"url":"https://github.com/zhm-real/motionplanning","last_synced_at":"2025-05-15T08:10:28.226Z","repository":{"id":37417485,"uuid":"278173871","full_name":"zhm-real/MotionPlanning","owner":"zhm-real","description":"Motion planning algorithms commonly used on autonomous vehicles. (path planning + path tracking)","archived":false,"fork":false,"pushed_at":"2024-01-13T06:05:01.000Z","size":23932,"stargazers_count":2367,"open_issues_count":4,"forks_count":595,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-04-07T03:14:17.683Z","etag":null,"topics":["autonomous-vehicles","frenet-frames","front-wheel-feedback","hybrid-astar","lqr","motion-planning-algorithms","mpc","path-tracking","pathplanning","pure-pursuit","rear-wheel-feedback","stanley","stanley-controller","state-lattice-planner","tracking"],"latest_commit_sha":null,"homepage":"https://github.com/zhm-real/MotionPlanning","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/zhm-real.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-07-08T19:12:46.000Z","updated_at":"2025-04-06T05:13:23.000Z","dependencies_parsed_at":"2022-07-12T21:01:21.908Z","dependency_job_id":"a53a2c2e-1be2-4f59-85bd-28f18edaf148","html_url":"https://github.com/zhm-real/MotionPlanning","commit_stats":{"total_commits":106,"total_committers":2,"mean_commits":53.0,"dds":0.009433962264150941,"last_synced_commit":"7a6b43d9c1eecf97ae6bf1aa23bc4d5aaf0e1817"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FMotionPlanning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FMotionPlanning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FMotionPlanning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FMotionPlanning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhm-real","download_url":"https://codeload.github.com/zhm-real/MotionPlanning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248890005,"owners_count":21178339,"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":["autonomous-vehicles","frenet-frames","front-wheel-feedback","hybrid-astar","lqr","motion-planning-algorithms","mpc","path-tracking","pathplanning","pure-pursuit","rear-wheel-feedback","stanley","stanley-controller","state-lattice-planner","tracking"],"created_at":"2024-09-24T20:07:47.383Z","updated_at":"2025-04-14T13:41:53.992Z","avatar_url":"https://github.com/zhm-real.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Overview\nThis repository implemented some common motion planners used on autonomous vehicles, including\n* [Hybrid A* Planner](https://ai.stanford.edu/~ddolgov/papers/dolgov_gpp_stair08.pdf)\n* [Frenet Optimal Trajectory](https://www.researchgate.net/publication/224156269_Optimal_Trajectory_Generation_for_Dynamic_Street_Scenarios_in_a_Frenet_Frame)\n* [Hierarchical Optimization-Based Collision Avoidance (H-OBCA)](https://ieeexplore.ieee.org/document/9062306) (Incomplete)\n\nAlso, this repository provides some controllers for path tracking, including\n* [Pure Pursuit + PID](https://www.ri.cmu.edu/pub_files/pub3/coulter_r_craig_1992_1/coulter_r_craig_1992_1.pdf)\n* [Rear-Wheel Feedback + PID](https://www.ri.cmu.edu/pub_files/2009/2/Automatic_Steering_Methods_for_Autonomous_Automobile_Path_Tracking.pdf)\n* [Front-Wheel Feedback / Stanley + PID](http://robots.stanford.edu/papers/thrun.stanley05.pdf)\n* [LQR + PID](https://github.com/ApolloAuto/apollo/tree/master/modules/control/controller)\n* [Linear MPC](https://borrelli.me.berkeley.edu/pdfpub/pub-6.pdf)\n\n## Requirement\n* Python 3.6 or above\n* [SciPy](https://www.scipy.org/)\n* [cvxpy](https://github.com/cvxgrp/cvxpy)\n* [Reeds-Shepp Curves](https://github.com/zhm-real/ReedsSheppCurves)\n* [pycubicspline](https://github.com/AtsushiSakai/pycubicspline)\n\n## Vehicle models\nThis repository uses two models: simple car model and [car pulling trailers model](http://planning.cs.uiuc.edu/node661.html#77556).\n\n## Hybrid A* Planner\n\u003cdiv align=right\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/HybridAstarPlanner/gif/hybrid%20Astar-1.gif\" alt=\"1\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/HybridAstarPlanner/gif/hybrid%20Astar-2.gif\" alt=\"2\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/HybridAstarPlanner/gif/hybrid%20Astar-t1.gif\" alt=\"11\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/HybridAstarPlanner/gif/hybrid%20Astar-t5.gif\" alt=\"12\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/HybridAstarPlanner/gif/hybrid%20Astar-t3.gif\" alt=\"13\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/HybridAstarPlanner/gif/hybrid%20Astar-t2.gif\" alt=\"14\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## State Lattice Planner\n\u003cdiv align=right\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/LatticePlanner/gif/Crusing.gif\" alt=\"1\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/LatticePlanner/gif/StoppingMode.gif\" alt=\"2\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## Controllers\n\u003cdiv align=right\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/Control/gif/purepursuit1.gif\" alt=\"1\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/Control/gif/RWF1.gif\" alt=\"2\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/Control/gif/stanley.gif\" alt=\"1\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/Control/gif/MPC.gif\" alt=\"2\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/Control/gif/LQR_Kinematic.gif\" alt=\"1\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/MotionPlanning/blob/master/Control/gif/LQR_Dynamics.gif\" alt=\"2\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## Paper\n### Planning\n* [Basic Path Planning Algorithms: ](https://github.com/zhm-real/PathPlanning) PathPlanning\n* [Baidu Apollo Planning module: ](https://github.com/ApolloAuto/apollo/tree/master/modules/planning) Recommended Materials\n* [Survey of Planning and Control algos: ](https://arxiv.org/pdf/1604.07446.pdf) A Survey of Motion Planning and Control Techniques for Self-driving Urban Vehicles\n* [Hybrid A* Planner: ](https://ai.stanford.edu/~ddolgov/papers/dolgov_gpp_stair08.pdf) Practical Search Techniques in Path Planning for Autonomous Driving\n* [Frenet Optimal Trajectory: ](https://www.researchgate.net/publication/224156269_Optimal_Trajectory_Generation_for_Dynamic_Street_Scenarios_in_a_Frenet_Frame) Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame\n\n### Control\n* [Baidu Apollo Control module: ](https://github.com/ApolloAuto/apollo/tree/master/modules/control) Recommended Materials\n* [Pure Pursuit: ](https://www.ri.cmu.edu/pub_files/pub3/coulter_r_craig_1992_1/coulter_r_craig_1992_1.pdf) Implementation of the Pure Pursuit Path Tracking Algorithm \n* [Rear-Wheel Feedback: ](https://www.ri.cmu.edu/pub_files/2009/2/Automatic_Steering_Methods_for_Autonomous_Automobile_Path_Tracking.pdf) Automatic Steering Methods for Autonomous Automobile Path Tracking\n* [Front-Wheel Feedback / Stanley: ](http://robots.stanford.edu/papers/thrun.stanley05.pdf) Stanley: The Robot that Won the DARPA Grand Challenge\n* [LQR: ](https://github.com/ApolloAuto/apollo/tree/master/modules/control/controller) ApolloAuto/apollo: An open autonomous driving platform\n* [Linear MPC: ](https://borrelli.me.berkeley.edu/pdfpub/pub-6.pdf) MPC-Based Approach to Active Steering for Autonomous Vehicle Systems\n\n## Useful Material\n* [HybridAStarTrailer (Julia): ](https://github.com/AtsushiSakai/HybridAStarTrailer) by AtsushiSakai\n* [Hybrid Path Planner (C++): ](https://github.com/karlkurzer/path_planner) by KTH Research Concept Vehicle\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhm-real%2Fmotionplanning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhm-real%2Fmotionplanning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhm-real%2Fmotionplanning/lists"}