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
- Python 3.6 or above
- SciPy
- cvxpy
- Reeds-Shepp Curves
- pycubicspline
This repository uses two models: simple car model and car pulling trailers model.
- 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
- 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
- ApolloAuto/apollo: by Baidu
- Hybrid Path Planner (C++): by KTH Research Concept Vehicle
- hybrid-astar-planner (MATLAB): by Mengli Liu
- HybridAStarTrailer (Julia): by AtsushiSakai