mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-05 15:00:33 +00:00
Add configuration parameter PVT.bancroft_init, by default to true, to opt-out for Bancroft initialization in the first iteration of PVT computation
This commit is contained in:
parent
3def3c36cd
commit
51418850bb
@ -4,7 +4,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
)
|
||||
|
||||
[comment]: # (
|
||||
SPDX-FileCopyrightText: 2011-2022 Carles Fernandez-Prades <carles.fernandez@cttc.es>
|
||||
SPDX-FileCopyrightText: 2011-2023 Carles Fernandez-Prades <carles.fernandez@cttc.es>
|
||||
)
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
@ -30,6 +30,11 @@ All notable changes to GNSS-SDR will be documented in this file.
|
||||
- Improved non-coherent acquisition when `Acquisition_XX.blocking=false`.
|
||||
- Implemented processing of BeiDou PRN 34 up to PRN 63 signals.
|
||||
- Implemented Hamming code correction for Glonass navigation message.
|
||||
- Now the first iteration of the PVT computation is initialized by the Bancroft
|
||||
method. This allows to get PVT fixes in some unusual geometries (_e.g._,
|
||||
GNSS-like signals transmitted by LEO satellites). This initialization is
|
||||
performed by default. You can opt-out by setting `PVT.bancroft_init=false` in
|
||||
your configuration file.
|
||||
|
||||
### Improvements in Interoperability:
|
||||
|
||||
|
@ -764,6 +764,8 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
|
||||
const double carrier_phase_error_factor_a = configuration->property(role + ".carrier_phase_error_factor_a", 0.003);
|
||||
const double carrier_phase_error_factor_b = configuration->property(role + ".carrier_phase_error_factor_b", 0.003);
|
||||
|
||||
const bool bancroft_init = configuration->property(role + ".bancroft_init", true);
|
||||
|
||||
snrmask_t snrmask = {{}, {{}, {}}};
|
||||
|
||||
prcopt_t rtklib_configuration_options = {
|
||||
@ -822,7 +824,8 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
|
||||
{{}, {}}, /* odisp[2][6*11] ocean tide loading parameters {rov,base} */
|
||||
{{}, {{}, {}}, {{}, {}}, {}, {}}, /* exterr_t exterr extended receiver error model */
|
||||
0, /* disable L2-AR */
|
||||
{} /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
{}, /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
bancroft_init /* enable Bancroft initialization for the first iteration of the PVT computation, useful in some geometries */
|
||||
};
|
||||
|
||||
rtkinit(&rtk, &rtklib_configuration_options);
|
||||
|
@ -1000,6 +1000,7 @@ typedef struct
|
||||
exterr_t exterr; /* extended receiver error model */
|
||||
int freqopt; /* disable L2-AR */
|
||||
char pppopt[256]; /* ppp option */
|
||||
bool bancroft_init; /* enable Bancroft initialization for the first iteration of the PVT computation */
|
||||
} prcopt_t;
|
||||
|
||||
|
||||
|
@ -714,7 +714,7 @@ int estpos(const obsd_t *obs, int n, const double *rs, const double *dts,
|
||||
}
|
||||
|
||||
// Rough first estimation to initialize the algorithm
|
||||
if (std::sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]) < 0.1)
|
||||
if (opt->bancroft_init && (std::sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]) < 0.1))
|
||||
{
|
||||
arma::mat B = arma::mat(n, 4, arma::fill::zeros);
|
||||
for (i = 0; i < n; i++)
|
||||
|
@ -65,7 +65,7 @@ const prcopt_t PRCOPT_DEFAULT = { /* defaults processing options */
|
||||
{}, {}, {}, /* baseline, ru, rb */
|
||||
{"", ""}, /* anttype */
|
||||
{}, {}, {}, /* antdel, pcv, exsats */
|
||||
0, 0, 0, {"", ""}, {}, 0, {{}, {}}, {{}, {{}, {}}, {{}, {}}, {}, {}}, 0, {}};
|
||||
0, 0, 0, {"", ""}, {}, 0, {{}, {}}, {{}, {{}, {}}, {{}, {}}, {}, {}}, 0, {}, true};
|
||||
|
||||
|
||||
void writesolhead(stream_t *stream, const solopt_t *solopt);
|
||||
|
@ -133,7 +133,8 @@ void NmeaPrinterTest::conf()
|
||||
{{}, {}}, /* odisp[2][6*11] ocean tide loading parameters {rov,base} */
|
||||
{{}, {{}, {}}, {{}, {}}, {}, {}}, /* exterr_t exterr extended receiver error model */
|
||||
0, /* disable L2-AR */
|
||||
{} /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
{}, /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
true /* enable Bancroft initialization for the first iteration of the PVT computation, useful in some geometries */
|
||||
};
|
||||
|
||||
rtkinit(&rtk, &rtklib_configuration_options);
|
||||
|
@ -132,7 +132,8 @@ void RinexPrinterTest::conf()
|
||||
{{}, {}}, /* odisp[2][6*11] ocean tide loading parameters {rov,base} */
|
||||
{{}, {{}, {}}, {{}, {}}, {}, {}}, /* exterr_t exterr extended receiver error model */
|
||||
0, /* disable L2-AR */
|
||||
{} /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
{}, /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
true /* enable Bancroft initialization for the first iteration of the PVT computation, useful in some geometries */
|
||||
};
|
||||
|
||||
rtkinit(&rtk, &rtklib_configuration_options);
|
||||
|
@ -363,7 +363,8 @@ rtk_t configure_rtklib_options()
|
||||
{{}, {}}, /* odisp[2][6*11] ocean tide loading parameters {rov,base} */
|
||||
{{}, {{}, {}}, {{}, {}}, {}, {}}, /* exterr_t exterr extended receiver error model */
|
||||
0, /* disable L2-AR */
|
||||
{} /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
{}, /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */
|
||||
true /* enable Bancroft initialization for the first iteration of the PVT computation, useful in some geometries */
|
||||
};
|
||||
|
||||
rtk_t rtk;
|
||||
|
Loading…
Reference in New Issue
Block a user