ipab-slmc / exotica

Extensible Optimization Framework
https://ipab-slmc.github.io/exotica
BSD 3-Clause "New" or "Revised" License
149 stars 70 forks source link

Add FeasibilityDrivenDDPSolver (FDDP) #692

Closed wxmerkt closed 4 years ago

wxmerkt commented 4 years ago

This PR adapts and adds the Crocoddyl implementation of FDDP into Exotica.

The following differences have to be noted:

This now works well - better on some dynamics systems than on others.

This version currently has numerical issues - particularly with the state feedback gain matrix K_. It works better without in the forward-pass. This could be due

a) t/T arguments being wrong in a place, b) the differences in the cost computation with StateDelta (arguments are swapped) in the DynamicTimeIndexedShootingProblem, c) the calculation of the defects fs_ being wrong d) or something else.

The convergence is also poor compared with VanillaDDP.

wxmerkt commented 4 years ago

After some fixes to make them comparable (FDDP didn't use the dt_ running cost scaling), I now get the following on Cart-Pole (example 7):

image

The flat line at the beginning are the infeasible iterations in FDDP. Not sure why there are so many in the cart-pole example.