From 6d9c4c2fba5f06391a562d81bb0b9c25218ee9a0 Mon Sep 17 00:00:00 2001 From: Idril Geer <igeer@iri.upc.edu> Date: Tue, 9 Feb 2021 17:21:04 +0100 Subject: [PATCH] hotfix: Fix motion covariance in SensorOdom2d and SensorOdom3d --- include/core/sensor/sensor_odom_2d.h | 2 +- src/sensor/sensor_odom_2d.cpp | 4 ++-- src/sensor/sensor_odom_3d.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/core/sensor/sensor_odom_2d.h b/include/core/sensor/sensor_odom_2d.h index ca06c7c01..0859f15bc 100644 --- a/include/core/sensor/sensor_odom_2d.h +++ b/include/core/sensor/sensor_odom_2d.h @@ -78,7 +78,7 @@ class SensorOdom2d : public SensorBase * * See implementation for details. */ - Matrix3d computeCovFromMotion (const VectorXd& _data) const; + Matrix2d computeCovFromMotion (const VectorXd& _data) const; }; diff --git a/src/sensor/sensor_odom_2d.cpp b/src/sensor/sensor_odom_2d.cpp index a3fe8ee9a..c853426d8 100644 --- a/src/sensor/sensor_odom_2d.cpp +++ b/src/sensor/sensor_odom_2d.cpp @@ -34,7 +34,7 @@ double SensorOdom2d::getRotVarToRotNoiseFactor() const return k_rot_to_rot_; } -Eigen::Matrix3d SensorOdom2d::computeCovFromMotion (const VectorXd& _data) const +Eigen::Matrix2d SensorOdom2d::computeCovFromMotion (const VectorXd& _data) const { double d = fabs(_data(0)); double r = fabs(_data(1)); @@ -42,7 +42,7 @@ Eigen::Matrix3d SensorOdom2d::computeCovFromMotion (const VectorXd& _data) const double dvar = k_disp_to_disp_ * d; double rvar = k_rot_to_rot_ * r; - return (Matrix3d() << dvar, dvar, rvar).finished(); + return (Vector2d() << dvar, rvar).finished().asDiagonal(); } } diff --git a/src/sensor/sensor_odom_3d.cpp b/src/sensor/sensor_odom_3d.cpp index 5954f505c..b261029d6 100644 --- a/src/sensor/sensor_odom_3d.cpp +++ b/src/sensor/sensor_odom_3d.cpp @@ -50,7 +50,7 @@ Eigen::Matrix6d SensorOdom3d::computeCovFromMotion (const VectorXd& _data) const double dvar = min_disp_var_ + k_disp_to_disp_ * d; double rvar = min_rot_var_ + k_disp_to_rot_ * d + k_rot_to_rot_ * r; - return (Matrix6d() << dvar, dvar, dvar, rvar, rvar, rvar).finished(); + return (Vector6d() << dvar, dvar, dvar, rvar, rvar, rvar).finished().asDiagonal(); } } // namespace wolf -- GitLab