From b6cd5e1eb6c146b8dfcce79850cff16f4acf4861 Mon Sep 17 00:00:00 2001 From: Pierre Fernbach <pierre.fernbach@laas.fr> Date: Thu, 8 Feb 2018 18:03:05 +0100 Subject: [PATCH] in computePolytopeProjection : assure that H have more rows than there generators --- src/centroidal_dynamics.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/centroidal_dynamics.cpp b/src/centroidal_dynamics.cpp index 7a4c5c5..d17db93 100644 --- a/src/centroidal_dynamics.cpp +++ b/src/centroidal_dynamics.cpp @@ -517,6 +517,9 @@ LP_status Equilibrium::findExtremumInDirection(Cref_vector3 direction, Ref_vecto bool Equilibrium::computePolytopeProjection(Cref_matrix6X v) { + int n = (int)(v.rows()); + int m = (int)(v.cols()); + // getProfiler().start("eigen_to_cdd"); dd_MatrixPtr V = cone_span_eigen_to_cdd(v.transpose(),canonicalize_cdd_matrix); // getProfiler().stop("eigen_to_cdd"); @@ -571,6 +574,15 @@ bool Equilibrium::computePolytopeProjection(Cref_matrix6X v) } // getProfiler().stop("cdd to eigen"); + std::cout<<" inequalities : m = "<<m<<std::endl; + if(m_h.rows() < n ) + { + SEND_ERROR_MSG("numerical instability in cddlib. ill formed polytope"); + m_is_cdd_stable = false; + return false; + } + + return true; } -- GitLab