From ca9d6f7448dfe1014dd35aec80d840dfef039d72 Mon Sep 17 00:00:00 2001 From: jvallve <jvallve@iri.upc.edu> Date: Mon, 7 Mar 2022 15:55:29 +0100 Subject: [PATCH] hotfix: not crashing if no odom available --- src/processor/processor_odom_icp.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/processor/processor_odom_icp.cpp b/src/processor/processor_odom_icp.cpp index 754964104..aa4bbd55e 100644 --- a/src/processor/processor_odom_icp.cpp +++ b/src/processor/processor_odom_icp.cpp @@ -37,6 +37,9 @@ namespace wolf ProcessorOdomIcp::ProcessorOdomIcp(ParamsProcessorOdomIcpPtr _params): ProcessorTracker("ProcessorOdomIcp", "PO", 0, _params), MotionProvider("PO", _params), + odom_origin_(Eigen::VectorXd::Zero(3)), + odom_last_(Eigen::VectorXd::Zero(3)), + odom_incoming_(Eigen::VectorXd::Zero(3)), rl_T_sl_(Eigen::Isometry2d::Identity()), ro_T_so_(Eigen::Isometry2d::Identity()), params_odom_icp_(_params) @@ -107,7 +110,9 @@ void ProcessorOdomIcp::updateExtrinsicsIsometries() Eigen::Isometry2d ProcessorOdomIcp::computeIsometry2d(const Eigen::VectorXd& x1, const Eigen::VectorXd& x2 ) const { - assert((x1.size() == 3 and x2.size() == 3) or (x1.size() == 7 and x2.size() == 7)); + // any vector not properly filled + if (not (x1.size() == 3 and x2.size() == 3) and not (x1.size() == 7 and x2.size() == 7)) + return Eigen::Isometry2d::Identity(); // 2D if (x1.size() == 3) -- GitLab