diff --git a/src/capture_base.h b/src/capture_base.h index 5915cf94e0fccaf038e9c76a975a692e73164155..155fd298c10d2f809c12c28ecea6e8833238b3d0 100644 --- a/src/capture_base.h +++ b/src/capture_base.h @@ -85,14 +85,13 @@ class CaptureBase : public NodeLinked<FrameBase, FeatureBase> void setTimeStampToNow(); - // TODO rename to process() virtual void process(); - // TODO Rename to computeFrameInitialGuess() ... for instance + // TODO Move it to ProcessorX class() + // Rename to computeFrameInitialGuess() ... for instance // Another name could be provideFrameInitialGuess(); - // Move it to ProcessorX class() - // Should be virtual in ProcessorBase with an empty/error message - virtual Eigen::VectorXs computePrior(const TimeStamp& _now) const = 0; + //Should be virtual in ProcessorBase with an empty/error message + virtual Eigen::VectorXs computeFramePose(const TimeStamp& _now) const = 0; virtual void printSelf(unsigned int _ntabs = 0, std::ostream & _ost = std::cout) const; diff --git a/src/capture_fix.cpp b/src/capture_fix.cpp index d665f7aebe1d7a77914c03effdab28450e3793e4..c1994bb8544a958a30942f0760dd49d68d6c08a5 100644 --- a/src/capture_fix.cpp +++ b/src/capture_fix.cpp @@ -25,7 +25,7 @@ void CaptureFix::process() //std::cout << "ConstraintFix added " << std::endl; } -Eigen::VectorXs CaptureFix::computePrior(const TimeStamp& _now) const +Eigen::VectorXs CaptureFix::computeFramePose(const TimeStamp& _now) const { return data_; } diff --git a/src/capture_fix.h b/src/capture_fix.h index eb65845e1fd4658203921e59563dd4e75f78120c..18740611450fffa0d8c234415d51904f8796c766 100644 --- a/src/capture_fix.h +++ b/src/capture_fix.h @@ -29,6 +29,6 @@ class CaptureFix : public CaptureBase virtual void process(); - virtual Eigen::VectorXs computePrior(const TimeStamp& _now) const; + virtual Eigen::VectorXs computeFramePose(const TimeStamp& _now) const; }; #endif diff --git a/src/capture_gps.cpp b/src/capture_gps.cpp index b4fb3019aa9840f7c1a482bcde7be57cddc1d76b..f2d1a24a4395d8d35beb2643bbc2f7d7f7bf9dba 100644 --- a/src/capture_gps.cpp +++ b/src/capture_gps.cpp @@ -47,7 +47,7 @@ void CaptureGPS::process() /* * Dummy implementation of the method, only because it's pure virtual */ -Eigen::VectorXs CaptureGPS::computePrior(const TimeStamp &_now) const +Eigen::VectorXs CaptureGPS::computeFramePose(const TimeStamp &_now) const { return Eigen::Vector3s(0, 0, 0); } diff --git a/src/capture_gps.h b/src/capture_gps.h index 697ed58006124c06777841e8ed1205ae04f6ac0b..e1c7ed974757280f73e65a6e07a36035bb074863 100644 --- a/src/capture_gps.h +++ b/src/capture_gps.h @@ -32,7 +32,7 @@ public: /* * Dummy implementation of the method, only because it's pure virtual */ - virtual Eigen::VectorXs computePrior(const TimeStamp &_now) const; + virtual Eigen::VectorXs computeFramePose(const TimeStamp &_now) const; }; diff --git a/src/capture_gps_fix.cpp b/src/capture_gps_fix.cpp index 50960a1d9de91fe63b958d2fe6c01eef7195e7b4..ec7790a3cdcfff0024d5c4dccb00509839279829 100644 --- a/src/capture_gps_fix.cpp +++ b/src/capture_gps_fix.cpp @@ -29,7 +29,7 @@ void CaptureGPSFix::process() getFeatureListPtr()->front()->addConstraintFrom(new ConstraintGPS2D(getFeatureListPtr()->front(), getFramePtr())); } -Eigen::VectorXs CaptureGPSFix::computePrior(const TimeStamp& _now) const +Eigen::VectorXs CaptureGPSFix::computeFramePose(const TimeStamp& _now) const { return data_; } diff --git a/src/capture_gps_fix.h b/src/capture_gps_fix.h index 71a0a010ca0ca8460f50f9e1a5ffa58d9304e65b..8cf7bc4b64ad68cff0edae3aa823d2fd36710424 100644 --- a/src/capture_gps_fix.h +++ b/src/capture_gps_fix.h @@ -29,7 +29,7 @@ class CaptureGPSFix : public CaptureBase virtual void process(); - virtual Eigen::VectorXs computePrior(const TimeStamp& _now) const; + virtual Eigen::VectorXs computeFramePose(const TimeStamp& _now) const; //virtual void printSelf(unsigned int _ntabs = 0, std::ostream & _ost = std::cout) const; }; diff --git a/src/capture_laser_2D.cpp b/src/capture_laser_2D.cpp index 0b4dd581236d54af937dbaad9d85d28d1a739618..7ea74c2b489f7834939b2497e1778e5a5f43d583 100644 --- a/src/capture_laser_2D.cpp +++ b/src/capture_laser_2D.cpp @@ -51,7 +51,7 @@ CaptureLaser2D::~CaptureLaser2D() } -Eigen::VectorXs CaptureLaser2D::computePrior(const TimeStamp& _now) const +Eigen::VectorXs CaptureLaser2D::computeFramePose(const TimeStamp& _now) const { return Eigen::Vector3s(1, 2, 3); } diff --git a/src/capture_laser_2D.h b/src/capture_laser_2D.h index 03511c65cb3d14b92ea70619400aceef593d1ed0..1e36f87da5e54aa5e687a2bdf5d88e0c4b7489af 100644 --- a/src/capture_laser_2D.h +++ b/src/capture_laser_2D.h @@ -100,7 +100,7 @@ class CaptureLaser2D : public CaptureBase // // void computeExpectedFeature(LandmarkBase* _landmark_ptr, Eigen::Vector4s& expected_feature_, Eigen::Matrix3s& expected_feature_cov_); - virtual Eigen::VectorXs computePrior(const TimeStamp& _now) const; + virtual Eigen::VectorXs computeFramePose(const TimeStamp& _now) const; // Eigen::VectorXs computeSquaredMahalanobisDistances(const FeatureBase* _feature_ptr, const LandmarkBase* _landmark_ptr, const Eigen::MatrixXs& _mu); // Eigen::VectorXs computeSquaredMahalanobisDistances(const FeatureBase* _feature_ptr, const Eigen::Vector4s& _expected_feature, const Eigen::Matrix3s& _expected_feature_cov, const Eigen::MatrixXs& _mu); diff --git a/src/capture_odom_2D.cpp b/src/capture_odom_2D.cpp index dde778ccfaf858e952439ddd831224d0da63e429..8d9d51549ccd730d199366e5afbb42b7adade80c 100644 --- a/src/capture_odom_2D.cpp +++ b/src/capture_odom_2D.cpp @@ -33,7 +33,7 @@ inline void CaptureOdom2D::process() addConstraints(); } -Eigen::VectorXs CaptureOdom2D::computePrior(const TimeStamp& _now) const +Eigen::VectorXs CaptureOdom2D::computeFramePose(const TimeStamp& _now) const { assert(up_node_ptr_ != nullptr && "This Capture is not linked to any frame"); diff --git a/src/capture_odom_2D.h b/src/capture_odom_2D.h index ad535c270a7988e780cd3c0de743f2c310a3b4fd..d6f36c193b0bc671c617ec829547bcf1e7f63a58 100644 --- a/src/capture_odom_2D.h +++ b/src/capture_odom_2D.h @@ -34,7 +34,7 @@ class CaptureOdom2D : public CaptureMotion virtual void process(); - virtual Eigen::VectorXs computePrior(const TimeStamp& _now = 0) const; + virtual Eigen::VectorXs computeFramePose(const TimeStamp& _now = 0) const; virtual void addConstraints(); diff --git a/src/capture_void.cpp b/src/capture_void.cpp index ad7ae05c2426090f5d99c596dc8bee79d24632ad..06966eed5eaa59d9586c9a38a7678d7a6e50ea8b 100644 --- a/src/capture_void.cpp +++ b/src/capture_void.cpp @@ -11,7 +11,7 @@ CaptureVoid::~CaptureVoid() //std::cout << "deleting CaptureVoid " << nodeId() << std::endl; } -Eigen::VectorXs CaptureVoid::computePrior(const TimeStamp& _now) const +Eigen::VectorXs CaptureVoid::computeFramePose(const TimeStamp& _now) const { return Eigen::VectorXs::Zero(3); } diff --git a/src/capture_void.h b/src/capture_void.h index 1de4522e5871a09d7e55342284f099627e799441..03cf49d94d5c7cc47f46f97b15685d347f3ab4b9 100644 --- a/src/capture_void.h +++ b/src/capture_void.h @@ -17,6 +17,6 @@ class CaptureVoid : public CaptureBase **/ virtual ~CaptureVoid(); - virtual Eigen::VectorXs computePrior(const TimeStamp& _now) const; + virtual Eigen::VectorXs computeFramePose(const TimeStamp& _now) const; }; #endif diff --git a/src/processor_base.h b/src/processor_base.h index 6dbae45d5919c58f869f222a4af2a00111d7c9db..50976b1485fe2fc4b057bd6c2ea990079def476f 100644 --- a/src/processor_base.h +++ b/src/processor_base.h @@ -5,13 +5,14 @@ //Wolf includes #include "wolf.h" +#include "time_stamp.h" #include "wolf_problem.h" #include "node_linked.h" #include "node_terminus.h" #include "sensor_base.h" //class ProcessorBase -class ProcessorBase : public NodeLinked<SensorBase,NodeTerminus> +class ProcessorBase : public NodeLinked<SensorBase, NodeTerminus> { public: /** \brief Constructor @@ -25,23 +26,30 @@ class ProcessorBase : public NodeLinked<SensorBase,NodeTerminus> * * Default destructor (please use destruct() instead of delete for guaranteeing the wolf tree integrity) * - **/ + **/ virtual ~ProcessorBase(); SensorBase* getSensorPtr(); /** \brief Extract Features - * - * Extract Features from a given capture - * - **/ + * + * Extract Features from a given capture + * + **/ virtual void extractFeatures(CaptureBase* _capture_ptr) = 0; /** \brief Establish Constraints - * - * Establish Constraints for all features of a given capture - * - **/ + * + * Establish Constraints for all features of a given capture + * + **/ virtual void establishConstraints(CaptureBase* _capture_ptr) = 0; + + virtual Eigen::VectorXs provideFrameInitialGuess(const TimeStamp& _now) const + { + return Eigen::VectorXs(1); + } + + }; #endif diff --git a/src/wolf_manager.cpp b/src/wolf_manager.cpp index 5fa139d0889fe97b9a97c6a6001520240166a588..6ab9fa3ba0b6bcfcd24f7d9df0bed933ce5dba79 100644 --- a/src/wolf_manager.cpp +++ b/src/wolf_manager.cpp @@ -129,7 +129,7 @@ void WolfManager::createFrame(const Eigen::VectorXs& _frame_state, const TimeSta void WolfManager::createFrame(const TimeStamp& _time_stamp) { //std::cout << "creating new frame from prior..." << std::endl; - createFrame(last_capture_relative_->computePrior(_time_stamp), _time_stamp); + createFrame(last_capture_relative_->computeFramePose(_time_stamp), _time_stamp); } void WolfManager::addSensor(SensorBase* _sensor_ptr) @@ -199,7 +199,7 @@ void WolfManager::update() // ADD/INTEGRATE NEW ODOMETRY TO THE LAST FRAME last_capture_relative_->integrateCapture((CaptureMotion*) (new_capture)); - current_frame_->setState(last_capture_relative_->computePrior(new_capture->getTimeStamp())); + current_frame_->setState(last_capture_relative_->computeFramePose(new_capture->getTimeStamp())); current_frame_->setTimeStamp(new_capture->getTimeStamp()); delete new_capture; } @@ -233,7 +233,7 @@ Eigen::VectorXs WolfManager::getVehiclePose(const TimeStamp& _now) if (last_capture_relative_ == nullptr) return Eigen::Map<Eigen::Vector3s>(current_frame_->getPPtr()->getPtr()); else - return last_capture_relative_->computePrior(_now); + return last_capture_relative_->computeFramePose(_now); } diff --git a/src/wolf_manager_gps.cpp b/src/wolf_manager_gps.cpp index 626a9a413201fb4face2bb09797c101e88bd4c33..e09fe07daf15652d5542b80c7b4376f2df89c593 100644 --- a/src/wolf_manager_gps.cpp +++ b/src/wolf_manager_gps.cpp @@ -171,7 +171,7 @@ void WolfManagerGPS::update() // ADD/INTEGRATE NEW ODOMETRY TO THE LAST FRAME last_capture_relative_->integrateCapture((CaptureMotion*) (new_capture)); - current_frame_->setState(last_capture_relative_->computePrior(new_capture->getTimeStamp())); + current_frame_->setState(last_capture_relative_->computeFramePose(new_capture->getTimeStamp())); current_frame_->setTimeStamp(new_capture->getTimeStamp()); delete new_capture; } @@ -205,7 +205,7 @@ Eigen::VectorXs WolfManagerGPS::getVehiclePose(const TimeStamp& _now) if (last_capture_relative_ == nullptr) return Eigen::Map<Eigen::Vector3s>(current_frame_->getPPtr()->getPtr()); else - return last_capture_relative_->computePrior(_now); + return last_capture_relative_->computeFramePose(_now); }