mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-12-12 11:38:06 +00:00
feat: add config parameters for VDLL and VPLL
This commit is contained in:
committed by
Carles Fernandez
parent
85debfea6d
commit
629656c9d3
@@ -239,7 +239,8 @@ PVT.kf_system_ecef_pos_sd_m=0.001
|
||||
;# VECTOR TRACKING CONFIG
|
||||
PVT.enable_pvt_vtl=true ; enable/disable VTL
|
||||
PVT.enable_pvt_output_vtl=true ; enable/disable receiver to use VTL solution
|
||||
PVT.enable_pvt_closure_vtl=true ; enable/disable VTL feedback to tracking loops
|
||||
PVT.enable_VDLL_vtl=true ; enable/disable vectorized DLL
|
||||
PVT.enable_VPLL_vtl=false ; enable/disable vectorized PLL
|
||||
PVT.vtl_kinematic=false ; enable/disable kinematic model
|
||||
PVT.vtl_init_pos_ecef_sd_m=10.0
|
||||
PVT.vtl_init_vel_ecef_sd_ms=5.0
|
||||
@@ -101,7 +101,8 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
|
||||
const int gal_E6_count = configuration->property("Channels_E6.count", 0);
|
||||
pvt_output_parameters.enable_pvt_vtl = configuration->property(role + ".enable_pvt_vtl", false);
|
||||
pvt_output_parameters.enable_pvt_output_vtl = configuration->property(role + ".enable_pvt_output_vtl", false);
|
||||
pvt_output_parameters.enable_pvt_closure_vtl = configuration->property(role + ".enable_pvt_closure_vtl", false);
|
||||
pvt_output_parameters.enable_VDLL_vtl = configuration->property(role + ".enable_VDLL_vtl", false);
|
||||
pvt_output_parameters.enable_VPLL_vtl = configuration->property(role + ".enable_VPLL_vtl", false);
|
||||
pvt_output_parameters.vtl_kinematic = configuration->property(role + ".vtl_kinematic", false);
|
||||
pvt_output_parameters.vtl_dump = configuration->property(role + ".vtl_dump", false);
|
||||
pvt_output_parameters.vtl_dump_filename = configuration->property(role + ".vtl_dump_filename", default_vtl_dump_filename);
|
||||
|
||||
@@ -25,7 +25,6 @@ set(PVT_LIB_SOURCES
|
||||
geohash.cc
|
||||
pvt_kf.cc
|
||||
signal_enabled_flags.cc
|
||||
receiver_type.cc
|
||||
vtl_data.cc
|
||||
vtl_core.cc
|
||||
)
|
||||
|
||||
@@ -110,7 +110,8 @@ public:
|
||||
// PVT VTL parameters
|
||||
bool enable_pvt_vtl = false;
|
||||
bool enable_pvt_output_vtl = false;
|
||||
bool enable_pvt_closure_vtl = false;
|
||||
bool enable_VDLL_vtl = false;
|
||||
bool enable_VPLL_vtl = false;
|
||||
bool vtl_kinematic = false;
|
||||
bool vtl_dump = false;
|
||||
std::string vtl_dump_filename;
|
||||
|
||||
@@ -1694,7 +1694,8 @@ bool Rtklib_Solver::get_PVT(const std::map<int, Gnss_Synchro> &gnss_observables_
|
||||
// needs at least one vtl epoch to have feedback
|
||||
if ((vtl_epoch >= 20) && (!vtl_data->new_ch(ch_id))) // close loop after 20 epochs
|
||||
{
|
||||
vtl_data->loop_closure(ch_id) = d_conf.enable_pvt_closure_vtl ? 1 : 0;
|
||||
vtl_data->enable_VDLL(ch_id) = d_conf.enable_VDLL_vtl ? 1 : 0;
|
||||
vtl_data->enable_VPLL(ch_id) = d_conf.enable_VPLL_vtl ? 1 : 0;
|
||||
}
|
||||
|
||||
// in dual-frequency get channel info from both frequencies
|
||||
|
||||
@@ -445,11 +445,11 @@ void Vtl_Core::send_vtl_feedback(const Vtl_Data &rtk_data)
|
||||
trk_cmd.prn_id = rtk_data.sv_id(aidx(i));
|
||||
trk_cmd.ch_sample_counter = rtk_data.ch_sample_counter(aidx(i));
|
||||
// PLL
|
||||
trk_cmd.enable_pll_vtl_feedack = false;
|
||||
trk_cmd.enable_pll_vtl_feedack = rtk_data.enable_VPLL(aidx(i));
|
||||
trk_cmd.pll_vtl_freq_hz = -ekf_updt_comp_Z(aidx(i) + N_ch) / carrier_lambda; // pseudorange rate
|
||||
trk_cmd.carrier_freq_rate_hz_s = 0; // pseudorange acceleration
|
||||
// DLL
|
||||
trk_cmd.enable_dll_vtl_feedack = rtk_data.loop_closure(aidx(i)); // VDLL only
|
||||
trk_cmd.enable_dll_vtl_feedack = rtk_data.enable_VDLL(aidx(i)); // VDLL
|
||||
trk_cmd.dll_vtl_freq_hz = code_freq - ekf_updt_comp_Z(aidx(i) + N_ch) * range_factor; // pseudorange rate
|
||||
|
||||
trk_cmd_outs.push_back(trk_cmd);
|
||||
|
||||
@@ -52,7 +52,8 @@ void Vtl_Data::init_storage(int N_sv)
|
||||
new_ch = arma::vec(N_sv);
|
||||
old_ch = arma::vec(N_sv);
|
||||
|
||||
loop_closure = arma::vec(N_sv);
|
||||
enable_VDLL = arma::vec(N_sv);
|
||||
enable_VPLL = arma::vec(N_sv);
|
||||
|
||||
rx_time = 0.0;
|
||||
dt_s = 0.0;
|
||||
@@ -63,5 +64,6 @@ void Vtl_Data::clear_storage()
|
||||
active_ch.zeros();
|
||||
new_ch.zeros();
|
||||
old_ch.zeros();
|
||||
loop_closure.zeros();
|
||||
enable_VDLL.zeros();
|
||||
enable_VPLL.zeros();
|
||||
}
|
||||
@@ -74,7 +74,8 @@ public:
|
||||
u_int8_t active_N_gps_ch; // active gps channels
|
||||
u_int8_t active_N_gal_ch; // active gps channels
|
||||
|
||||
arma::colvec loop_closure; // vtl loop closure
|
||||
arma::colvec enable_VDLL; // vtl VDLL closure
|
||||
arma::colvec enable_VPLL; // vtl VDLL closure
|
||||
|
||||
double rx_time;
|
||||
double dt_s;
|
||||
|
||||
Reference in New Issue
Block a user