53 [[nodiscard]] std::string
type()
const override;
56 [[nodiscard]]
static std::string
category();
63 [[nodiscard]]
json save()
const override;
96 std::shared_ptr<ImuObs>
receiveImuObs(
const std::shared_ptr<ImuObs>& imuObs,
97 const Eigen::Vector3d& accelerometerBias_p,
98 const Eigen::Vector3d& gyroscopeBias_p,
99 const Eigen::Vector3d& accelerometerNoiseStd,
100 const Eigen::Vector3d& gyroscopeNoiseStd);
108 [[nodiscard]] std::shared_ptr<ImuObsWDelta>
receiveImuObsWDelta(
const std::shared_ptr<ImuObsWDelta>& imuObs,
109 const Eigen::Vector3d& accelerometerBias_p,
110 const Eigen::Vector3d& gyroscopeBias_p,
111 const Eigen::Vector3d& accelerometerNoiseStd,
112 const Eigen::Vector3d& gyroscopeNoiseStd);
116 [[nodiscard]] std::shared_ptr<Pos>
receivePos(
const std::shared_ptr<Pos>& pos);
119 [[nodiscard]] std::shared_ptr<PosVel>
receivePosVel(
const std::shared_ptr<PosVel>& posVel);
122 [[nodiscard]] std::shared_ptr<PosVelAtt>
receivePosVelAtt(
const std::shared_ptr<PosVelAtt>& posVelAtt);
126 [[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.
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.
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.
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)
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)
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.
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.
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)