diff --git a/include/objectslam/processor/processor_tracker_landmark_object.h b/include/objectslam/processor/processor_tracker_landmark_object.h index 5df5ab9e7e20816be9445e9c795f7498a4db1862..46efd0cfcc509ad03ee23a747d47cd92b331cd7f 100644 --- a/include/objectslam/processor/processor_tracker_landmark_object.h +++ b/include/objectslam/processor/processor_tracker_landmark_object.h @@ -110,13 +110,7 @@ class ProcessorTrackerLandmarkObject : public ProcessorTrackerLandmark std::pair<double,double> errorsComputations(Eigen::Isometry3d _w_M_f, std::shared_ptr<wolf::LandmarkObject> _lmk_obj); - - Eigen::Isometry3d getw_M_r(); - Eigen::Isometry3d getr_M_c(); - Eigen::Isometry3d getc_M_f(FeatureBasePtr _feat); - - unsigned int multiviewTypeMatching(const CaptureBasePtr& _capture, FeatureBasePtrList& _features_out_last, FeatureBasePtrList& _features_out_incoming); diff --git a/src/processor/processor_tracker_landmark_object.cpp b/src/processor/processor_tracker_landmark_object.cpp index 852e6251628cf99e0cf3c4ef09ee0af9ee47e87e..ba8d3db2adfcf5cfd4935a9249c7953f4042eecd 100644 --- a/src/processor/processor_tracker_landmark_object.cpp +++ b/src/processor/processor_tracker_landmark_object.cpp @@ -225,16 +225,18 @@ unsigned int ProcessorTrackerLandmarkObject::firstLmkMatching(const LandmarkBase } // world to rob - Eigen::Isometry3d w_M_r = posevec_to_isometry(getLast()->getFrame()->getStateVector()); + + Eigen::Isometry3d w_M_r = posevec_to_isometry(getLast()->getFrame()->getStateVector("PO")); + // rob to sensor - Eigen::Isometry3d r_M_c = posevec_to_isometry(getSensor()->getStateVector()); + Eigen::Isometry3d r_M_c = posevec_to_isometry(getSensor()->getStateVector("PO")); for (auto feat : detections_incoming_) { std::string object_type = std::static_pointer_cast<FeatureObject>(feat)->getObjectType(); // camera to feat - Eigen::Isometry3d c_M_f = getc_M_f(feat); + Eigen::Isometry3d c_M_f = posevec_to_isometry(feat->getMeasurement()); if (feat->getCapture() != nullptr){ break; @@ -265,27 +267,6 @@ unsigned int ProcessorTrackerLandmarkObject::firstLmkMatching(const LandmarkBase return _features_out.size(); } -Eigen::Isometry3d ProcessorTrackerLandmarkObject::getw_M_r() -{ - Vector3d pos_rob = getLast()->getFrame()->getP()->getState(); - Quaterniond quat_rob (getLast()->getFrame()->getO()->getState().data()); - return Eigen::Translation<double,3>(pos_rob.head(3)) * quat_rob; -} - -Eigen::Isometry3d ProcessorTrackerLandmarkObject::getr_M_c() -{ - Vector3d pos_sen = getSensor()->getP()->getState(); - Quaterniond quat_sen (getSensor()->getO()->getState().data()); - return Eigen::Translation<double,3>(pos_sen.head(3)) * quat_sen; -} - -Eigen::Isometry3d ProcessorTrackerLandmarkObject::getc_M_f(FeatureBasePtr _feat) -{ - Vector3d pos_obj = _feat->getMeasurement().head(3); - Quaterniond quat_obj (_feat->getMeasurement().tail(4).data()); - return Eigen::Translation<double,3>(pos_obj) * quat_obj; -} - std::pair<double,double> ProcessorTrackerLandmarkObject::errorsComputations(Eigen::Isometry3d _w_M_f, std::shared_ptr<wolf::LandmarkObject> _lmk_obj) { Quaterniond quat_feat; @@ -315,9 +296,9 @@ unsigned int ProcessorTrackerLandmarkObject::bestLmkMatching(const LandmarkBaseP } // world to rob - Eigen::Isometry3d w_M_r = posevec_to_isometry(getLast()->getFrame()->getStateVector()); + Eigen::Isometry3d w_M_r = posevec_to_isometry(getLast()->getFrame()->getStateVector("PO")); // rob to sensor - Eigen::Isometry3d r_M_c = posevec_to_isometry(getSensor()->getStateVector()); + Eigen::Isometry3d r_M_c = posevec_to_isometry(getSensor()->getStateVector("PO")); if (_landmarks_in.size() == 0) return _features_out.size();