Working DDP for linear systems
This PR contains major core improvement of the DDP, I briefly describe them:
- Common abstraction for terminal and running cost functions.
- Data creation for a stack of terminal and running cost functions.
- Function for computing all quantities in the cost and dynamics abstract classes.
- Coding a Tassa's regularization and line search.
- Creating a spring-mass system for DDP unit-testing.
- Adding asserts for critical components.
- Numerical differentiation abstraction.
- Data structure and numerical differentiation for classical and diffeomorphic systems.
- Unit-test for DDP with linear system (i.e. spring mass).
- Unit-test for quadratic cost functions and its derivatives.
- Unit-test for numerical differentiation.
- Extended, but no finished, documentation of core classes.
@nmansard, @jcarpent and @rbudhira please take time for reviewing these core changes. There is still a lot of to be done but it's time to have some loop closure. Just to quickly mention, this is a short TODO:
- Using the integrator class for integrating the derivatives of dynamics and cost functions.
- Adding the manipulation problem, and potentially a sort of unit-test.
- Adding the improved version of the regularization and line search.
- Adding the locomotion problem?