1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-14 12:10:34 +00:00

Expose more RTKLIB parameters

This commit is contained in:
Carles Fernandez 2017-05-02 07:28:54 +02:00
parent 29efbd895b
commit 5581b2f888
2 changed files with 29 additions and 23 deletions

View File

@ -231,7 +231,6 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
In case of RAIM FDE enabled, a satellite is excluded if SSE (sum of squared errors) of residuals is over a threshold. In case of RAIM FDE enabled, a satellite is excluded if SSE (sum of squared errors) of residuals is over a threshold.
The excluded satellite is selected to indicate the minimum SSE. */ The excluded satellite is selected to indicate the minimum SSE. */
int nsys = 0; int nsys = 0;
if ((gps_1C_count > 0) || (gps_2S_count > 0)) nsys += SYS_GPS; if ((gps_1C_count > 0) || (gps_2S_count > 0)) nsys += SYS_GPS;
if ((gal_1B_count > 0) || (gal_E5a_count > 0) || (gal_E5b_count > 0)) nsys += SYS_GAL; if ((gal_1B_count > 0) || (gal_E5a_count > 0) || (gal_E5b_count > 0)) nsys += SYS_GAL;
@ -263,12 +262,13 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
integer_ambiguity_resolution_bds = 1; integer_ambiguity_resolution_bds = 1;
} }
//int max_iter_resolve_ambiguity = configuration->property(role + ".max_iter_resolve_ambiguity", 1); double min_ratio_to_fix_ambiguity = configuration->property(role + ".min_ratio_to_fix_ambiguity", 3.0); /* Set the integer ambiguity validation threshold for ratiotest,
which uses the ratio of squared residuals of the best integer vector to the secondbest vector. */
int min_lock_to_fix_ambiguity = configuration->property(role + ".min_lock_to_fix_ambiguity", 0); /* Set the minimum lock count to fix integer ambiguity. int min_lock_to_fix_ambiguity = configuration->property(role + ".min_lock_to_fix_ambiguity", 0); /* Set the minimum lock count to fix integer ambiguity.
If the lock count is less than the value, the ambiguity is excluded from the fixed integer vector. */ If the lock count is less than the value, the ambiguity is excluded from the fixed integer vector. */
double min_elevation_to_fix_ambiguity = configuration->property(role + ".min_elevation_to_fix_ambiguity", 0.0); /* Set the minimum eveation (deg) to fix integer ambiguity. double min_elevation_to_fix_ambiguity = configuration->property(role + ".min_elevation_to_fix_ambiguity", 0.0); /* Set the minimum elevation (deg) to fix integer ambiguity.
If the elevation of the satellite is less than the value, the ambiguity is excluded from the fixed integer vector. */ If the elevation of the satellite is less than the value, the ambiguity is excluded from the fixed integer vector. */
int outage_reset_ambiguity = configuration->property(role + ".outage_reset_ambiguity", 5); /* Set the outage count to reset ambiguity. If the data outage count is over the value, the estimated ambiguity is reset to the initial value. */ int outage_reset_ambiguity = configuration->property(role + ".outage_reset_ambiguity", 5); /* Set the outage count to reset ambiguity. If the data outage count is over the value, the estimated ambiguity is reset to the initial value. */
@ -279,6 +279,12 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
double threshold_reject_innovation = configuration->property(role + ".threshold_reject_innovation", 30.0); /* reject threshold of innovation (m). If the innovation is over the value, the observable is excluded for the estimation process as an outlier. */ double threshold_reject_innovation = configuration->property(role + ".threshold_reject_innovation", 30.0); /* reject threshold of innovation (m). If the innovation is over the value, the observable is excluded for the estimation process as an outlier. */
int number_filter_iter = configuration->property(role + ".number_filter_iter", 1); /* Set the number of iteration in the measurement update of the estimation filter.
If the baseline length is very short like 1 m, the iteration may be effective to handle
the nonlinearity of measurement equation. */
/// Statistics /// Statistics
double bias_0 = configuration->property(role + ".bias_0", 30.0); double bias_0 = configuration->property(role + ".bias_0", 30.0);
@ -319,11 +325,11 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
trop_model, /* troposphere option (TROPOPT_XXX) */ trop_model, /* troposphere option (TROPOPT_XXX) */
dynamics_model, /* dynamics model (0:none, 1:velocity, 2:accel) */ dynamics_model, /* dynamics model (0:none, 1:velocity, 2:accel) */
0, /* earth tide correction (0:off,1:solid,2:solid+otl+pole) */ 0, /* earth tide correction (0:off,1:solid,2:solid+otl+pole) */
1, /* number of filter iteration */ number_filter_iter, /* number of filter iteration */
0, /* code smoothing window size (0:none) */ 0, /* code smoothing window size (0:none) */
0, /* interpolate reference obs (for post mission) */ 0, /* interpolate reference obs (for post mission) */
0, /* sbssat_t sbssat SBAS correction options */ 0, /* sbssat_t sbssat SBAS correction options */
0, /* sbsion_t sbsion[MAXBAND+1] SBAS satellite selection (0:all) */ {}, /* sbsion_t sbsion[MAXBAND+1] SBAS satellite selection (0:all) */
0, /* rover position for fixed mode */ 0, /* rover position for fixed mode */
0, /* base position for relative mode */ 0, /* base position for relative mode */
/* 0:pos in prcopt, 1:average of single pos, */ /* 0:pos in prcopt, 1:average of single pos, */
@ -333,7 +339,7 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
{bias_0,iono_0,trop_0}, /* std[3]: initial-state std [0]bias,[1]iono [2]trop*/ {bias_0,iono_0,trop_0}, /* std[3]: initial-state std [0]bias,[1]iono [2]trop*/
{sigma_bias,sigma_iono,sigma_trop,sigma_acch,sigma_accv,sigma_pos}, /* prn[6] process-noise std */ {sigma_bias,sigma_iono,sigma_trop,sigma_acch,sigma_accv,sigma_pos}, /* prn[6] process-noise std */
5e-12, /* sclkstab: satellite clock stability (sec/sec) */ 5e-12, /* sclkstab: satellite clock stability (sec/sec) */
{3.0,0.9999,0.25,0.1,0.05}, /* thresar[8]: AR validation threshold */ {min_ratio_to_fix_ambiguity,0.9999,0.25,0.1,0.05,0.0,0.0,0.0}, /* thresar[8]: AR validation threshold */
min_elevation_to_fix_ambiguity, /* elevation mask of AR for rising satellite (deg) */ min_elevation_to_fix_ambiguity, /* elevation mask of AR for rising satellite (deg) */
0.0, /* elevation mask to hold ambiguity (deg) */ 0.0, /* elevation mask to hold ambiguity (deg) */
slip_threshold, /* slip threshold of geometry-free phase (m) */ slip_threshold, /* slip threshold of geometry-free phase (m) */
@ -343,8 +349,8 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
{}, /* double baseline[2] baseline length constraint {const,sigma} (m) */ {}, /* double baseline[2] baseline length constraint {const,sigma} (m) */
{}, /* double ru[3] rover position for fixed mode {x,y,z} (ecef) (m) */ {}, /* double ru[3] rover position for fixed mode {x,y,z} (ecef) (m) */
{}, /* double rb[3] base position for relative mode {x,y,z} (ecef) (m) */ {}, /* double rb[3] base position for relative mode {x,y,z} (ecef) (m) */
{"",""}, /* char anttype[2][MAXANT] antenna types {rover,base} */ {"",""}, /* char anttype[2][MAXANT] antenna types {rover,base} */
{}, /* double antdel[2][3] antenna delta {{rov_e,rov_n,rov_u},{ref_e,ref_n,ref_u}} */ {{},{}}, /* double antdel[2][3] antenna delta {{rov_e,rov_n,rov_u},{ref_e,ref_n,ref_u}} */
{}, /* pcv_t pcvr[2] receiver antenna parameters {rov,base} */ {}, /* pcv_t pcvr[2] receiver antenna parameters {rov,base} */
{}, /* unsigned char exsats[MAXSAT] excluded satellites (1:excluded, 2:included) */ {}, /* unsigned char exsats[MAXSAT] excluded satellites (1:excluded, 2:included) */
0, /* max averaging epoches */ 0, /* max averaging epoches */

