From 0eec54616408c8d63686c8c396f5ccd87f811381 Mon Sep 17 00:00:00 2001
From: Mehdi Benallegue <mehdi.benallegue@gmail.com>
Date: Tue, 3 Jun 2014 18:29:39 +0200
Subject: [PATCH] Correct computations of the X component of the ZMP

Correct also the linear force part of the Y component of the ZMP.
---
 src/zmp-from-forces.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/zmp-from-forces.cpp b/src/zmp-from-forces.cpp
index 81ea9b9..ca1d34d 100644
--- a/src/zmp-from-forces.cpp
+++ b/src/zmp-from-forces.cpp
@@ -97,10 +97,9 @@ namespace sot {
 	  const MatrixHomogeneous& M = sensorPositionsSIN_ [i]->access (time);
 	  fz [i] = M (2,0) * f (0) + M(2,1) * f (1) + M (2,2) * f (2);
 	  if (fz[i] > 0) {
-	    double Mx = M (0,0)*f(3) + M (0,1)*f(4) + M (0,2)*f(5) +
-	      M (1,3)*(M(2,0)*f(0)+M(2,1)*f(1)+M(2,2)*f(2));
-	    double My = M (1,0)*f(3) + M (1,1)*f(4) + M (1,2)*f(5) -
-	      M (1,3)*(M(1,0)*f(0)+M(1,1)*f(1)+M(1,2)*f(2));
+	    /// we assume M (2,3)==0 for moments computations
+	    double Mx = M (0,0)*f(3) + M (0,1)*f(4) + M (0,2)*f(5) + M (1,3)*(fz [i]);
+	    double My = M (1,0)*f(3) + M (1,1)*f(4) + M (1,2)*f(5) - M (0,3)*(fz [i]);
 	    fnormal += fz[i];
 	    sumZmpx -= My;
 	    sumZmpy += Mx;
-- 
GitLab