diff --git a/hello_wolf/processor_range_bearing.cpp b/hello_wolf/processor_range_bearing.cpp index b75801bde13cff3a003e0ba746bec5fb864bb813..cd7ba019179d7bfb7aa61723073028ccc3b17024 100644 --- a/hello_wolf/processor_range_bearing.cpp +++ b/hello_wolf/processor_range_bearing.cpp @@ -25,15 +25,15 @@ void ProcessorRangeBearing::process(CaptureBasePtr _capture) // 1. get KF FrameBasePtr kf(nullptr); - if ( !kf_pack_buffer_.empty() ) + if ( !buffer_pack_kf_.empty() ) { // KeyFrame Callback received - PackKeyFramePtr pack = kf_pack_buffer_.selectPack( _capture->getTimeStamp(), params_->time_tolerance ); + PackKeyFramePtr pack = buffer_pack_kf_.selectPack( _capture->getTimeStamp(), params_->time_tolerance ); if (pack!=nullptr) kf = pack->key_frame; - kf_pack_buffer_.removeUpTo( _capture->getTimeStamp() ); + buffer_pack_kf_.removeUpTo( _capture->getTimeStamp() ); assert( kf && "Callback KF is not close enough to _capture!"); } diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h index a6f8ac588195b3402ba2aebab998a8d8f6fcf1f7..3955b3cb35b1e5846f6d9260ef361b043bd3bfd8 100644 --- a/include/core/processor/processor_base.h +++ b/include/core/processor/processor_base.h @@ -40,14 +40,14 @@ WOLF_PTR_TYPEDEFS(PackKeyFrame); * * Object and functions to manage a buffer of KFPack objects. */ -class PackKeyFrameBuffer +class BufferPackKeyFrame { public: typedef std::map<TimeStamp,PackKeyFramePtr>::iterator Iterator; // buffer iterator - PackKeyFrameBuffer(void); - ~PackKeyFrameBuffer(void); + BufferPackKeyFrame(void); + ~BufferPackKeyFrame(void); /**\brief Select a Pack from the buffer * @@ -142,11 +142,10 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce protected: unsigned int processor_id_; ProcessorParamsBasePtr params_; - PackKeyFrameBuffer kf_pack_buffer_; + BufferPackKeyFrame buffer_pack_kf_; private: SensorBaseWPtr sensor_ptr_; - static unsigned int processor_id_count_; public: @@ -282,27 +281,27 @@ inline void ProcessorBase::setTimeTolerance(Scalar _time_tolerance) params_->time_tolerance = _time_tolerance; } -inline PackKeyFrameBuffer::PackKeyFrameBuffer(void) +inline BufferPackKeyFrame::BufferPackKeyFrame(void) { } -inline PackKeyFrameBuffer::~PackKeyFrameBuffer(void) +inline BufferPackKeyFrame::~BufferPackKeyFrame(void) { } -inline void PackKeyFrameBuffer::clear() +inline void BufferPackKeyFrame::clear() { container_.clear(); } -inline bool PackKeyFrameBuffer::empty() +inline bool BufferPackKeyFrame::empty() { return container_.empty(); } -inline SizeStd PackKeyFrameBuffer::size(void) +inline SizeStd BufferPackKeyFrame::size(void) { return container_.size(); } diff --git a/src/processor/processor_base.cpp b/src/processor/processor_base.cpp index 07da090c9b6e789f3d942a8aef226665927972cf..5c2dd85aeb423f4879ac12c135cd18e08233c3a1 100644 --- a/src/processor/processor_base.cpp +++ b/src/processor/processor_base.cpp @@ -54,7 +54,7 @@ void ProcessorBase::keyFrameCallback(FrameBasePtr _keyframe_ptr, const Scalar& _ { WOLF_DEBUG("P", isMotion() ? "M " : "T ", getName(), ": KF", _keyframe_ptr->id(), " callback received with ts = ", _keyframe_ptr->getTimeStamp()); if (_keyframe_ptr != nullptr) - kf_pack_buffer_.add(_keyframe_ptr,_time_tol_other); + buffer_pack_kf_.add(_keyframe_ptr,_time_tol_other); } void ProcessorBase::remove() @@ -93,25 +93,25 @@ void ProcessorBase::remove() } ///////////////////////////////////////////////////////////////////////////////////////// -void PackKeyFrameBuffer::removeUpTo(const TimeStamp& _time_stamp) +void BufferPackKeyFrame::removeUpTo(const TimeStamp& _time_stamp) { - PackKeyFrameBuffer::Iterator post = container_.upper_bound(_time_stamp); + BufferPackKeyFrame::Iterator post = container_.upper_bound(_time_stamp); container_.erase(container_.begin(), post); // erasing by range } -void PackKeyFrameBuffer::add(const FrameBasePtr& _key_frame, const Scalar& _time_tolerance) +void BufferPackKeyFrame::add(const FrameBasePtr& _key_frame, const Scalar& _time_tolerance) { TimeStamp time_stamp = _key_frame->getTimeStamp(); PackKeyFramePtr kfpack = std::make_shared<PackKeyFrame>(_key_frame, _time_tolerance); container_.emplace(time_stamp, kfpack); } -PackKeyFramePtr PackKeyFrameBuffer::selectPack(const TimeStamp& _time_stamp, const Scalar& _time_tolerance) +PackKeyFramePtr BufferPackKeyFrame::selectPack(const TimeStamp& _time_stamp, const Scalar& _time_tolerance) { if (container_.empty()) return nullptr; - PackKeyFrameBuffer::Iterator post = container_.upper_bound(_time_stamp); + BufferPackKeyFrame::Iterator post = container_.upper_bound(_time_stamp); // remove packs corresponding to removed KFs (keeping the next iterator in post) while (post != container_.end() && post->second->key_frame->isRemoving()) @@ -126,7 +126,7 @@ PackKeyFramePtr PackKeyFrameBuffer::selectPack(const TimeStamp& _time_stamp, con if (prev_exists) { - PackKeyFrameBuffer::Iterator prev = std::prev(post); + BufferPackKeyFrame::Iterator prev = std::prev(post); bool prev_ok = checkTimeTolerance(prev->first, prev->second->time_tolerance, _time_stamp, _time_tolerance); @@ -149,12 +149,12 @@ PackKeyFramePtr PackKeyFrameBuffer::selectPack(const TimeStamp& _time_stamp, con return nullptr; } -PackKeyFramePtr PackKeyFrameBuffer::selectPack(const CaptureBasePtr _capture, const Scalar& _time_tolerance) +PackKeyFramePtr BufferPackKeyFrame::selectPack(const CaptureBasePtr _capture, const Scalar& _time_tolerance) { return selectPack(_capture->getTimeStamp(), _time_tolerance); } -PackKeyFramePtr PackKeyFrameBuffer::selectFirstPackBefore(const TimeStamp& _time_stamp, const Scalar& _time_tolerance) +PackKeyFramePtr BufferPackKeyFrame::selectFirstPackBefore(const TimeStamp& _time_stamp, const Scalar& _time_tolerance) { // remove packs corresponding to removed KFs while (!container_.empty() && container_.begin()->second->key_frame->isRemoving()) @@ -178,12 +178,12 @@ PackKeyFramePtr PackKeyFrameBuffer::selectFirstPackBefore(const TimeStamp& _time } -PackKeyFramePtr PackKeyFrameBuffer::selectFirstPackBefore(const CaptureBasePtr _capture, const Scalar& _time_tolerance) +PackKeyFramePtr BufferPackKeyFrame::selectFirstPackBefore(const CaptureBasePtr _capture, const Scalar& _time_tolerance) { return selectFirstPackBefore(_capture->getTimeStamp(), _time_tolerance); } -void PackKeyFrameBuffer::print(void) +void BufferPackKeyFrame::print(void) { std::cout << "[ "; for (auto iter : container_) @@ -193,7 +193,7 @@ void PackKeyFrameBuffer::print(void) std::cout << "]" << std::endl; } -bool PackKeyFrameBuffer::checkTimeTolerance(const TimeStamp& _time_stamp1, const Scalar& _time_tolerance1, +bool BufferPackKeyFrame::checkTimeTolerance(const TimeStamp& _time_stamp1, const Scalar& _time_tolerance1, const TimeStamp& _time_stamp2, const Scalar& _time_tolerance2) { Scalar time_diff = std::fabs(_time_stamp1 - _time_stamp2); diff --git a/src/processor/processor_motion.cpp b/src/processor/processor_motion.cpp index bb2812f75847545fde2813640d9f8413fa9fa413..02b975499940b2e01d0e477f843d8d2b496a1fda 100644 --- a/src/processor/processor_motion.cpp +++ b/src/processor/processor_motion.cpp @@ -92,7 +92,7 @@ void ProcessorMotion::process(CaptureBasePtr _incoming_ptr) PackKeyFramePtr pack = computeProcessingStep(); if (pack) - kf_pack_buffer_.removeUpTo( pack->key_frame->getTimeStamp() ); + buffer_pack_kf_.removeUpTo( pack->key_frame->getTimeStamp() ); switch(processing_step_) { @@ -656,11 +656,11 @@ PackKeyFramePtr ProcessorMotion::computeProcessingStep() throw std::runtime_error("ProcessorMotion received data before being initialized."); } - PackKeyFramePtr pack = kf_pack_buffer_.selectFirstPackBefore(last_ptr_, params_motion_->time_tolerance); + PackKeyFramePtr pack = buffer_pack_kf_.selectFirstPackBefore(last_ptr_, params_motion_->time_tolerance); if (pack) { - if (kf_pack_buffer_.checkTimeTolerance(pack->key_frame->getTimeStamp(), pack->time_tolerance, origin_ptr_->getTimeStamp(), params_motion_->time_tolerance)) + if (buffer_pack_kf_.checkTimeTolerance(pack->key_frame->getTimeStamp(), pack->time_tolerance, origin_ptr_->getTimeStamp(), params_motion_->time_tolerance)) { WOLF_WARN("||*||"); WOLF_INFO(" ... It seems you missed something!"); diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp index d081ef2d074fc068f4ded38e8c3495d4c12e0131..ad2c73b62f0c5a91601f59272aae2355b9b313d6 100644 --- a/src/processor/processor_tracker.cpp +++ b/src/processor/processor_tracker.cpp @@ -52,8 +52,8 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr) { case FIRST_TIME_WITH_PACK : { - PackKeyFramePtr pack = kf_pack_buffer_.selectPack( incoming_ptr_, params_tracker_->time_tolerance); - kf_pack_buffer_.removeUpTo( pack->key_frame->getTimeStamp() ); + PackKeyFramePtr pack = buffer_pack_kf_.selectPack( incoming_ptr_, params_tracker_->time_tolerance); + buffer_pack_kf_.removeUpTo( pack->key_frame->getTimeStamp() ); WOLF_DEBUG( "PT ", getName(), ": KF" , pack->key_frame->id() , " callback unpacked with ts= " , pack->key_frame->getTimeStamp().get() ); @@ -97,7 +97,7 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr) case SECOND_TIME_WITH_PACK : { // No-break case only for debug. Next case will be executed too. - PackKeyFramePtr pack = kf_pack_buffer_.selectPack( incoming_ptr_, params_tracker_->time_tolerance); + PackKeyFramePtr pack = buffer_pack_kf_.selectPack( incoming_ptr_, params_tracker_->time_tolerance); WOLF_DEBUG( "PT ", getName(), ": KF" , pack->key_frame->id() , " callback unpacked with ts= " , pack->key_frame->getTimeStamp().get() ); } // @suppress("No break at end of case") case SECOND_TIME_WITHOUT_PACK : @@ -124,8 +124,8 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr) } case RUNNING_WITH_PACK : { - PackKeyFramePtr pack = kf_pack_buffer_.selectPack( last_ptr_ , params_tracker_->time_tolerance); - kf_pack_buffer_.removeUpTo( pack->key_frame->getTimeStamp() ); + PackKeyFramePtr pack = buffer_pack_kf_.selectPack( last_ptr_ , params_tracker_->time_tolerance); + buffer_pack_kf_.removeUpTo( pack->key_frame->getTimeStamp() ); WOLF_DEBUG( "PT ", getName(), ": KF" , pack->key_frame->id() , " callback unpacked with ts= " , pack->key_frame->getTimeStamp().get() ); @@ -265,7 +265,7 @@ void ProcessorTracker::computeProcessingStep() { case FIRST_TIME : - if (kf_pack_buffer_.selectPack(incoming_ptr_, params_tracker_->time_tolerance)) + if (buffer_pack_kf_.selectPack(incoming_ptr_, params_tracker_->time_tolerance)) processing_step_ = FIRST_TIME_WITH_PACK; else // ! last && ! pack(incoming) processing_step_ = FIRST_TIME_WITHOUT_PACK; @@ -273,7 +273,7 @@ void ProcessorTracker::computeProcessingStep() case SECOND_TIME : - if (kf_pack_buffer_.selectPack(last_ptr_, params_tracker_->time_tolerance)) + if (buffer_pack_kf_.selectPack(last_ptr_, params_tracker_->time_tolerance)) processing_step_ = SECOND_TIME_WITH_PACK; else processing_step_ = SECOND_TIME_WITHOUT_PACK; @@ -282,7 +282,7 @@ void ProcessorTracker::computeProcessingStep() case RUNNING : default : - if (kf_pack_buffer_.selectPack(last_ptr_, params_tracker_->time_tolerance)) + if (buffer_pack_kf_.selectPack(last_ptr_, params_tracker_->time_tolerance)) { if (last_ptr_->getFrame()->isKey()) { diff --git a/test/gtest_pack_KF_buffer.cpp b/test/gtest_pack_KF_buffer.cpp index 6597f0f53207c98759e882a96221a2ac0fcb00d0..1b1f1ffb61ded8028dfbe7814f6f813f76793334 100644 --- a/test/gtest_pack_KF_buffer.cpp +++ b/test/gtest_pack_KF_buffer.cpp @@ -26,7 +26,7 @@ class BufferPackKeyFrameTest : public testing::Test { public: - PackKeyFrameBuffer pack_kf_buffer; + BufferPackKeyFrame pack_kf_buffer; FrameBasePtr f10, f20, f21, f28; Scalar tt10, tt20, tt21, tt28; TimeStamp timestamp;