55 [[nodiscard]] std::string
type()
const override;
58 [[nodiscard]]
static std::string
category();
65 [[nodiscard]]
json save()
const override;
98 std::shared_ptr<ImuObs>
receiveImuObs(
const std::shared_ptr<ImuObs>& imuObs,
99 const Eigen::Vector3d& accelerometerBias_p,
100 const Eigen::Vector3d& gyroscopeBias_p,
101 const Eigen::Vector3d& accelerometerNoiseStd,
102 const Eigen::Vector3d& gyroscopeNoiseStd);
110 [[nodiscard]] std::shared_ptr<ImuObsWDelta>
receiveImuObsWDelta(
const std::shared_ptr<ImuObsWDelta>& imuObs,
111 const Eigen::Vector3d& accelerometerBias_p,
112 const Eigen::Vector3d& gyroscopeBias_p,
113 const Eigen::Vector3d& accelerometerNoiseStd,
114 const Eigen::Vector3d& gyroscopeNoiseStd);
118 [[nodiscard]] std::shared_ptr<Pos>
receivePos(
const std::shared_ptr<Pos>& pos);
121 [[nodiscard]] std::shared_ptr<PosVel>
receivePosVel(
const std::shared_ptr<PosVel>& posVel);
124 [[nodiscard]] std::shared_ptr<PosVelAtt>
receivePosVelAtt(
const std::shared_ptr<PosVelAtt>& posVelAtt);
128 [[nodiscard]] std::shared_ptr<GnssObs>
receiveGnssObs(
const std::shared_ptr<GnssObs>& gnssObs);
nlohmann::json json
json namespace
GNSS Observation messages.
Data storage class for one VectorNavImu observation.
Parent Class for all IMU Observations.
Position, Velocity and Attitude Storage Class.
Structs identifying a unique satellite.
Widget to modify time point values.
Enumerate for GNSS Codes.
Frequency _filterFreq
Frequencies used for calculation (GUI filter)
std::shared_ptr< PosVel > receivePosVel(const std::shared_ptr< PosVel > &posVel)
Callback when receiving an PosVelObs.
RandomNumberGenerator _imuAccelerometerRng
Random number generator for the accelerometer noise.
VelocityBiasUnits
Possible units to specify an velocity bias with.
SatSigId _manualCycleSlipSignal
GUI input for new manual cycle-slips.
PositionBiasUnits
Possible units to specify a position bias with.
int _gui_cycleSlipRange
Ambiguity limits cycle-slip.
RandomNumberGenerator _carrierPhaseRng
Random number generator for the carrier-phase noise.
Units::ImuAccelerometerUnits _imuAccelerometerBiasUnit
Selected unit for the accelerometer bias in the GUI.
std::shared_ptr< ImuObs > receiveImuObs(const std::shared_ptr< ImuObs > &imuObs, const Eigen::Vector3d &accelerometerBias_p, const Eigen::Vector3d &gyroscopeBias_p, const Eigen::Vector3d &accelerometerNoiseStd, const Eigen::Vector3d &gyroscopeNoiseStd)
Callback when receiving an ImuObs.
VelocityBiasUnits _velocityBiasUnit
Selected unit for the velocity bias in the GUI.
bool _manualCycleSlipSetLLI
GUI input for new manual cycle-slips.
std::array< int, 2 > _gui_ambiguityLimits
Ambiguity limits.
CarrierPhaseNoiseUnits _gui_carrierPhaseNoiseUnit
Selected unit for the carrier-phase noise in the GUI.
RandomNumberGenerator _imuGyroscopeRng
Random number generator for the gyroscope noise.
RandomNumberGenerator _imuAccelerometerIRWRng
Random number generator for the accelerometer IRW noise.
Units::ImuGyroscopeIRWUnits _imuGyroscopeIRWUnit
Selected unit for the accelerometer IRW noise in the GUI.
RandomNumberGenerator _imuGyroscopeRWRng
Random number generator for the accelerometer RW noise.
RandomNumberGenerator _imuAccelerometerRWRng
Random number generator for the accelerometer RW noise.
~ErrorModel() override
Destructor.
PositionNoiseUnits _positionNoiseUnit
Selected unit for the position noise in the GUI.
Eigen::Vector3d _positionNoise
Noise of the position (Unit as selected)
Units::ImuGyroscopeUnits _imuGyroscopeBiasUnit
Selected unit for the gyroscope bias in the GUI.
static std::string typeStatic()
String representation of the Class Type.
Eigen::Vector3d _imuAccelerometerNoise
Noise of the accelerometer (Unit as selected)
static constexpr size_t OUTPUT_PORT_INDEX_FLOW
Flow.
CycleSlipDetectionProbabilityUnits
Possible units to specify the cycle-slip detection probability with.
VelocityNoiseUnits _velocityNoiseUnit
Selected unit for the velocity noise in the GUI.
void restore(const json &j) override
Restores the node from a json object.
void afterDeleteLink(OutputPin &startPin, InputPin &endPin) override
Called when a link was deleted.
Eigen::Vector3d _integratedRandomWalkGyroscope
3D array which allow to accumulate IRW for gyro
Units::ImuAccelerometerNoiseUnits _imuAccelerometerNoiseUnit
Selected unit for the accelerometer noise in the GUI.
CycleSlipFrequencyUnits
Possible units to specify the cycle-slip rate with.
ErrorModel(const ErrorModel &)=delete
Copy constructor.
std::shared_ptr< GnssObs > receiveGnssObs(const std::shared_ptr< GnssObs > &gnssObs)
Callback when receiving an GnssObs.
RandomNumberGenerator _attitudeRng
Random number generator for the attitude noise.
AttitudeBiasUnits _attitudeBiasUnit
Selected unit for the attitude bias in the GUI.
AttitudeNoiseUnits
Possible units to specify a attitude noise with.
@ deg
[deg] (Standard deviation)
json save() const override
Saves the node into a json object.
std::string type() const override
String representation of the Class Type.
RandomNumberGenerator _imuGyroscopeIRWRng
Random number generator for the accelerometer RW noise.
Eigen::Vector3d _velocityBias
Bias of the velocity (Unit as selected)
ErrorModel & operator=(const ErrorModel &)=delete
Copy assignment operator.
InsTime _lastObservationTime
Last observation time.
RandomNumberGenerator _cycleSlipRng
Random number generator for the cycle-slip.
double _gui_cycleSlipDetectionProbability
The chance to detect a cycle slip and set the Loss-of-Lock indicator.
Eigen::Vector3d _integratedRandomWalkGyroscope_velocity
3D array which allow to accumulate IRW veloctiy noise for gyro
CycleSlipDetectionProbabilityUnits _gui_cycleSlipDetectionProbabilityUnit
Selected unit for the cycle-slip detection probability in the GUI.
Eigen::Vector3d _velocityNoise
Noise of the velocity (Unit as selected)
InsTime _manualCycleSlipTime
GUI input for new manual cycle-slips.
std::shared_ptr< Pos > receivePos(const std::shared_ptr< Pos > &pos)
Callback when receiving an PosObs.
CycleSlipFrequencyUnits _gui_cycleSlipFrequencyUnit
Selected unit for the cycle-slip frequency in the GUI.
Eigen::Vector3d _imuAccelerometerRW
RW noise of the accelerometer (Unit as selected)
double _gui_pseudorangeNoise
Noise of the pseudorange (Unit as selected)
double _gui_carrierPhaseNoise
Noise of the carrier-phase (Unit as selected)
double _dt
Time interval of the messages [s].
RandomNumberGenerator _pseudorangeRng
Random number generator for the pseudorange noise.
Eigen::Vector3d _integratedRandomWalkAccelerometer
3D array which allow to accumulate IRW for accelerometer
std::shared_ptr< PosVelAtt > receivePosVelAtt(const std::shared_ptr< PosVelAtt > &posVelAtt)
Callback when receiving an PosVelAttObs.
Units::ImuGyroscopeNoiseUnits _imuGyroscopeRWUnit
Selected unit for the accelerometer RW noise in the GUI.
PositionNoiseUnits
Possible units to specify a position noise with.
@ meter2
NED [m^2 m^2 m^2] (Variance)
@ meter
NED [m m m] (Standard deviation)
DopplerNoiseUnits _gui_dopplerNoiseUnit
Selected unit for the range-rate noise in the GUI.
RandomNumberGenerator _ambiguityRng
Random number generator for the ambiguity.
DopplerNoiseUnits
Possible units to specify a range-rate noise with.
@ m_s
[m/s] (Standard deviation)
Eigen::Vector3d _imuAccelerometerBias_p
Bias of the accelerometer in platform coordinates (Unit as selected)
std::map< std::pair< InsTime, SatSigId >, std::pair< int, bool > > _manualCycleSlips
Cycle-slips set by the user.
RandomNumberGenerator _positionRng
Random number generator for the position noise.
Eigen::Vector3d _imuGyroscopeBias_p
Bias of the gyroscope in platform coordinates (Unit as selected)
Code _filterCode
Codes used for calculation (GUI filter)
double _gui_dopplerNoise
Noise of the range-rate (Unit as selected)
void receiveObs(InputPin::NodeDataQueue &queue, size_t pinIdx)
Callback when receiving data on a port.
Units::ImuAccelerometerNoiseUnits _imuAccelerometerRWUnit
Selected unit for the accelerometer RW noise in the GUI.
Eigen::Vector3d _imuGyroscopeNoise
Noise of the gyroscope (Unit as selected)
static std::string category()
String representation of the Class Category.
Eigen::Vector3d _positionBias
Bias of the position (Unit as selected)
void afterCreateLink(OutputPin &startPin, InputPin &endPin) override
Called when a new link was established.
gui::widgets::TimeEditFormat _manualCycleSlipTimeEditFormat
GUI input for new manual cycle-slips.
PseudorangeNoiseUnits
Possible units to specify a pseudorange noise with.
@ meter
[m] (Standard deviation)
Eigen::Vector3d _imuGyroscopeIRW
RW noise of the accelerometer (Unit as selected)
CarrierPhaseNoiseUnits
Possible units to specify a carrier-phase noise with.
@ meter
[m] (Standard deviation)
Units::ImuAccelerometerIRWUnits _imuAccelerometerIRWUnit
Selected unit for the accelerometer IRW noise in the GUI.
ErrorModel(ErrorModel &&)=delete
Move constructor.
Eigen::Vector3d _randomWalkGyroscope
3D array which allow to accumulate RW noise for gyro
Eigen::Vector3d _attitudeBias
Bias of the attitude (Unit as selected)
void guiConfig() override
ImGui config window which is shown on double click.
Eigen::Vector3d _imuAccelerometerIRW
IRW noise of the accelerometer (Unit as selected)
PositionBiasUnits _positionBiasUnit
Selected unit for the position bias in the GUI.
Eigen::Vector3d _imuGyroscopeRW
RW noise of the accelerometer (Unit as selected)
AttitudeNoiseUnits _attitudeNoiseUnit
Selected unit for the attitude noise in the GUI.
ErrorModel()
Default constructor.
Eigen::Vector3d _randomWalkAccelerometer
3D array which allow to accumulate RW noise for accelerometer
VelocityNoiseUnits
Possible units to specify an velocity noise with.
@ m_s
[m/s] (Standard deviation)
@ m2_s2
[m^2/s^2] (Variance)
Eigen::Vector3d _integratedRandomWalkAccelerometer_velocity
3D array which allow to accumulate IRW veloctiy noise for accelerometer
InsTime _cycleSlipWindowStartTime
The time frame which is considered for a cycle slip.
double _gui_cycleSlipFrequency
The cycle-slip frequency (Unit as selected)
std::shared_ptr< ImuObsWDelta > receiveImuObsWDelta(const std::shared_ptr< ImuObsWDelta > &imuObs, const Eigen::Vector3d &accelerometerBias_p, const Eigen::Vector3d &gyroscopeBias_p, const Eigen::Vector3d &accelerometerNoiseStd, const Eigen::Vector3d &gyroscopeNoiseStd)
Callback when receiving an ImuObsWDelta.
RandomNumberGenerator _velocityRng
Random number generator for the velocity noise.
std::vector< CycleSlipInfo > _cycleSlips
List of produced cycle-slips.
RandomNumberGenerator _dopplerRng
Random number generator for the range-rate noise.
Units::ImuGyroscopeNoiseUnits _imuGyroscopeNoiseUnit
Selected unit for the gyroscope noise in the GUI.
ErrorModel & operator=(ErrorModel &&)=delete
Move assignment operator.
Eigen::Vector3d _attitudeNoise
Noise of the attitude (Unit as selected)
std::map< SatSigId, std::vector< std::pair< InsTime, int > > > _ambiguities
Ambiguity map.
AttitudeBiasUnits
Possible units to specify a attitude bias with.
int _manualCycleSlipAmbiguity
GUI input for new manual cycle-slips.
bool resetNode() override
Resets the node. It is guaranteed that the node is initialized when this is called.
PseudorangeNoiseUnits _gui_pseudorangeNoiseUnit
Selected unit for the pseudorange noise in the GUI.
Frequency definition for different satellite systems.
The class is responsible for all time-related tasks.
Node(std::string name)
Constructor.
Manages a thread which calls a specified function at a specified interval.
ImuGyroscopeUnits
Possible units to specify an gyroscope bias with.
ImuAccelerometerIRWUnits
Possible units to specify an accelerometer IRW.
@ m_s3_sqrts
[m/s^3/sqrt(s)] (Standard deviation)
ImuAccelerometerNoiseUnits
Possible units to specify an accelerometer noise.
@ m_s2_sqrts
[m/s^2/sqrt(s)] (Standard deviation)
ImuGyroscopeIRWUnits
Possible units to specify an gyro RW.
@ rad_s2_sqrts
[rad/s^2/sqrt(s)] (Standard deviation)
ImuGyroscopeNoiseUnits
Possible units to specify an gyro noise.
@ rad_s_sqrts
[rad/s/sqrt(s)] (Standard deviation)
ImuAccelerometerUnits
Possible units to specify an accelerometer with.
@ G01
GPS L1 (1575.42 MHz).
const Code Code_Default
Default selection for codes.
InsTime time
Time of the cycle-slip.
SatSigId satSigId
Satellite Signal identifier.
bool LLI
Whether the LLI was set.
Identifies a satellite signal (satellite frequency and number)