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

Fix analytic derivatives of Pinocchio; fix finite differencing on manifolds; updates to FDDP #696

Closed wxmerkt closed 4 years ago

wxmerkt commented 4 years ago

This PR:

  1. Fixes various dimensions in dynamic control problems, particular related to the size of the tangent space. It also exposes this variables explicitly (nq, nv, nu, nx, ndx). Further it reduces the number of heap allocations.
  2. Fixes the analytic derivative of the exotica_pinocchio_dynamics_solver and eliminates allocations during runtime. Part of the partial derivative w.r.t. q was previously omitted.
  3. Includes modifications to FDDP to make it (a) abstract and (b) to eliminate try-catch logic as identified in #692
  4. Fixes the default finite differencing in the dynamics solvers to correctly account for manifold operations, e.g., when using quaternions.