From 4de5f70de3f28827cc9309dcb9199741d2c0161e Mon Sep 17 00:00:00 2001 From: joanvallve <jvallve@iri.upc.edu> Date: Thu, 18 Jun 2020 16:32:29 +0200 Subject: [PATCH] remove outliers pseudoranges with fix/state optional --- include/gnss/processor/processor_tracker_gnss.h | 11 ++++++----- src/processor/processor_tracker_gnss.cpp | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/gnss/processor/processor_tracker_gnss.h b/include/gnss/processor/processor_tracker_gnss.h index 45e98bf20..2339456f7 100644 --- a/include/gnss/processor/processor_tracker_gnss.h +++ b/include/gnss/processor/processor_tracker_gnss.h @@ -17,7 +17,7 @@ struct ParamsProcessorTrackerGnss : public ParamsProcessorTrackerFeature GnssUtils::Options gnss_opt; GnssUtils::Options fix_opt{GnssUtils::default_options}; double max_time_span; - bool remove_outliers, remove_outliers_tdcp; + bool remove_outliers, remove_outliers_tdcp, remove_outliers_with_fix; double outlier_residual_th; bool init_frames; @@ -25,10 +25,11 @@ struct ParamsProcessorTrackerGnss : public ParamsProcessorTrackerFeature ParamsProcessorTrackerGnss(std::string _unique_name, const ParamsServer& _server): ParamsProcessorTrackerFeature(_unique_name, _server) { - remove_outliers = _server.getParam<bool> (prefix + _unique_name + "/remove_outliers"); - outlier_residual_th = _server.getParam<double> (prefix + _unique_name + "/outlier_residual_th"); - init_frames = _server.getParam<bool> (prefix + _unique_name + "/init_frames"); - max_time_span = _server.getParam<double> (prefix + _unique_name + "/keyframe_vote/max_time_span"); + remove_outliers = _server.getParam<bool> (prefix + _unique_name + "/remove_outliers"); + remove_outliers_with_fix = _server.getParam<bool> (prefix + _unique_name + "/remove_outliers_with_fix"); + outlier_residual_th = _server.getParam<double> (prefix + _unique_name + "/outlier_residual_th"); + init_frames = _server.getParam<bool> (prefix + _unique_name + "/init_frames"); + max_time_span = _server.getParam<double> (prefix + _unique_name + "/keyframe_vote/max_time_span"); // GNSS OPTIONS (see rtklib.h) gnss_opt.sateph = _server.getParam<int> (prefix + _unique_name + "/gnss/sateph"); // satellite ephemeris/clock (0:broadcast ephemeris,1:precise ephemeris,2:broadcast + SBAS,3:ephemeris option: broadcast + SSR_APC,4:broadcast + SSR_COM,5: QZSS LEX ephemeris diff --git a/src/processor/processor_tracker_gnss.cpp b/src/processor/processor_tracker_gnss.cpp index 72046d47e..68991ea0d 100644 --- a/src/processor/processor_tracker_gnss.cpp +++ b/src/processor/processor_tracker_gnss.cpp @@ -338,7 +338,7 @@ void ProcessorTrackerGnss::removeOutliers(FactorBasePtrList fac_list, CaptureBas // state for pseudoranges is fix solution if OK - if (cap == last_ptr_ and fix_last_.stat != 0) + if (cap == last_ptr_ and fix_last_.stat != 0 and params_tracker_gnss_->remove_outliers_with_fix) { WOLF_DEBUG("OUTLIERS COMPUTED USING fix_last"); x = sensor_gnss_->getREnuMap().transpose() * (sensor_gnss_->getREnuEcef() * fix_last_.pos + sensor_gnss_->gettEnuEcef() - sensor_gnss_->gettEnuMap()); -- GitLab