Skip to content

Ensuring symmetric in Vxx, this is needed because numerial error

Inspeting the memory warm-starting issue (see https://gepgitlab.laas.fr/memmo/memory-to-crocoddyl/issues/1) I realized that the reason the backward pass was failing. The main reason was having non-invertible \mathbf{Q_{uu}} matrix. And this was produced because numerical errors were producing non-symmetric \mathbf{V_{xx}}.

So, I applied a simple rule of thumb to ensure symmetric in this PR. With this changes, we're able to solve the warm-starting problem (with long double support duration) in 6 iterations. This is the log file for that problem:

iter 	 cost 	      stop 	    grad 	  xreg 	      ureg 	 step 	 feas
   0  3.06504e+01  2.70110e-02  3.53678e+01  1.00000e-09  1.00000e-09   0.5000     0
   1  2.83929e+01  2.12409e-01  1.47910e+01  1.00000e-09  1.00000e-09   0.5000     0
   2  2.79667e+01  9.69123e-02  5.96420e+00  1.00000e-09  1.00000e-09   1.0000     1
   3  2.74287e+01  1.00807e-01  1.14229e+00  1.00000e-09  1.00000e-09   1.0000     1
   4  2.73820e+01  1.64318e-02  9.27254e-02  1.00000e-09  1.00000e-09   1.0000     1
   5  2.73818e+01  1.58312e-06  2.29567e-04  1.00000e-09  1.00000e-09   1.0000     1
   6  2.73818e+01  2.94175e-08  1.02976e-05  1.00000e-09  1.00000e-09   1.0000     1
Edited by Carlos Mastalli

Merge request reports