From ab5e3837f81833dd9acae24fa8c583d540bac935 Mon Sep 17 00:00:00 2001 From: Pierre Fernbach <pierre.fernbach@laas.fr> Date: Fri, 4 Aug 2017 16:21:54 +0200 Subject: [PATCH] allow retries (hardcoded value of 3) if the LP return a LP_STATUS_ERROR in findMaximumAcceleration --- src/centroidal_dynamics.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/centroidal_dynamics.cpp b/src/centroidal_dynamics.cpp index f1c0e5d..7a4c5c5 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(); -- GitLab