mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-13 19:50:34 +00:00
Expose more RTKLIB conf options and add smart guesses for some defaults
This commit is contained in:
parent
04a2ee9c34
commit
c0c1838deb
@ -167,18 +167,22 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
|
||||
//if( (gps_1C_count == 0) && (gps_2S_count == 0) && (gal_1B_count == 0) && (gal_E5a_count == 0) && (gal_E5b_count = 0)) type_of_receiver = 22;
|
||||
|
||||
//RTKLIB PVT solver options
|
||||
int positioning_mode = configuration->property(role + ".positioning_mode", PMODE_SINGLE); /* (PMODE_XXX) see rtklib.h */
|
||||
int positioning_mode = configuration->property(role + ".positioning_mode", PMODE_SINGLE); /* (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h */
|
||||
if( (positioning_mode < 0) || (positioning_mode > 8) )
|
||||
{
|
||||
//warn user and set the default
|
||||
positioning_mode = PMODE_SINGLE;
|
||||
}
|
||||
|
||||
int navigation_system = configuration->property(role + ".navigation_system", SYS_GPS); /* (SYS_XXX) see rtklib.h */
|
||||
if( (navigation_system < 0) || (navigation_system > 8) )
|
||||
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;
|
||||
int navigation_system = configuration->property(role + ".navigation_system", nsys); /* (SYS_XXX) see src/algorithms/libs/rtklib/rtklib.h */
|
||||
/* GPS: 1 SBAS: 2 GPS+SBAS: 3 Galileo: 8 Galileo+GPS: 9 GPS+SBAS+Galileo: 11 All: 255 */
|
||||
if( (navigation_system < 1) || (navigation_system > 255) )
|
||||
{
|
||||
//warn user and set the default
|
||||
navigation_system = SYS_GPS;
|
||||
navigation_system = nsys;
|
||||
}
|
||||
|
||||
double elevation_mask = configuration->property(role + ".elevation_mask", 15.0);
|
||||
@ -188,11 +192,36 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
|
||||
elevation_mask = 15.0;
|
||||
}
|
||||
|
||||
int number_of_frequencies = configuration->property(role + ".num_bands", 2); /* (1:L1, 2:L1+L2, 3:L1+L2+L5) */
|
||||
int num_bands = 0;
|
||||
if ((gps_1C_count > 0) || (gal_1B_count > 0)) num_bands = 1;
|
||||
if (((gps_1C_count > 0) || (gal_1B_count > 0)) && (gps_2S_count > 0) ) num_bands = 2;
|
||||
if (((gps_1C_count > 0) || (gal_1B_count > 0)) && (gps_2S_count > 0) && ((gal_E5a_count > 0) || (gal_E5a_count > 0))) num_bands = 3;
|
||||
int number_of_frequencies = configuration->property(role + ".num_bands", num_bands); /* (1:L1, 2:L1+L2, 3:L1+L2+L5) */
|
||||
if( (number_of_frequencies < 1) || (number_of_frequencies > 3) )
|
||||
{
|
||||
//warn user and set the default
|
||||
number_of_frequencies = 2;
|
||||
number_of_frequencies = num_bands;
|
||||
}
|
||||
|
||||
int trop_model = configuration->property(role + ".trop_model", 0); /* (TROPOPT_XXX) see src/algorithms/libs/rtklib/rtklib.h */
|
||||
if( (trop_model < 0) || (trop_model > 5) )
|
||||
{
|
||||
//warn user and set the default
|
||||
trop_model = 0;
|
||||
}
|
||||
|
||||
int iono_model = configuration->property(role + ".iono_model", 0); /* (IONOOPT_XXX) see src/algorithms/libs/rtklib/rtklib.h */
|
||||
if( (iono_model < 0) || (iono_model > 8) )
|
||||
{
|
||||
//warn user and set the default
|
||||
iono_model = 0; /* 0: ionosphere option: correction off */
|
||||
}
|
||||
|
||||
int dynamics_model = configuration->property(role + ".dynamics_model", 0); /* dynamics model (0:none, 1:velocity, 2:accel) */
|
||||
if( (dynamics_model < 0) || (dynamics_model > 2) )
|
||||
{
|
||||
//warn user and set the default
|
||||
dynamics_model = 0;
|
||||
}
|
||||
|
||||
double bias_0 = configuration->property(role + ".bias_0", 30.0);
|
||||
@ -213,7 +242,11 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
|
||||
|
||||
double sigma_pos = configuration->property(role + ".sigma_pos", 0.0);
|
||||
|
||||
prcopt_t rtklib_configuration_options = {positioning_mode, /* positioning mode (PMODE_XXX) see rtklib.h */
|
||||
double threshold_reject_innovation = configuration->property(role + ".threshold_reject_innovation", 30.0); /* reject threshold of innovation (m) */
|
||||
|
||||
double threshold_reject_gdop = configuration->property(role + ".threshold_reject_gdop", 30.0); /* reject threshold of GDOP */
|
||||
|
||||
prcopt_t rtklib_configuration_options = {positioning_mode, /* positioning mode (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h */
|
||||
0, /* solution type (0:forward,1:backward,2:combined) */
|
||||
number_of_frequencies, /* number of frequencies (1:L1, 2:L1+L2, 3:L1+L2+L5)*/
|
||||
navigation_system, /* navigation system */
|
||||
@ -227,15 +260,15 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
|
||||
0, /* min lock count to fix ambiguity */
|
||||
10, /* min fix count to hold ambiguity */
|
||||
1, /* max iteration to resolve ambiguity */
|
||||
0, /* ionosphere option (IONOOPT_XXX) */
|
||||
0, /* troposphere option (TROPOPT_XXX) */
|
||||
0, /* dynamics model (0:none,1:velociy,2:accel) */
|
||||
iono_model, /* ionosphere option (IONOOPT_XXX) */
|
||||
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 */
|
||||
0, /* code smoothing window size (0:none) */
|
||||
0, /* interpolate reference obs (for post mission) */
|
||||
0, /* SBAS correction options */
|
||||
0, /* SBAS satellite selection (0:all) */
|
||||
0, /* sbssat_t sbssat SBAS correction options */
|
||||
0, /* 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, */
|
||||
@ -250,15 +283,15 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
|
||||
0.0, /* elevation mask to hold ambiguity (deg) */
|
||||
0.05, /* slip threshold of geometry-free phase (m) */
|
||||
30.0, /* max difference of time (sec) */
|
||||
30.0, /* reject threshold of innovation (m) */
|
||||
30.0, /* reject threshold of gdop */
|
||||
threshold_reject_innovation, /* reject threshold of innovation (m) */
|
||||
threshold_reject_gdop, /* reject threshold of gdop */
|
||||
{}, /* 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) */
|
||||
{}, /* 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}} */
|
||||
{}, /* 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, /* initialize by restart */
|
||||
0, /* output single by dgps/float/fix/ppp outage*/
|
||||
|
Loading…
Reference in New Issue
Block a user