From 7d8ac7dd4441ef95adb9dea6321e31f70d214d97 Mon Sep 17 00:00:00 2001
From: PepMS <jmarti@iri.upc.edu>
Date: Tue, 2 Jul 2019 14:45:12 +0200
Subject: [PATCH] FactorOdom2D including extrinsics

---
 include/core/factor/factor_odom_2D.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/core/factor/factor_odom_2D.h b/include/core/factor/factor_odom_2D.h
index ed3d0da69..0589fbcd4 100644
--- a/include/core/factor/factor_odom_2D.h
+++ b/include/core/factor/factor_odom_2D.h
@@ -56,13 +56,16 @@ inline bool FactorOdom2D::operator ()(const T* const _p1, const T* const _o1, co
     Eigen::Map<Eigen::Matrix<T,3,1> > res(_residuals);
     Eigen::Map<const Eigen::Matrix<T,2,1> > p1(_p1);
     Eigen::Map<const Eigen::Matrix<T,2,1> > p2(_p2);
+    Eigen::Map<const Eigen::Matrix<T,2,1> > sp(_sp);
     T o1 = _o1[0];
     T o2 = _o2[0];
+    T so = _so[0];
+
     Eigen::Matrix<T, 3, 1> expected_measurement;
     Eigen::Matrix<T, 3, 1> er; // error
 
     // Expected measurement
-    expected_measurement.head(2) = Eigen::Rotation2D<T>(-o1) * (p2 - p1);
+    expected_measurement.head(2) = Eigen::Rotation2D<T>(-so)*(Eigen::Rotation2D<T>(-o1)*(p2 + Eigen::Rotation2D<T>(o2)*sp - p1) - sp);
     expected_measurement(2) = o2 - o1;
 
     // Error
-- 
GitLab