zhm-real/MotionPlanning
Motion planning algorithms commonly used on autonomous vehicles. (path planning + path tracking)
repo name | zhm-real/MotionPlanning |
repo link | https://github.com/zhm-real/MotionPlanning |
homepage | https://github.com/zhm-real/MotionPlanning |
language | Python |
size (curr.) | 23929 kB |
stars (curr.) | 97 |
created | 2020-07-08 |
license | |
Overview
This repository implemented some common motion planners used on autonomous vehicles, including
- Hybrid A* Planner
- Frenet Optimal Trajectory
- Hierarchical Optimization-Based Collision Avoidance (H-OBCA) (Incomplete)
Also, this repository provides some controllers for path tracking, including
- Pure Pursuit + PID
- Rear-Wheel Feedback + PID
- Front-Wheel Feedback / Stanley + PID
- LQR + PID
- Linear MPC
Requirement
- Python 3.6 or above
- SciPy
- cvxpy
- Reeds-Shepp Curves
- pycubicspline
Vehicle models
This repository uses two models: simple car model and car pulling trailers model.
Hybrid A* Planner
State Lattice Planner
Controllers
Paper
Planning
- Basic Path Planning Algorithms: PathPlanning
- Overview: A Survey of Motion Planning and Control Techniques for Self-driving Urban Vehicles
- Hybrid A* Planner: Practical Search Techniques in Path Planning for Autonomous Driving
- Frenet Optimal Trajectory: Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame
- EM Planner: Baidu Apollo EM Motion Planner
Control
- Pure Pursuit: Implementation of the Pure Pursuit Path Tracking Algorithm
- Rear-Wheel Feedback: Automatic Steering Methods for Autonomous Automobile Path Tracking
- Front-Wheel Feedback / Stanley: Stanley: The Robot that Won the DARPA Grand Challenge
- LQR: ApolloAuto/apollo: An open autonomous driving platform
- Linear MPC: MPC-Based Approach to Active Steering for Autonomous Vehicle Systems
Useful Material
- ApolloAuto/apollo: by Baidu
- Hybrid Path Planner (C++): by KTH Research Concept Vehicle
- hybrid-astar-planner (MATLAB): by Mengli Liu
- HybridAStarTrailer (Julia): by AtsushiSakai