EM planner is the path planning algorithm of Baidu Apollo automatic driving system. It decomposes the non-convex trajectory planning problem into two sub-problems of path planning and speed planning through dimensionality reduction. This project demonstrates the basic functions of EM planner through simple algorithm visualization.
Project file description:
./lib/frenetUtils.cpp
: Cartesian coordinate system and Frenet coordinate system conversion../lib/smoothSolver.cpp
: Path smoothing related code../lib/osqpSolver.cpp
: Relevant codes for quadratic programming to solve the optimal path.
Demo:
-
not used actually, can removed from main.cpp
mkdir build
cd build
cmake ..
make
# in build/
./main
-
The code for this project is developed based on this course.