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

added distance_traveled param and corresponding voting for KF condition

parent feb38043
No related branches found
No related tags found
No related merge requests found
...@@ -18,18 +18,21 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsGnssFix); ...@@ -18,18 +18,21 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsGnssFix);
struct ProcessorParamsGnssFix : public ProcessorParamsBase struct ProcessorParamsGnssFix : public ProcessorParamsBase
{ {
Scalar time_th; Scalar time_th;
Scalar dist_traveled;
Scalar enu_map_init_dist_min; Scalar enu_map_init_dist_min;
ProcessorParamsGnssFix() = default; ProcessorParamsGnssFix() = default;
ProcessorParamsGnssFix(std::string _unique_name, const paramsServer& _server): ProcessorParamsGnssFix(std::string _unique_name, const paramsServer& _server):
ProcessorParamsBase(_unique_name, _server) ProcessorParamsBase(_unique_name, _server)
{ {
time_th = _server.getParam<Scalar>(_unique_name + "/time_th"); time_th = _server.getParam<Scalar>(_unique_name + "/time_th");
dist_traveled = _server.getParam<Scalar>(_unique_name + "/dist_traveled");
enu_map_init_dist_min = _server.getParam<Scalar>(_unique_name + "/enu_map_init_dist_min"); enu_map_init_dist_min = _server.getParam<Scalar>(_unique_name + "/enu_map_init_dist_min");
} }
std::string print() std::string print()
{ {
return "\n" + ProcessorParamsBase::print() return "\n" + ProcessorParamsBase::print()
+ "time_th: " + std::to_string(time_th) + "\n"; + "time_th: " + std::to_string(time_th) + "\n";
+ "dist_traveled: " + std::to_string(dist_traveled) + "\n";
+ "enu_map_init_dist_min: " + std::to_string(enu_map_init_dist_min) + "\n"; + "enu_map_init_dist_min: " + std::to_string(enu_map_init_dist_min) + "\n";
} }
}; };
......
...@@ -18,18 +18,21 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsGnssSingleDiff); ...@@ -18,18 +18,21 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsGnssSingleDiff);
struct ProcessorParamsGnssSingleDiff : public ProcessorParamsBase struct ProcessorParamsGnssSingleDiff : public ProcessorParamsBase
{ {
Scalar time_th; Scalar time_th;
Scalar dist_traveled;
Scalar enu_map_init_dist_min; Scalar enu_map_init_dist_min;
ProcessorParamsGnssSingleDiff() = default; ProcessorParamsGnssSingleDiff() = default;
ProcessorParamsGnssSingleDiff(std::string _unique_name, const paramsServer& _server): ProcessorParamsGnssSingleDiff(std::string _unique_name, const paramsServer& _server):
ProcessorParamsBase(_unique_name, _server) ProcessorParamsBase(_unique_name, _server)
{ {
time_th = _server.getParam<Scalar>(_unique_name + "/time_th"); time_th = _server.getParam<Scalar>(_unique_name + "/time_th");
dist_traveled = _server.getParam<Scalar>(_unique_name + "/dist_traveled");
enu_map_init_dist_min = _server.getParam<Scalar>(_unique_name + "/enu_map_init_dist_min"); enu_map_init_dist_min = _server.getParam<Scalar>(_unique_name + "/enu_map_init_dist_min");
} }
std::string print() std::string print()
{ {
return "\n" + ProcessorParamsBase::print() return "\n" + ProcessorParamsBase::print()
+ "time_th: " + std::to_string(time_th) + "\n"; + "time_th: " + std::to_string(time_th) + "\n";
+ "dist_traveled: " + std::to_string(dist_traveled) + "\n";
+ "enu_map_init_dist_min: " + std::to_string(enu_map_init_dist_min) + "\n"; + "enu_map_init_dist_min: " + std::to_string(enu_map_init_dist_min) + "\n";
} }
}; };
......
...@@ -145,6 +145,10 @@ bool ProcessorGnssFix::voteForKeyFrame() ...@@ -145,6 +145,10 @@ bool ProcessorGnssFix::voteForKeyFrame()
if (!last_KF_ || (incoming_capture_->getTimeStamp() - last_KF_->getTimeStamp()) > params_gnss_->time_th) if (!last_KF_ || (incoming_capture_->getTimeStamp() - last_KF_->getTimeStamp()) > params_gnss_->time_th)
return true; return true;
// Distance criterion
if ((incoming_capture_->getFrame()->getP()->getState() - last_KF_->getP()->getState()).norm() > params_gnss_->dist_traveled)
return true;
// TODO: more alternatives? // TODO: more alternatives?
// otherwise // otherwise
......
...@@ -101,6 +101,12 @@ bool ProcessorGnssSingleDiff::voteForKeyFrame() ...@@ -101,6 +101,12 @@ bool ProcessorGnssSingleDiff::voteForKeyFrame()
if (last_KF_==nullptr || (last_KF_->getTimeStamp() - incoming_capture_->getTimeStamp()) > params_gnss_->time_th) if (last_KF_==nullptr || (last_KF_->getTimeStamp() - incoming_capture_->getTimeStamp()) > params_gnss_->time_th)
return true; return true;
// Distance criterion
std::cout << "params_gnss_->dist_traveled" << params_gnss_->dist_traveled << std::endl;
std::cout << "incoming_capture_->getData().norm()" << incoming_capture_->getData().norm() << std::endl;
if (incoming_capture_->getData().norm() > params_gnss_->dist_traveled)
return true;
// TODO: more alternatives? // TODO: more alternatives?
// otherwise // otherwise
......
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