ZJU-FAST-Lab / GCOPTER

A General-Purpose Trajectory Optimizer for Multicopters
MIT License
683 stars 139 forks source link

difference with ego planner #12

Open 001zwzwzw opened 1 year ago

001zwzwzw commented 1 year ago

hello! I take care of you work with long time.I have some questions.I would like to know this work and you ego-planner are two different works in trajectory planning?I can use GCOPTER as a black box?thank you very much

dongdongbh commented 1 year ago

In my view, GCOPTER is mostly a planning backend (trajectory optimizer), while ego-planner is a complete planning method including frontend and backend.

Ego-planner is an ESDF-free planner by using collision-free trajectory as guiding path in frontend. Ego-planner set same time interval between control points in the first round optimization, then adjust it to ensure dynamical feasibility in the second round optimization (they call it refinement). It utilise B-spline to fit the trajectory and apply gradient-based optimization directly.

While GCOPTER is a spatial-temporal joint planning optimizer. their paper proofs a unique optimal trajectory exists in un-constraint case, which is a 2s-1 degree polynomial. Based on that, It eliminates constraints by parametric equation diffeomorphisms and time integral penalty functional, followed by gradient-based optimization to optimize the polynomials w.r.t new objective function.

chenhanpolyu commented 1 year ago

GCOPTER acts as a back-end trajectory optimization module in the whole planning system. You can replace the back-end of EGO-planner with GCOPTER, in fact, this has been done in this project.