mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 15:23:04 +00:00 
			
		
		
		
	Expose more RTKLIB parameters
This commit is contained in:
		| @@ -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. | ||||
|                          The excluded satellite is selected to indicate the minimum SSE. */ | ||||
|  | ||||
|  | ||||
|     int nsys = 0; | ||||
|     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; | ||||
| @@ -263,12 +262,13 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration, | ||||
|             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 ratio‐test, | ||||
|                                                                                                                which uses the ratio of squared residuals of the best integer vector to the second‐best 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. | ||||
|                                                                                                          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. */ | ||||
|  | ||||
|     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. */ | ||||
|  | ||||
|     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 | ||||
|     double bias_0 = configuration->property(role + ".bias_0", 30.0); | ||||
|  | ||||
| @@ -319,11 +325,11 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration, | ||||
|             trop_model,      /* troposphere option (TROPOPT_XXX) */ | ||||
|             dynamics_model,  /* dynamics model (0:none, 1:velocity, 2:accel) */ | ||||
|             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,   /* interpolate reference obs (for post mission) */ | ||||
|             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,   /* base position for relative mode */ | ||||
|                  /*    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*/ | ||||
|             {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) */ | ||||
|             {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) */ | ||||
|             0.0,   /* elevation mask to hold ambiguity (deg) */ | ||||
|             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 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) */ | ||||
|             {"",""},   /* 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}} */ | ||||
|             {"",""},    /* 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}} */ | ||||
|             {},    /* pcv_t pcvr[2]   receiver antenna parameters {rov,base} */ | ||||
|             {},    /* unsigned char exsats[MAXSAT]  excluded satellites (1:excluded, 2:included) */ | ||||
|             0,     /* max averaging epoches */ | ||||
|   | ||||
| @@ -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_ZTD = 5;      //!<    troposphere option: ZTD correction | ||||
|  | ||||
| const unsigned int EPHOPT_BRDC = 0;      //!<    ephemeris option: broadcast ephemeris | ||||
| const unsigned int EPHOPT_PREC = 1;      //!<    ephemeris option: precise ephemeris | ||||
| const unsigned int EPHOPT_SBAS = 2;      //!<    ephemeris option: broadcast + SBAS | ||||
| const unsigned int EPHOPT_SSRAPC = 3;    //!<    ephemeris option: broadcast + SSR_APC | ||||
| const unsigned int EPHOPT_SSRCOM = 4;    //!<    ephemeris option: broadcast + SSR_COM | ||||
| const unsigned int EPHOPT_LEX = 5;       //!<    ephemeris option: QZSS LEX ephemeris | ||||
| const int EPHOPT_BRDC = 0;      //!<    ephemeris option: broadcast ephemeris | ||||
| const int EPHOPT_PREC = 1;      //!<    ephemeris option: precise ephemeris | ||||
| const int EPHOPT_SBAS = 2;      //!<    ephemeris option: broadcast + SBAS | ||||
| const int EPHOPT_SSRAPC = 3;    //!<    ephemeris option: broadcast + SSR_APC | ||||
| const int EPHOPT_SSRCOM = 4;    //!<    ephemeris option: broadcast + SSR_COM | ||||
| const int EPHOPT_LEX = 5;       //!<    ephemeris option: QZSS LEX ephemeris | ||||
|  | ||||
| const double EFACT_GPS = 1.0;            //!<    error factor: GPS | ||||
| 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 MAXSBSAGEL = 1800.0;        //!<    max age of SBAS long term corr (s) | ||||
|  | ||||
| const unsigned int ARMODE_OFF = 0;       //!< AR mode: off | ||||
| const unsigned int ARMODE_CONT = 1;      //!< AR mode: continuous | ||||
| const unsigned int ARMODE_INST = 2;      //!< AR mode: instantaneous | ||||
| const unsigned int ARMODE_FIXHOLD = 3;   //!< AR mode: fix and hold | ||||
| const unsigned int ARMODE_WLNL = 4;      //!< AR mode: wide lane/narrow lane | ||||
| const unsigned int ARMODE_TCAR = 5;      //!< AR mode: triple carrier ar | ||||
| const int ARMODE_OFF = 0;       //!< AR mode: off | ||||
| const int ARMODE_CONT = 1;      //!< AR mode: continuous | ||||
| const int ARMODE_INST = 2;      //!< AR mode: instantaneous | ||||
| const int ARMODE_FIXHOLD = 3;   //!< AR mode: fix and hold | ||||
| const int ARMODE_WLNL = 4;      //!< AR mode: wide lane/narrow lane | ||||
| const int ARMODE_TCAR = 5;      //!< AR mode: triple carrier ar | ||||
|  | ||||
| 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 */ | ||||
|     char name [32];     /* common name */ | ||||
|     char alias[32];     /* alias name */ | ||||
|     char satno[16];     /* satellilte catalog number */ | ||||
|     char satno[16];     /* satellite catalog number */ | ||||
|     char satclass;      /* classification */ | ||||
|     char desig[16];     /* international designator */ | ||||
|     gtime_t epoch;      /* element set epoch (UTC) */ | ||||
| @@ -734,8 +734,8 @@ typedef struct {        /* solution type */ | ||||
|     unsigned char stat; /* solution status (SOLQ_???) */ | ||||
|     unsigned char ns;   /* number of valid satellites */ | ||||
|     float age;          /* age of differential (s) */ | ||||
|     float ratio;        /* AR ratio factor for valiation */ | ||||
|     float thres;        /* AR ratio threshold for valiation */ | ||||
|     float ratio;        /* AR ratio factor for validation */ | ||||
|     float thres;        /* AR ratio threshold for validation */ | ||||
| } sol_t; | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez