0.2.0
Loading...
Searching...
No Matches
NAV::LooselyCoupledKF Class Reference

Loosely-coupled Kalman Filter for INS/GNSS integration. More...

Public Types

enum  KFMeas {
  dPosLat ,
  dPosLon ,
  dPosAlt ,
  dVelN ,
  dVelE ,
  dVelD ,
  dPosX ,
  dPosY ,
  dPosZ ,
  dVelX ,
  dVelY ,
  dVelZ
}
 Measurement Keys of the Kalman filter. More...
 
enum  KFStates {
  Roll ,
  Pitch ,
  Yaw ,
  VelN ,
  VelE ,
  VelD ,
  PosLat ,
  PosLon ,
  PosAlt ,
  AccBiasX ,
  AccBiasY ,
  AccBiasZ ,
  GyrBiasX ,
  GyrBiasY ,
  GyrBiasZ ,
  Psi_eb_1 ,
  Psi_eb_2 ,
  Psi_eb_3 ,
  VelX ,
  VelY ,
  VelZ ,
  PosX ,
  PosY ,
  PosZ
}
 State Keys of the Kalman filter. More...
 
- Public Types inherited from NAV::Node
enum class  Mode {
  REAL_TIME ,
  POST_PROCESSING
}
 Different Modes the Node can work in. More...
 
enum class  State {
  Disabled ,
  Deinitialized ,
  DoInitialize ,
  Initializing ,
  Initialized ,
  DoDeinitialize ,
  Deinitializing ,
  DoShutdown ,
  Shutdown
}
 Possible states of the node. More...
 

Public Member Functions

void guiConfig () override
 ImGui config window which is shown on double click.
 
 LooselyCoupledKF ()
 Default constructor.
 
 LooselyCoupledKF (const LooselyCoupledKF &)=delete
 Copy constructor.
 
 LooselyCoupledKF (LooselyCoupledKF &&)=delete
 Move constructor.
 
LooselyCoupledKFoperator= (const LooselyCoupledKF &)=delete
 Copy assignment operator.
 
LooselyCoupledKFoperator= (LooselyCoupledKF &&)=delete
 Move assignment operator.
 
void restore (const json &j) override
 Restores the node from a json object.
 
json save () const override
 Saves the node into a json object.
 
std::string type () const override
 String representation of the class type.
 
 ~LooselyCoupledKF () override
 Destructor.
 
- Public Member Functions inherited from NAV::Node
virtual void afterCreateLink (OutputPin &startPin, InputPin &endPin)
 Called when a new link was established.
 
virtual void afterDeleteLink (OutputPin &startPin, InputPin &endPin)
 Called when a link was deleted.
 
bool doDeinitialize (bool wait=false)
 Asks the node worker to deinitialize the node.
 
bool doDisable (bool wait=false)
 Asks the node worker to disable the node.
 
bool doEnable ()
 Enable the node.
 
bool doInitialize (bool wait=false)
 Asks the node worker to initialize the node.
 
bool doReinitialize (bool wait=false)
 Asks the node worker to reinitialize the node.
 
virtual void flush ()
 Function called by the flow executer after finishing to flush out remaining data.
 
template<typename T >
std::optional< InputPin::IncomingLink::ValueWrapper< T > > getInputValue (size_t portIndex) const
 Get Input Value connected on the pin. Only const data types.
 
Mode getMode () const
 Get the current mode of the node.
 
const ImVec2 & getSize () const
 Get the size of the node.
 
State getState () const
 Get the current state of the node.
 
InputPininputPinFromId (ax::NodeEditor::PinId pinId)
 Returns the pin with the given id.
 
size_t inputPinIndexFromId (ax::NodeEditor::PinId pinId) const
 Returns the index of the pin.
 
void invokeCallbacks (size_t portIndex, const std::shared_ptr< const NodeData > &data)
 Calls all registered callbacks on the specified output port.
 
bool isDisabled () const
 Checks if the node is disabled.
 
bool isInitialized () const
 Checks if the node is initialized.
 
bool isOnlyRealtime () const
 Checks if the node is only working in real time (sensors, network interfaces, ...)
 
bool isTransient () const
 Checks if the node is changing its state currently.
 
std::string nameId () const
 Node name and id.
 
 Node (const Node &)=delete
 Copy constructor.
 
 Node (Node &&)=delete
 Move constructor.
 
 Node (std::string name)
 Constructor.
 
void notifyOutputValueChanged (size_t pinIdx, const InsTime &insTime, const std::scoped_lock< std::mutex > &guard)
 Notifies connected nodes about the change.
 
virtual bool onCreateLink (OutputPin &startPin, InputPin &endPin)
 Called when a new link is to be established.
 
virtual void onDeleteLink (OutputPin &startPin, InputPin &endPin)
 Called when a link is to be deleted.
 
Nodeoperator= (const Node &)=delete
 Copy assignment operator.
 
Nodeoperator= (Node &&)=delete
 Move assignment operator.
 
OutputPinoutputPinFromId (ax::NodeEditor::PinId pinId)
 Returns the pin with the given id.
 
size_t outputPinIndexFromId (ax::NodeEditor::PinId pinId) const
 Returns the index of the pin.
 
void releaseInputValue (size_t portIndex)
 Unblocks the connected node. Has to be called when the input value should be released and getInputValue was not called.
 
std::scoped_lock< std::mutex > requestOutputValueLock (size_t pinIdx)
 Blocks the thread till the output values was read by all connected nodes.
 
virtual bool resetNode ()
 Resets the node. It is guaranteed that the node is initialized when this is called.
 
virtual void restoreAtferLink (const json &j)
 Restores link related properties of the node from a json object.
 
void wakeWorker ()
 Wakes the worker thread.
 
virtual ~Node ()
 Destructor.
 

Static Public Member Functions

static std::string category ()
 String representation of the class category.
 
static std::string typeStatic ()
 String representation of the class type.
 
- Static Public Member Functions inherited from NAV::Node
static std::string toString (State state)
 Converts the state into a printable text.
 

Additional Inherited Members

- Public Attributes inherited from NAV::Node
bool callbacksEnabled
 Enables the callbacks.
 
ax::NodeEditor::NodeId id
 Unique Id of the Node.
 
std::vector< InputPininputPins
 List of input pins.
 
Kind kind
 Kind of the Node.
 
std::string name
 Name of the Node.
 
std::vector< OutputPinoutputPins
 List of output pins.
 
std::multimap< InsTime, std::pair< OutputPin *, size_t > > pollEvents
 Map with callback events (sorted by time)
 
- Protected Attributes inherited from NAV::Node
ImVec2 _guiConfigDefaultWindowSize
 
bool _hasConfig
 Flag if the config window should be shown.
 
bool _lockConfigDuringRun
 Lock the config when executing post-processing.
 
bool _onlyRealTime
 Whether the node can run in post-processing or only real-time.
 

Detailed Description

Loosely-coupled Kalman Filter for INS/GNSS integration.

Member Enumeration Documentation

◆ KFMeas

Measurement Keys of the Kalman filter.

Enumerator
dPosLat 

Latitude difference.

dPosLon 

Longitude difference.

dPosAlt 

Altitude difference.

dVelN 

Velocity North difference.

dVelE 

Velocity East difference.

dVelD 

Velocity Down difference.

dPosX 

ECEF Position X difference.

dPosY 

ECEF Position Y difference.

dPosZ 

ECEF Position Z difference.

dVelX 

ECEF Velocity X difference.

dVelY 

ECEF Velocity Y difference.

dVelZ 

ECEF Velocity Z difference.

◆ KFStates

State Keys of the Kalman filter.

Enumerator
Roll 

Roll.

Pitch 

Pitch.

Yaw 

Yaw.

VelN 

Velocity North.

VelE 

Velocity East.

VelD 

Velocity Down.

PosLat 

Latitude.

PosLon 

Longitude.

PosAlt 

Altitude.

AccBiasX 

Accelerometer Bias X.

AccBiasY 

Accelerometer Bias Y.

AccBiasZ 

Accelerometer Bias Z.

GyrBiasX 

Gyroscope Bias X.

GyrBiasY 

Gyroscope Bias Y.

GyrBiasZ 

Gyroscope Bias Z.

Psi_eb_1 

Angle between Earth and Body frame around 1. axis.

Psi_eb_2 

Angle between Earth and Body frame around 2. axis.

Psi_eb_3 

Angle between Earth and Body frame around 3. axis.

VelX 

ECEF Velocity X.

VelY 

ECEF Velocity Y.

VelZ 

ECEF Velocity Z.

PosX 

ECEF Position X.

PosY 

ECEF Position Y.

PosZ 

ECEF Position Z.

Member Function Documentation

◆ guiConfig()

void NAV::LooselyCoupledKF::guiConfig ( )
overridevirtual

ImGui config window which is shown on double click.

Attention
Don't forget to set _hasConfig to true in the constructor of the node

Reimplemented from NAV::Node.

◆ restore()

void NAV::LooselyCoupledKF::restore ( const json & j)
overridevirtual

Restores the node from a json object.

Parameters
[in]jJson object with the node state

Reimplemented from NAV::Node.


The documentation for this class was generated from the following file: