mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-11-14 13:54:57 +00:00
Adding TrackingCmd class to VTL engine
This commit is contained in:
parent
1929183e39
commit
ccf2b830a2
@ -465,11 +465,6 @@ Monitor_Pvt Rtklib_Solver::get_monitor_pvt() const
|
|||||||
return d_monitor_pvt;
|
return d_monitor_pvt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void get_vtl_data()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Rtklib_Solver::get_PVT(const std::map<int, Gnss_Synchro> &gnss_observables_map, bool flag_averaging, bool get_vtl_data)
|
bool Rtklib_Solver::get_PVT(const std::map<int, Gnss_Synchro> &gnss_observables_map, bool flag_averaging, bool get_vtl_data)
|
||||||
{
|
{
|
||||||
std::map<int, Gnss_Synchro>::const_iterator gnss_observables_iter;
|
std::map<int, Gnss_Synchro>::const_iterator gnss_observables_iter;
|
||||||
@ -1041,7 +1036,7 @@ bool Rtklib_Solver::get_PVT(const std::map<int, Gnss_Synchro> &gnss_observables_
|
|||||||
Vtl_Data new_vtl_data;
|
Vtl_Data new_vtl_data;
|
||||||
new_vtl_data.init_storage(n_sats);
|
new_vtl_data.init_storage(n_sats);
|
||||||
new_vtl_data.epoch_tow_s = gnss_observables_map.cbegin()->second.RX_time;
|
new_vtl_data.epoch_tow_s = gnss_observables_map.cbegin()->second.RX_time;
|
||||||
|
new_vtl_data.sample_counter = gnss_observables_map.cbegin()->second.Tracking_sample_counter; // TODO: check if the different tracking instants (different sample_counters) affect the VTL commands
|
||||||
for (int n = 0; n < n_sats; n++)
|
for (int n = 0; n < n_sats; n++)
|
||||||
{
|
{
|
||||||
new_vtl_data.sat_p(n, 0) = rs[0 + 6 * n];
|
new_vtl_data.sat_p(n, 0) = rs[0 + 6 * n];
|
||||||
|
@ -88,10 +88,8 @@ public:
|
|||||||
|
|
||||||
bool get_PVT(const std::map<int, Gnss_Synchro>& gnss_observables_map, bool flag_averaging, bool get_vtl_data);
|
bool get_PVT(const std::map<int, Gnss_Synchro>& gnss_observables_map, bool flag_averaging, bool get_vtl_data);
|
||||||
|
|
||||||
void get_vtl_data();
|
|
||||||
Vtl_Data vtl_data;
|
Vtl_Data vtl_data;
|
||||||
|
|
||||||
|
|
||||||
double get_hdop() const override;
|
double get_hdop() const override;
|
||||||
double get_vdop() const override;
|
double get_vdop() const override;
|
||||||
double get_pdop() const override;
|
double get_pdop() const override;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
Vtl_Data::Vtl_Data()
|
Vtl_Data::Vtl_Data()
|
||||||
{
|
{
|
||||||
epoch_tow_s = 0;
|
epoch_tow_s = 0;
|
||||||
|
sample_counter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vtl_Data::init_storage(int n_sats)
|
void Vtl_Data::init_storage(int n_sats)
|
||||||
@ -33,11 +34,12 @@ void Vtl_Data::init_storage(int n_sats)
|
|||||||
doppler_hz = arma::vec(n_sats);
|
doppler_hz = arma::vec(n_sats);
|
||||||
carrier_phase_rads = arma::vec(n_sats);
|
carrier_phase_rads = arma::vec(n_sats);
|
||||||
epoch_tow_s = 0;
|
epoch_tow_s = 0;
|
||||||
|
sample_counter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vtl_Data::debug_print()
|
void Vtl_Data::debug_print()
|
||||||
{
|
{
|
||||||
std::cout << "vtl_data debug print at TOW: " << epoch_tow_s << "\n ";
|
std::cout << "vtl_data debug print at RX TOW: " << epoch_tow_s << ", TRK sample counter: " << sample_counter << "\n";
|
||||||
sat_p.print("VTL Sat Positions");
|
sat_p.print("VTL Sat Positions");
|
||||||
sat_v.print("VTL Sat Velocities");
|
sat_v.print("VTL Sat Velocities");
|
||||||
sat_dts.print("VTL Sat clocks");
|
sat_dts.print("VTL Sat clocks");
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
#include <armadillo>
|
#include <armadillo>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <map>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
/** \addtogroup PVT
|
/** \addtogroup PVT
|
||||||
@ -34,17 +33,19 @@ public:
|
|||||||
Vtl_Data();
|
Vtl_Data();
|
||||||
void init_storage(int n_sats);
|
void init_storage(int n_sats);
|
||||||
|
|
||||||
arma::mat sat_p; //Satellite ECEF Position [m]
|
arma::mat sat_p; // Satellite ECEF Position [m]
|
||||||
arma::mat sat_v; //Satellite Velocity [m/s]
|
arma::mat sat_v; // Satellite Velocity [m/s]
|
||||||
arma::mat sat_dts; //Satellite clock bias and drift [s,s/s]
|
arma::mat sat_dts; // Satellite clock bias and drift [s,s/s]
|
||||||
arma::vec sat_var; //sat position and clock error variance [m^2]
|
arma::vec sat_var; // sat position and clock error variance [m^2]
|
||||||
arma::vec sat_health_flag; //sat health flag (0 is ok)
|
arma::vec sat_health_flag; // sat health flag (0 is ok)
|
||||||
|
|
||||||
arma::vec pr_m; //Satellite Code pseudoranges [m]
|
arma::vec pr_m; // Satellite Code pseudoranges [m]
|
||||||
arma::vec doppler_hz; //satellite Carrier Dopplers [Hz]
|
arma::vec doppler_hz; // satellite Carrier Dopplers [Hz]
|
||||||
arma::vec carrier_phase_rads; //satellite accumulated carrier phases [rads]
|
arma::vec carrier_phase_rads; // satellite accumulated carrier phases [rads]
|
||||||
|
|
||||||
double epoch_tow_s; //current observation RX time [s]
|
// time handling
|
||||||
|
double epoch_tow_s; // current observation RX time [s]
|
||||||
|
uint64_t sample_counter; // current sample counter associated with RX time [samples from start]
|
||||||
void debug_print();
|
void debug_print();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -27,6 +27,18 @@ Vtl_Engine::~Vtl_Engine()
|
|||||||
bool Vtl_Engine::vtl_loop(Vtl_Data new_data)
|
bool Vtl_Engine::vtl_loop(Vtl_Data new_data)
|
||||||
{
|
{
|
||||||
//TODO: Implement main VTL loop here
|
//TODO: Implement main VTL loop here
|
||||||
|
|
||||||
|
//TODO: Fill the tracking commands outputs
|
||||||
|
// Notice: keep the same satellite order as in the Vtl_Data matrices
|
||||||
|
// sample code
|
||||||
|
TrackingCmd trk_cmd;
|
||||||
|
trk_cmd.carrier_freq_hz = 0;
|
||||||
|
trk_cmd.carrier_freq_rate_hz_s = 0;
|
||||||
|
trk_cmd.code_freq_chips = 0;
|
||||||
|
trk_cmd.enable_carrier_nco_cmd = true;
|
||||||
|
trk_cmd.enable_code_nco_cmd = true;
|
||||||
|
trk_cmd.sample_counter = new_data.sample_counter;
|
||||||
|
trk_cmd_outs.push_back(trk_cmd);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,11 +17,13 @@
|
|||||||
#ifndef GNSS_SDR_VTL_ENGINE_H
|
#ifndef GNSS_SDR_VTL_ENGINE_H
|
||||||
#define GNSS_SDR_VTL_ENGINE_H
|
#define GNSS_SDR_VTL_ENGINE_H
|
||||||
|
|
||||||
|
#include "trackingcmd.h"
|
||||||
#include "vtl_conf.h"
|
#include "vtl_conf.h"
|
||||||
#include "vtl_data.h"
|
#include "vtl_data.h"
|
||||||
#include <armadillo>
|
#include <armadillo>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
/** \addtogroup PVT
|
/** \addtogroup PVT
|
||||||
* \{ */
|
* \{ */
|
||||||
@ -43,6 +45,8 @@ public:
|
|||||||
void reset(); // reset all internal states
|
void reset(); // reset all internal states
|
||||||
void debug_print(); // print debug information
|
void debug_print(); // print debug information
|
||||||
|
|
||||||
|
std::vector<TrackingCmd> trk_cmd_outs; // vector holding the Tracking command states updates to be sent to tracking KFs
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Vtl_Conf config;
|
Vtl_Conf config;
|
||||||
//TODO: Internal VTL persistent variables here
|
//TODO: Internal VTL persistent variables here
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
class TrackingCmd
|
class TrackingCmd
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TrackingCmd();
|
|
||||||
|
|
||||||
bool enable_carrier_nco_cmd = false;
|
bool enable_carrier_nco_cmd = false;
|
||||||
bool enable_code_nco_cmd = false;
|
bool enable_code_nco_cmd = false;
|
||||||
double code_freq_chips = 0.0;
|
double code_freq_chips = 0.0;
|
||||||
|
Loading…
Reference in New Issue
Block a user