From c007e1a629911b7fc562f16e36ee14bb652ed6e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Sol=C3=A0?= <jsola@iri.upc.edu>
Date: Thu, 15 Mar 2018 23:39:46 +0100
Subject: [PATCH] Reorder params in ProcessorMotion constructor

---
 src/processor_IMU.cpp                   |  2 +-
 src/processor_base.h                    |  2 ++
 src/processor_motion.cpp                |  5 ++---
 src/processor_motion.h                  | 11 ++---------
 src/processor_odom_2D.cpp               |  5 +++--
 src/processor_odom_2D.h                 |  3 ++-
 src/processor_odom_3D.cpp               |  2 +-
 src/processors/processor_diff_drive.cpp |  2 +-
 8 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/src/processor_IMU.cpp b/src/processor_IMU.cpp
index 2e6340d05..c31c0533e 100644
--- a/src/processor_IMU.cpp
+++ b/src/processor_IMU.cpp
@@ -4,7 +4,7 @@
 namespace wolf {
 
 ProcessorIMU::ProcessorIMU(ProcessorIMUParamsPtr _params) :
-        ProcessorMotion("IMU", 10, 10, 9, 6, 0.01, 6),
+        ProcessorMotion("IMU", 10, 10, 9, 6, 6, 0.01),
         max_time_span_  (_params ? _params    ->max_time_span   : 1.0  ),
         max_buff_length_(_params ? _params    ->max_buff_length : 10000   ),
         dist_traveled_  (_params ? _params    ->dist_traveled   : 1.0  ),
diff --git a/src/processor_base.h b/src/processor_base.h
index c8b6f7381..87ba0f2f7 100644
--- a/src/processor_base.h
+++ b/src/processor_base.h
@@ -20,6 +20,8 @@ namespace wolf {
 /** \brief Key frame class pack
  *
  * To store a key_frame with an associated time tolerance.
+ *
+ * Used in keyframe callbacks as the minimal pack of information needed by the processor receiving the callback.
  */
 class KFPack
 {
diff --git a/src/processor_motion.cpp b/src/processor_motion.cpp
index cd0a26154..63cf1e074 100644
--- a/src/processor_motion.cpp
+++ b/src/processor_motion.cpp
@@ -7,8 +7,8 @@ ProcessorMotion::ProcessorMotion(const std::string& _type,
                                  Size _delta_size,
                                  Size _delta_cov_size,
                                  Size _data_size,
-                                 Scalar _time_tolerance,
-                                 Size _calib_size) :
+                                 Size _calib_size,
+                                 Scalar _time_tolerance) :
         ProcessorBase(_type, _time_tolerance),
         processing_step_(RUNNING_WITHOUT_PACK),
         x_size_(_state_size),
@@ -30,7 +30,6 @@ ProcessorMotion::ProcessorMotion(const std::string& _type,
         jacobian_delta_(delta_cov_size_, delta_cov_size_),
         jacobian_calib_(delta_size_, calib_size_)
 {
-    status_ = IDLE;
     //
 }
 
diff --git a/src/processor_motion.h b/src/processor_motion.h
index 93d1af04a..bc1246972 100644
--- a/src/processor_motion.h
+++ b/src/processor_motion.h
@@ -110,13 +110,6 @@ class ProcessorMotion : public ProcessorBase
     protected:
         ProcessingStep processing_step_;        ///< State machine controlling the processing step
 
-    private:
-        enum
-        {
-            IDLE,
-            RUNNING
-        } status_;
-
     // This is the main public interface
     public:
         ProcessorMotion(const std::string& _type,
@@ -124,8 +117,8 @@ class ProcessorMotion : public ProcessorBase
                         Size _delta_size,
                         Size _delta_cov_size,
                         Size _data_size,
-                        Scalar _time_tolerance = 0.1,
-                        Size _calib_size = 0);
+                        Size _calib_size = 0,
+                        Scalar _time_tolerance = 0.1);
         virtual ~ProcessorMotion();
 
         // Instructions to the processor:
diff --git a/src/processor_odom_2D.cpp b/src/processor_odom_2D.cpp
index a5cc0a1a3..c95bda8bc 100644
--- a/src/processor_odom_2D.cpp
+++ b/src/processor_odom_2D.cpp
@@ -6,8 +6,9 @@ ProcessorOdom2D::ProcessorOdom2D(const Scalar& _dist_traveled_th,
                                  const Scalar& _theta_traveled_th,
                                  const Scalar& _cov_det_th,
                                  const Scalar& _elapsed_time_th,
-                                 const Scalar& _unmeasured_perturbation_std) :
-        ProcessorMotion("ODOM 2D", 3, 3, 3, 2),
+                                 const Scalar& _unmeasured_perturbation_std,
+                                 const Scalar& _time_tolerance) :
+        ProcessorMotion("ODOM 2D", 3, 3, 3, 2, 0, _time_tolerance),
         dist_traveled_th_(_dist_traveled_th),
         theta_traveled_th_(_theta_traveled_th),
         cov_det_th_(_cov_det_th),
diff --git a/src/processor_odom_2D.h b/src/processor_odom_2D.h
index c9b10b140..251533a25 100644
--- a/src/processor_odom_2D.h
+++ b/src/processor_odom_2D.h
@@ -35,7 +35,8 @@ class ProcessorOdom2D : public ProcessorMotion
                         const Scalar& _theta_traveled_th            = 0.17,
                         const Scalar& _cov_det_th                   = 1.0,
                         const Scalar& _elapsed_time_th              = 1.0,
-                        const Scalar& _unmeasured_perturbation_std  = 0.001);
+                        const Scalar& _unmeasured_perturbation_std  = 0.001,
+                        const Scalar& _time_tolerance               = 0.01);
         virtual ~ProcessorOdom2D();
         virtual bool voteForKeyFrame() override;
 
diff --git a/src/processor_odom_3D.cpp b/src/processor_odom_3D.cpp
index 70b31a443..d0eb4dc5f 100644
--- a/src/processor_odom_3D.cpp
+++ b/src/processor_odom_3D.cpp
@@ -3,7 +3,7 @@ namespace wolf
 {
 
 ProcessorOdom3D::ProcessorOdom3D(ProcessorOdom3DParamsPtr _params, SensorOdom3DPtr _sensor_ptr) :
-                ProcessorMotion("ODOM 3D", 7, 7, 6, 6),
+                ProcessorMotion("ODOM 3D", 7, 7, 6, 6, 0, (_params ? _params->time_tolerance : 0.01) ),
                 max_time_span_  (_params ? _params    ->max_time_span   : 1.0  ),
                 max_buff_length_(_params ? _params    ->max_buff_length : 10   ),
                 dist_traveled_  (_params ? _params    ->dist_traveled   : 1.0  ),
diff --git a/src/processors/processor_diff_drive.cpp b/src/processors/processor_diff_drive.cpp
index 535cd5c17..8031040ce 100644
--- a/src/processors/processor_diff_drive.cpp
+++ b/src/processors/processor_diff_drive.cpp
@@ -13,7 +13,7 @@ namespace wolf
 {
 
 ProcessorDiffDrive::ProcessorDiffDrive(const ProcessorParamsDiffDrive &params) :
-  ProcessorMotion("DIFF DRIVE", 3, 3, 3, 2, 0.15, 3),
+  ProcessorMotion("DIFF DRIVE", 3, 3, 3, 2, 3, 0.15),
   unmeasured_perturbation_cov_(Matrix3s::Identity()*
                                params.unmeasured_perturbation_std_*
                                params.unmeasured_perturbation_std_),
-- 
GitLab