diff --git a/conf/File_input/MultiCons/gnss-sdr_GPS_Galileo_VTL.conf b/conf/File_input/MultiCons/gnss-sdr_VTL.conf similarity index 98% rename from conf/File_input/MultiCons/gnss-sdr_GPS_Galileo_VTL.conf rename to conf/File_input/MultiCons/gnss-sdr_VTL.conf index 51ed79ac7..d9c1e2f62 100755 --- a/conf/File_input/MultiCons/gnss-sdr_GPS_Galileo_VTL.conf +++ b/conf/File_input/MultiCons/gnss-sdr_VTL.conf @@ -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 diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.cc b/src/algorithms/PVT/adapters/rtklib_pvt.cc index c3c46761c..2ec93965e 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.cc +++ b/src/algorithms/PVT/adapters/rtklib_pvt.cc @@ -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); diff --git a/src/algorithms/PVT/libs/CMakeLists.txt b/src/algorithms/PVT/libs/CMakeLists.txt index 307f53f68..09a292e73 100755 --- a/src/algorithms/PVT/libs/CMakeLists.txt +++ b/src/algorithms/PVT/libs/CMakeLists.txt @@ -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 ) diff --git a/src/algorithms/PVT/libs/pvt_conf.h b/src/algorithms/PVT/libs/pvt_conf.h index f13a48222..21100f49f 100644 --- a/src/algorithms/PVT/libs/pvt_conf.h +++ b/src/algorithms/PVT/libs/pvt_conf.h @@ -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; diff --git a/src/algorithms/PVT/libs/rtklib_solver.cc b/src/algorithms/PVT/libs/rtklib_solver.cc index 053ffe734..b4dda46dc 100644 --- a/src/algorithms/PVT/libs/rtklib_solver.cc +++ b/src/algorithms/PVT/libs/rtklib_solver.cc @@ -1694,7 +1694,8 @@ bool Rtklib_Solver::get_PVT(const std::map &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 diff --git a/src/algorithms/PVT/libs/vtl_core.cc b/src/algorithms/PVT/libs/vtl_core.cc index 650ff13ee..b5ee689ba 100755 --- a/src/algorithms/PVT/libs/vtl_core.cc +++ b/src/algorithms/PVT/libs/vtl_core.cc @@ -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); diff --git a/src/algorithms/PVT/libs/vtl_data.cc b/src/algorithms/PVT/libs/vtl_data.cc index ccf106fe3..e67a88be5 100755 --- a/src/algorithms/PVT/libs/vtl_data.cc +++ b/src/algorithms/PVT/libs/vtl_data.cc @@ -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(); } \ No newline at end of file diff --git a/src/algorithms/PVT/libs/vtl_data.h b/src/algorithms/PVT/libs/vtl_data.h index 0d6bf0234..30a08c185 100644 --- a/src/algorithms/PVT/libs/vtl_data.h +++ b/src/algorithms/PVT/libs/vtl_data.h @@ -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;