View File

@ -270,12 +270,12 @@ const int TROPOPT_EST = 3; //!< troposphere option: ZTD estimation
const int TROPOPT_ESTG = 4; //!< troposphere option: ZTD+grad estimation const int TROPOPT_ESTG = 4; //!< troposphere option: ZTD+grad estimation
const int TROPOPT_ZTD = 5; //!< troposphere option: ZTD correction const int TROPOPT_ZTD = 5; //!< troposphere option: ZTD correction
const unsigned int EPHOPT_BRDC = 0; //!< ephemeris option: broadcast ephemeris const int EPHOPT_BRDC = 0; //!< ephemeris option: broadcast ephemeris
const unsigned int EPHOPT_PREC = 1; //!< ephemeris option: precise ephemeris const int EPHOPT_PREC = 1; //!< ephemeris option: precise ephemeris
const unsigned int EPHOPT_SBAS = 2; //!< ephemeris option: broadcast + SBAS const int EPHOPT_SBAS = 2; //!< ephemeris option: broadcast + SBAS
const unsigned int EPHOPT_SSRAPC = 3; //!< ephemeris option: broadcast + SSR_APC const int EPHOPT_SSRAPC = 3; //!< ephemeris option: broadcast + SSR_APC
const unsigned int EPHOPT_SSRCOM = 4; //!< ephemeris option: broadcast + SSR_COM const int EPHOPT_SSRCOM = 4; //!< ephemeris option: broadcast + SSR_COM
const unsigned int EPHOPT_LEX = 5; //!< ephemeris option: QZSS LEX ephemeris const int EPHOPT_LEX = 5; //!< ephemeris option: QZSS LEX ephemeris
const double EFACT_GPS = 1.0; //!< error factor: GPS const double EFACT_GPS = 1.0; //!< error factor: GPS
const double EFACT_GLO = 1.5; //!< error factor: GLONASS const double EFACT_GLO = 1.5; //!< error factor: GLONASS
@ -289,12 +289,12 @@ const int MAXEXFILE = 1024; //!< max number of expanded files
const double MAXSBSAGEF = 30.0; //!< max age of SBAS fast correction (s) const double MAXSBSAGEF = 30.0; //!< max age of SBAS fast correction (s)
const double MAXSBSAGEL = 1800.0; //!< max age of SBAS long term corr (s) const double MAXSBSAGEL = 1800.0; //!< max age of SBAS long term corr (s)
const unsigned int ARMODE_OFF = 0; //!< AR mode: off const int ARMODE_OFF = 0; //!< AR mode: off
const unsigned int ARMODE_CONT = 1; //!< AR mode: continuous const int ARMODE_CONT = 1; //!< AR mode: continuous
const unsigned int ARMODE_INST = 2; //!< AR mode: instantaneous const int ARMODE_INST = 2; //!< AR mode: instantaneous
const unsigned int ARMODE_FIXHOLD = 3; //!< AR mode: fix and hold const int ARMODE_FIXHOLD = 3; //!< AR mode: fix and hold
const unsigned int ARMODE_WLNL = 4; //!< AR mode: wide lane/narrow lane const int ARMODE_WLNL = 4; //!< AR mode: wide lane/narrow lane
const unsigned int ARMODE_TCAR = 5; //!< AR mode: triple carrier ar const int ARMODE_TCAR = 5; //!< AR mode: triple carrier ar
const int POSOPT_RINEX = 3; //!< pos option: rinex header pos */ const int POSOPT_RINEX = 3; //!< pos option: rinex header pos */
@ -444,7 +444,7 @@ typedef struct { /* SBAS ephemeris type */
typedef struct { /* norad two line element data type */ typedef struct { /* norad two line element data type */
char name [32]; /* common name */ char name [32]; /* common name */
char alias[32]; /* alias name */ char alias[32]; /* alias name */
char satno[16]; /* satellilte catalog number */ char satno[16]; /* satellite catalog number */
char satclass; /* classification */ char satclass; /* classification */
char desig[16]; /* international designator */ char desig[16]; /* international designator */
gtime_t epoch; /* element set epoch (UTC) */ gtime_t epoch; /* element set epoch (UTC) */
@ -734,8 +734,8 @@ typedef struct { /* solution type */
unsigned char stat; /* solution status (SOLQ_???) */ unsigned char stat; /* solution status (SOLQ_???) */
unsigned char ns; /* number of valid satellites */ unsigned char ns; /* number of valid satellites */
float age; /* age of differential (s) */ float age; /* age of differential (s) */
float ratio; /* AR ratio factor for valiation */ float ratio; /* AR ratio factor for validation */
float thres; /* AR ratio threshold for valiation */ float thres; /* AR ratio threshold for validation */
} sol_t; } sol_t;