Action LQR doesn't pass when I substitute L = np.dot(L.T,L) by L = L.T + L
I noticed that inside the ActionModelLQR
we have the following line of code (see https://gepgitlab.laas.fr/loco-3d/crocoddyl/blob/devel/crocoddyl/action.py#L131):
L = randomOrthonormalMatrix(self.ndx+self.nu)
L = np.dot(L.T, L) # ensure symmetric
instead we should have:
L = randomOrthonormalMatrix(self.ndx+self.nu)
L = L.T + L # ensure symmetric
However it's trigger an error inside test_solvers (here https://gepgitlab.laas.fr/loco-3d/crocoddyl/blob/devel/unittest/test_solvers.py#L314) when I changed it. Basically \mathbf{Quu}
isn't invertible and we cannot compute the backward-pass.
@nmansard do you understand what it's going on?