diff --git a/src/centroidal_dynamics.cpp b/src/centroidal_dynamics.cpp index f1c0e5d7a3e0e9dae251c4085fb3ab8a6706838d..7a4c5c5658a675403d361d4eb7b444af49c8133f 100644 --- a/src/centroidal_dynamics.cpp +++ b/src/centroidal_dynamics.cpp @@ -599,8 +599,14 @@ LP_status Equilibrium::findMaximumAcceleration(Cref_matrix63 H, Cref_vector6 h,C VectorX Alb = -h; VectorX Aub = -h; + int iter = 0; + LP_status lpStatus; + do{ + lpStatus = m_solver->solve(c, lb, ub, A, Alb, Aub, b_a0); + iter ++; + }while(lpStatus == LP_STATUS_ERROR && iter < 3); + - LP_status lpStatus = m_solver->solve(c, lb, ub, A, Alb, Aub, b_a0); if(lpStatus==LP_STATUS_UNBOUNDED){ //SEND_DEBUG_MSG("Primal LP problem is unbounded : "+toString(lpStatus)); alpha0 = std::numeric_limits<double>::infinity();