Skip to content
Snippets Groups Projects
Commit bcc07e16 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

debugging demo vio

parent d621a4af
No related branches found
No related tags found
1 merge request!448Draft: Resolve "Implementation of new nodes creation"
Pipeline #21235 failed
...@@ -64,11 +64,13 @@ CaptureMotion::~CaptureMotion() ...@@ -64,11 +64,13 @@ CaptureMotion::~CaptureMotion()
bool CaptureMotion::containsTimeStamp(const TimeStamp& _ts, double _time_tolerance) const bool CaptureMotion::containsTimeStamp(const TimeStamp& _ts, double _time_tolerance) const
{ {
assert(_ts.ok() and this->time_stamp_.ok()); assert(_ts.ok() and this->time_stamp_.ok());
assert(this->time_stamp_ == this->getBuffer().back().ts_ and
"CaptureMotion::containsTimeStamp: The time stamp of the capture is not equal to the last motion in the buffer");
// the same capture is within tolerance // the same capture is within tolerance
if (this->time_stamp_ - _time_tolerance <= _ts && _ts <= this->time_stamp_ + _time_tolerance) return true; if (this->time_stamp_ - _time_tolerance <= _ts && _ts <= this->time_stamp_ + _time_tolerance) return true;
// buffer is empty, and the capture is not within tolerance // buffer is empty (and the capture is not within tolerance)
if (this->getBuffer().empty()) return false; if (this->getBuffer().empty()) return false;
// buffer encloses timestamp, if ts is: // buffer encloses timestamp, if ts is:
......
...@@ -772,12 +772,6 @@ void Problem::addFrameTypes(const TypeComposite& _types) ...@@ -772,12 +772,6 @@ void Problem::addFrameTypes(const TypeComposite& _types)
frame_types_.emplace(pair.first, pair.second); frame_types_.emplace(pair.first, pair.second);
else else
{ {
WOLF_DEBUG_COND(frame_types_.at(pair.first) == pair.second,
"Type '",
pair.second,
"' already in 'frame_types_' in key '",
pair.first,
"' doing nothing.");
if (frame_types_.at(pair.first) != pair.second) if (frame_types_.at(pair.first) != pair.second)
{ {
WOLF_ERROR("Trying to append type '", WOLF_ERROR("Trying to append type '",
......
...@@ -214,21 +214,47 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -214,21 +214,47 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
switch (processing_step_) // Things to do before integrating motion data switch (processing_step_) // Things to do before integrating motion data
{ {
case FIRST_TIME_WITHOUT_KF: { case FIRST_TIME_WITHOUT_KF: {
WOLF_DEBUG(getType(), ": '", getName(), "' FIRST_TIME_WITHOUT_KF: KF");
// There is no KF: create own origin // There is no KF: create own origin
new_keyframe = setOrigin(getProblem()->stateZero(getStateKeys()), _incoming_ptr->getTimeStamp()); new_keyframe = setOrigin(getProblem()->stateZero(getStateKeys()), _incoming_ptr->getTimeStamp());
break; break;
} }
case FIRST_TIME_WITH_KF_BEFORE_INCOMING: { case FIRST_TIME_WITH_KF_BEFORE_INCOMING: {
WOLF_DEBUG(getType(),
": '",
getName(),
"' FIRST_TIME_WITH_KF_BEFORE_INCOMING: KF",
keyframe_from_callback->id(),
" callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp());
// cannot join to the KF: create own origin // cannot join to the KF: create own origin
new_keyframe = setOrigin(getProblem()->getState(getStateKeys()), _incoming_ptr->getTimeStamp()); new_keyframe = setOrigin(getProblem()->getState(getStateKeys()), _incoming_ptr->getTimeStamp());
break; break;
} }
case FIRST_TIME_WITH_KF_ON_INCOMING: { case FIRST_TIME_WITH_KF_ON_INCOMING: {
WOLF_DEBUG(getType(),
": '",
getName(),
"' FIRST_TIME_WITH_KF_ON_INCOMING: KF",
keyframe_from_callback->id(),
" callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp());
// can join to the KF // can join to the KF
setOrigin(keyframe_from_callback); setOrigin(keyframe_from_callback);
break; break;
} }
case FIRST_TIME_WITH_KF_AFTER_INCOMING: { case FIRST_TIME_WITH_KF_AFTER_INCOMING: {
WOLF_DEBUG(getType(),
": '",
getName(),
"' FIRST_TIME_WITH_KF_AFTER_INCOMING: KF",
keyframe_from_callback->id(),
" callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp());
// cannot join to the KF: create own origin // cannot join to the KF: create own origin
new_keyframe = setOrigin(getProblem()->getState(getStateKeys()), _incoming_ptr->getTimeStamp()); new_keyframe = setOrigin(getProblem()->getState(getStateKeys()), _incoming_ptr->getTimeStamp());
break; break;
...@@ -243,6 +269,7 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -243,6 +269,7 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
// integrate motion data // integrate motion data
// Done at this place because emplaceFirstFrame() needs // Done at this place because emplaceFirstFrame() needs
integrateOneStep(); integrateOneStep();
last_ptr_->setTimeStamp(getBuffer().back().ts_);
// perform bootstrap steps (usually only IMU requires this) // perform bootstrap steps (usually only IMU requires this)
if (bootstrapping_) bootstrap(); if (bootstrapping_) bootstrap();
...@@ -276,6 +303,13 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -276,6 +303,13 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
* x ----n ----e ... ----o ----------l * x ----n ----e ... ----o ----------l
* \_f_/ \_f_/ * \_f_/ \_f_/
*/ */
WOLF_DEBUG(getType(),
": '",
getName(),
"' RUNNING_WITH_KF_BEFORE_ORIGIN: KF",
keyframe_from_callback->id(),
" callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp());
// extract KF elements // extract KF elements
TimeStamp timestamp_from_callback = keyframe_from_callback->getTimeStamp(); TimeStamp timestamp_from_callback = keyframe_from_callback->getTimeStamp();
...@@ -375,6 +409,13 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -375,6 +409,13 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
* x ----------x ----o ----l * x ----------x ----o ----l
* \____f____/ \_f_/ * \____f____/ \_f_/
*/ */
WOLF_DEBUG(getType(),
": '",
getName(),
"' RUNNING_WITH_KF_AFTER_ORIGIN: KF",
keyframe_from_callback->id(),
" callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp());
// extract KF elements // extract KF elements
TimeStamp timestamp_from_callback = keyframe_from_callback->getTimeStamp(); TimeStamp timestamp_from_callback = keyframe_from_callback->getTimeStamp();
...@@ -417,10 +458,6 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -417,10 +458,6 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
break; break;
} }
// Update time stamp
auto ts = getTimeStamp();
last_ptr_->setTimeStamp(ts);
if (permittedKeyFrame() && voteForKeyFrame()) if (permittedKeyFrame() && voteForKeyFrame())
{ {
/* /*
...@@ -453,6 +490,8 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -453,6 +490,8 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
* *
*/ */
WOLF_DEBUG(getType(), ": '", getName(), "' VOTED FOR KF at ts= ", last_ptr_->getTimeStamp());
// Set the capture's calibration with best results available (in case origin_ptr_ received a solve()) // Set the capture's calibration with best results available (in case origin_ptr_ received a solve())
setCalibration(last_ptr_, getCalibration(origin_ptr_)); setCalibration(last_ptr_, getCalibration(origin_ptr_));
...@@ -504,7 +543,10 @@ VectorComposite ProcessorMotion::getState(StateKeys _keys) const ...@@ -504,7 +543,10 @@ VectorComposite ProcessorMotion::getState(StateKeys _keys) const
for (auto key : _keys) for (auto key : _keys)
if (getStateTypes().has(key)) has_keys.push_back(key); if (getStateTypes().has(key)) has_keys.push_back(key);
WOLF_DEBUG("Processor has no state for all keys '", WOLF_DEBUG(getType(),
" - ",
getName(),
" has no state for all keys '",
_keys, _keys,
"'. Returning a VectorComposite only with the available ones: '", "'. Returning a VectorComposite only with the available ones: '",
has_keys, has_keys,
...@@ -521,7 +563,11 @@ VectorComposite ProcessorMotion::getState(StateKeys _keys) const ...@@ -521,7 +563,11 @@ VectorComposite ProcessorMotion::getState(StateKeys _keys) const
// Further checking here for origin_ptr is redundant: if last=null, then origin=null too. // Further checking here for origin_ptr is redundant: if last=null, then origin=null too.
if (origin_ptr_ == nullptr or origin_ptr_->isRemoving() or last_ptr_ == nullptr) if (origin_ptr_ == nullptr or origin_ptr_->isRemoving() or last_ptr_ == nullptr)
{ {
WOLF_DEBUG("Processor has no state. Returning an empty VectorComposite with no blocks"); WOLF_DEBUG(
getType(),
" - ",
getName(),
" has no state (origin null or removing or last null). Returning an empty VectorComposite with no blocks");
return VectorComposite(); // return empty state return VectorComposite(); // return empty state
} }
...@@ -602,7 +648,10 @@ VectorComposite ProcessorMotion::getState(const TimeStamp& _ts, StateKeys _keys) ...@@ -602,7 +648,10 @@ VectorComposite ProcessorMotion::getState(const TimeStamp& _ts, StateKeys _keys)
for (auto key : _keys) for (auto key : _keys)
if (getStateTypes().has(key)) has_keys.push_back(key); if (getStateTypes().has(key)) has_keys.push_back(key);
WOLF_DEBUG("Processor has no state for all keys '", WOLF_DEBUG(getType(),
" - ",
getName(),
" has no state for all keys '",
_keys, _keys,
"'. Returning a VectorComposite only with the available ones: '", "'. Returning a VectorComposite only with the available ones: '",
has_keys, has_keys,
...@@ -620,7 +669,12 @@ VectorComposite ProcessorMotion::getState(const TimeStamp& _ts, StateKeys _keys) ...@@ -620,7 +669,12 @@ VectorComposite ProcessorMotion::getState(const TimeStamp& _ts, StateKeys _keys)
if (capture_motion == nullptr) // we do not have any info of where to find a valid state if (capture_motion == nullptr) // we do not have any info of where to find a valid state
{ {
WOLF_DEBUG("Processor has no state. Returning an empty VectorComposite with no blocks"); WOLF_DEBUG(getType(),
" - ",
getName(),
" has no state at ts = ",
_ts,
". Returning an empty VectorComposite with no blocks");
return VectorComposite(); // return empty state return VectorComposite(); // return empty state
} }
...@@ -898,7 +952,6 @@ CaptureMotionConstPtr ProcessorMotion::findCaptureContainingTimeStamp(const Time ...@@ -898,7 +952,6 @@ CaptureMotionConstPtr ProcessorMotion::findCaptureContainingTimeStamp(const Time
assert(_ts.ok()); assert(_ts.ok());
// assert(last_ptr_ != nullptr); // assert(last_ptr_ != nullptr);
// Need to uncomment this line so that wolf_ros_apriltag doesn't crash
if (last_ptr_ == nullptr) return nullptr; if (last_ptr_ == nullptr) return nullptr;
// First check if last_ptr is the one we are looking for // First check if last_ptr is the one we are looking for
...@@ -906,38 +959,25 @@ CaptureMotionConstPtr ProcessorMotion::findCaptureContainingTimeStamp(const Time ...@@ -906,38 +959,25 @@ CaptureMotionConstPtr ProcessorMotion::findCaptureContainingTimeStamp(const Time
// Then look in the Wolf tree... // Then look in the Wolf tree...
// ----------------------------- // -----------------------------
//
// We need to search in previous keyframes for the capture containing a motion buffer with the queried time stamp // We need to search in previous keyframes for the capture containing a motion buffer with the queried time stamp
// Note: since the buffer goes from a KF in the past until the next KF, we need to: // Note: since the buffer goes from a KF in the past until the next KF, we need to:
// 1. See that the KF contains a CaptureMotion // 1. See that the KF contains a CaptureMotion
// 2. See that the TS is smaller than the KF's TS // 2. See that the TS is smaller than the KF's TS
// 3. See that the TS is bigger than the first Motion in the CaptureMotion's buffer (if any) // 3. See that the TS is bigger than the first Motion in the CaptureMotion's buffer (if any)
FrameBaseConstPtr frame = nullptr; auto frame_map = getProblem()->getTrajectory()->getFrameMap();
CaptureBaseConstPtr capture = nullptr;
CaptureMotionConstPtr capture_motion = nullptr;
auto frame_map = getProblem()->getTrajectory()->getFrameMap();
for (auto frame_rev_iter = frame_map.rbegin(); frame_rev_iter != frame_map.rend(); ++frame_rev_iter) for (auto frame_rev_iter = frame_map.rbegin(); frame_rev_iter != frame_map.rend(); ++frame_rev_iter)
{ {
frame = frame_rev_iter->second; auto captures = frame_rev_iter->second->getCapturesOf(getSensor());
auto sensor = getSensor(); for (auto capture : captures)
capture = frame->getCaptureOf(sensor);
if (capture != nullptr)
{ {
assert(std::dynamic_pointer_cast<const CaptureMotion>(capture) != nullptr); // Rule 1 satisfied! We found a Capture belonging to this processor's Sensor and it is a CaptureMotion
// Rule 1 satisfied! We found a Capture belonging to this processor's Sensor ==> it is a CaptureMotion auto capture_motion = std::dynamic_pointer_cast<const CaptureMotion>(capture);
capture_motion = std::static_pointer_cast<const CaptureMotion>(capture);
if (capture_motion->containsTimeStamp(_ts, getTimeTolerance())) // Found time stamp satisfying rule 3 above !! ==> break for loop
{ if (capture_motion and capture_motion->containsTimeStamp(_ts, getTimeTolerance())) return capture_motion;
// Found time stamp satisfying rule 3 above !! ==> break for loop
break;
}
else
capture_motion = nullptr;
} }
} }
return capture_motion; return nullptr;
} }
CaptureMotionPtr ProcessorMotion::findCaptureContainingTimeStamp(const TimeStamp& _ts) CaptureMotionPtr ProcessorMotion::findCaptureContainingTimeStamp(const TimeStamp& _ts)
...@@ -951,38 +991,25 @@ CaptureMotionPtr ProcessorMotion::findCaptureContainingTimeStamp(const TimeStamp ...@@ -951,38 +991,25 @@ CaptureMotionPtr ProcessorMotion::findCaptureContainingTimeStamp(const TimeStamp
// Then look in the Wolf tree... // Then look in the Wolf tree...
// ----------------------------- // -----------------------------
//
// We need to search in previous keyframes for the capture containing a motion buffer with the queried time stamp // We need to search in previous keyframes for the capture containing a motion buffer with the queried time stamp
// Note: since the buffer goes from a KF in the past until the next KF, we need to: // Note: since the buffer goes from a KF in the past until the next KF, we need to:
// 1. See that the KF contains a CaptureMotion // 1. See that the KF contains a CaptureMotion
// 2. See that the TS is smaller than the KF's TS // 2. See that the TS is smaller than the KF's TS
// 3. See that the TS is bigger than the first Motion in the CaptureMotion's buffer (if any) // 3. See that the TS is bigger than the first Motion in the CaptureMotion's buffer (if any)
FrameBasePtr frame = nullptr; auto frame_map = getProblem()->getTrajectory()->getFrameMap();
CaptureBasePtr capture = nullptr;
CaptureMotionPtr capture_motion = nullptr;
auto frame_map = getProblem()->getTrajectory()->getFrameMap();
for (auto frame_rev_iter = frame_map.rbegin(); frame_rev_iter != frame_map.rend(); ++frame_rev_iter) for (auto frame_rev_iter = frame_map.rbegin(); frame_rev_iter != frame_map.rend(); ++frame_rev_iter)
{ {
frame = frame_rev_iter->second; auto captures = frame_rev_iter->second->getCapturesOf(getSensor());
auto sensor = getSensor(); for (auto capture : captures)
capture = frame->getCaptureOf(sensor);
if (capture != nullptr)
{ {
assert(std::dynamic_pointer_cast<CaptureMotion>(capture) != nullptr); // Rule 1 satisfied! We found a Capture belonging to this processor's Sensor and it is a CaptureMotion
// Rule 1 satisfied! We found a Capture belonging to this processor's Sensor ==> it is a CaptureMotion auto capture_motion = std::dynamic_pointer_cast<CaptureMotion>(capture);
capture_motion = std::static_pointer_cast<CaptureMotion>(capture);
if (capture_motion->containsTimeStamp(_ts, getTimeTolerance())) // Found time stamp satisfying rule 3 above !! ==> return
{ if (capture_motion and capture_motion->containsTimeStamp(_ts, getTimeTolerance())) return capture_motion;
// Found time stamp satisfying rule 3 above !! ==> break for loop
break;
}
else
capture_motion = nullptr;
} }
} }
return capture_motion; return nullptr;
} }
FrameBasePtr ProcessorMotion::computeProcessingStep() FrameBasePtr ProcessorMotion::computeProcessingStep()
...@@ -997,32 +1024,19 @@ FrameBasePtr ProcessorMotion::computeProcessingStep() ...@@ -997,32 +1024,19 @@ FrameBasePtr ProcessorMotion::computeProcessingStep()
{ {
if (checkTimeTolerance(keyframe_from_callback, incoming_ptr_)) if (checkTimeTolerance(keyframe_from_callback, incoming_ptr_))
{ {
WOLF_DEBUG("PM ", getName(), ": First time with a KF compatible.")
processing_step_ = FIRST_TIME_WITH_KF_ON_INCOMING; processing_step_ = FIRST_TIME_WITH_KF_ON_INCOMING;
} }
else if (keyframe_from_callback->getTimeStamp() < incoming_ptr_->getTimeStamp()) else if (keyframe_from_callback->getTimeStamp() < incoming_ptr_->getTimeStamp())
{ {
WOLF_DEBUG("PM ",
getName(),
": First time with a KF too old. It seems the prior has been set before receiving the "
"first capture of this processor.")
processing_step_ = FIRST_TIME_WITH_KF_BEFORE_INCOMING; processing_step_ = FIRST_TIME_WITH_KF_BEFORE_INCOMING;
} }
else else
{ {
WOLF_DEBUG("PM ",
getName(),
": First time with a KF newer than the first capture. It only can happen if prior mode is "
"'nothing'")
processing_step_ = FIRST_TIME_WITH_KF_AFTER_INCOMING; processing_step_ = FIRST_TIME_WITH_KF_AFTER_INCOMING;
} }
} }
else else
{ {
WOLF_DEBUG(
"PM ",
getName(),
": First time with a KF newer than the first capture. It only can happen if prior mode is 'nothing'")
processing_step_ = FIRST_TIME_WITHOUT_KF; processing_step_ = FIRST_TIME_WITHOUT_KF;
} }
...@@ -1065,6 +1079,8 @@ void ProcessorMotion::assertsCaptureMotion(CaptureMotionPtr _capture, std::strin ...@@ -1065,6 +1079,8 @@ void ProcessorMotion::assertsCaptureMotion(CaptureMotionPtr _capture, std::strin
{ {
assert(_capture != nullptr && (error_prefix + ": null capture").c_str()); assert(_capture != nullptr && (error_prefix + ": null capture").c_str());
assert(not _capture->getBuffer().empty() && (error_prefix + ": empty buffer").c_str()); assert(not _capture->getBuffer().empty() && (error_prefix + ": empty buffer").c_str());
// assert(_capture->getBuffer().back().ts_ == _capture->getTimeStamp() &&
// (error_prefix + ": buffer's first motion time stamp is not equal to capture time stamp").c_str());
assert((_capture->getBuffer().front().delta_integr_ - deltaZero()).isZero(Constants::EPS_SMALL) && assert((_capture->getBuffer().front().delta_integr_ - deltaZero()).isZero(Constants::EPS_SMALL) &&
(error_prefix + ": buffer's first motion is not zero!").c_str()); (error_prefix + ": buffer's first motion is not zero!").c_str());
assert(_capture->getBuffer().front().delta_integr_cov_.isZero(Constants::EPS_SMALL) && assert(_capture->getBuffer().front().delta_integr_cov_.isZero(Constants::EPS_SMALL) &&
......
...@@ -66,9 +66,10 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -66,9 +66,10 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
buffer_frame_.select(incoming_ptr_->getTimeStamp(), getTimeTolerance()); buffer_frame_.select(incoming_ptr_->getTimeStamp(), getTimeTolerance());
buffer_frame_.removeUpTo(keyframe_from_callback->getTimeStamp()); buffer_frame_.removeUpTo(keyframe_from_callback->getTimeStamp());
WOLF_DEBUG("PT ", WOLF_DEBUG(getType(),
": '",
getName(), getName(),
" FIRST_TIME_WITH_KEYFRAME: KF", "' FIRST_TIME_WITH_KEYFRAME: KF",
keyframe_from_callback->id(), keyframe_from_callback->id(),
" callback unpacked with ts= ", " callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp()); keyframe_from_callback->getTimeStamp());
...@@ -81,11 +82,15 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -81,11 +82,15 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
// If captures match, then frames must match too // If captures match, then frames must match too
assert(incoming_ptr_->getFrame() != nullptr and incoming_ptr_->getFrame() == keyframe_from_callback and assert(incoming_ptr_->getFrame() != nullptr and incoming_ptr_->getFrame() == keyframe_from_callback and
"The keyframe has a Capture from this sensor, but this capture is not incoming!"); "The keyframe has a Capture from this sensor, but this capture is not incoming!");
WOLF_DEBUG("PT ", getName(), " Incoming capture has been processed previously by another processor!") WOLF_DEBUG(getType(),
": '",
getName(),
"' Incoming capture has been processed previously by another processor!")
} }
else else
{ {
WOLF_DEBUG("PT ", getName(), " Incoming capture had not been processed by any other processor!") WOLF_DEBUG(
getType(), ": '", getName(), "' Incoming capture had not been processed by any other processor!")
// Join KF // Join KF
incoming_ptr_->link(keyframe_from_callback); incoming_ptr_->link(keyframe_from_callback);
...@@ -110,7 +115,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -110,7 +115,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
break; break;
} }
case FIRST_TIME_WITHOUT_KEYFRAME: { case FIRST_TIME_WITHOUT_KEYFRAME: {
WOLF_DEBUG("PT ", getName(), " FIRST_TIME_WITHOUT_KEYFRAME"); WOLF_DEBUG(getType(), ": '", getName(), "' FIRST_TIME_WITHOUT_KEYFRAME");
// Check if incoming has already a Frame // Check if incoming has already a Frame
auto frame_incoming = incoming_ptr_->getFrame(); auto frame_incoming = incoming_ptr_->getFrame();
...@@ -118,7 +123,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -118,7 +123,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
" Incoming capture has been processed and linked by another processor, but no keyframe callback " " Incoming capture has been processed and linked by another processor, but no keyframe callback "
"was received!"); "was received!");
WOLF_DEBUG("PT ", getName(), " Incoming capture has not been processed by another processor!") WOLF_DEBUG(getType(), ": '", getName(), "' Incoming capture has not been processed by another processor!")
// make a new KF at incoming // make a new KF at incoming
FrameBasePtr keyframe = getProblem()->emplaceFrame(incoming_ptr_->getTimeStamp(), getStateKeys()); FrameBasePtr keyframe = getProblem()->emplaceFrame(incoming_ptr_->getTimeStamp(), getStateKeys());
...@@ -158,16 +163,17 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -158,16 +163,17 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
// which happens to be within tolerance of timestamps. // which happens to be within tolerance of timestamps.
// In this case we discard it anyway because we already have a KF in last // In this case we discard it anyway because we already have a KF in last
// and we can't link a capture to two KFs. // and we can't link a capture to two KFs.
WOLF_DEBUG("PT ", WOLF_DEBUG(getType(),
": '",
getName(), getName(),
" SECOND_TIME_WITH_KEYFRAME: KF", "' SECOND_TIME_WITH_KEYFRAME: KF",
keyframe_from_callback->id(), keyframe_from_callback->id(),
" callback unpacked with ts= ", " callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp()); keyframe_from_callback->getTimeStamp());
} }
// Fall through // Fall through
case SECOND_TIME_WITHOUT_KEYFRAME: { case SECOND_TIME_WITHOUT_KEYFRAME: {
WOLF_DEBUG("PT ", getName(), " SECOND_TIME_WITHOUT_KEYFRAME"); WOLF_DEBUG(getType(), ": '", getName(), "' SECOND_TIME_WITHOUT_KEYFRAME");
// Process known information // Process known information
processKnownProfiling(); processKnownProfiling();
...@@ -192,9 +198,10 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -192,9 +198,10 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
FrameBasePtr keyframe_from_callback = buffer_frame_.select(last_ptr_->getTimeStamp(), getTimeTolerance()); FrameBasePtr keyframe_from_callback = buffer_frame_.select(last_ptr_->getTimeStamp(), getTimeTolerance());
buffer_frame_.removeUpTo(keyframe_from_callback->getTimeStamp()); buffer_frame_.removeUpTo(keyframe_from_callback->getTimeStamp());
WOLF_DEBUG("PT ", WOLF_DEBUG(getType(),
": '",
getName(), getName(),
" RUNNING_WITH_KEYFRAME: KF", "' RUNNING_WITH_KEYFRAME: KF",
keyframe_from_callback->id(), keyframe_from_callback->id(),
" callback unpacked with ts= ", " callback unpacked with ts= ",
keyframe_from_callback->getTimeStamp()); keyframe_from_callback->getTimeStamp());
...@@ -208,7 +215,8 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -208,7 +215,8 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
// chack if the received KF has a capture of this sensor, and if it matches with last_ptr // chack if the received KF has a capture of this sensor, and if it matches with last_ptr
if (last_ptr_ == keyframe_from_callback->getCaptureOf(this->getSensor())) if (last_ptr_ == keyframe_from_callback->getCaptureOf(this->getSensor()))
{ {
WOLF_DEBUG("PT ", getName(), " Last capture has been processed previously by another processor!") WOLF_DEBUG(
getType(), ": '", getName(), "' Last capture has been processed previously by another processor!")
// If captures match, then frames must match too // If captures match, then frames must match too
assert(last_ptr_->getFrame() == keyframe_from_callback and assert(last_ptr_->getFrame() == keyframe_from_callback and
...@@ -218,7 +226,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -218,7 +226,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
} }
else else
{ {
WOLF_DEBUG("PT ", getName(), " Last capture had not been processed previously!") WOLF_DEBUG(getType(), ": '", getName(), "' Last capture had not been processed previously!")
// join KF // join KF
last_ptr_->link(keyframe_from_callback); last_ptr_->link(keyframe_from_callback);
...@@ -241,7 +249,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) ...@@ -241,7 +249,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
break; break;
} }
case RUNNING_WITHOUT_KEYFRAME: { case RUNNING_WITHOUT_KEYFRAME: {
WOLF_DEBUG("PT ", getName(), " RUNNING_WITHOUT_KEYFRAME"); WOLF_DEBUG(getType(), ": '", getName(), "' RUNNING_WITHOUT_KEYFRAME");
processKnownProfiling(); processKnownProfiling();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment