52 [[nodiscard]] std::string
type()
const override;
55 [[nodiscard]]
static std::string
category();
62 [[nodiscard]]
json save()
const override;
159 Eigen::Vector3d
position{ Eigen::Vector3d::Zero() };
nlohmann::json json
json namespace
Kalman Filter with keyed states.
Generalized Kalman Filter class.
Position and Velocity Storage Class.
Espressif Observation Class.
The class is responsible for all time-related tasks.
Generalized Kalman Filter class.
Node(std::string name)
Constructor.
std::vector< double > _deviceBias
Input of biases.
uint8_t _numStates
Number of states.
SolutionMode
Available Solution Modes.
double _measurementNoise
GUI selection of the process noise (standard deviation σ or Variance σ²)
KalmanFilter _kalmanFilter
Kalman Filter representation - States: 3xVel, 3xPos, (1xBias) - Measurements: 1xDist.
std::vector< Device > _devices
Devices which are used for the positioning.
Frame _frame
Frame to calculate the position in.
size_t _nWifiInputPins
Amount of wifi input pins.
Eigen::Vector3d _initCovarianceVelocity
GUI selection of the initial covariance diagonal values for velocity (standard deviation σ or Varianc...
std::string type() const override
String representation of the Class Type.
void restore(const json &j) override
Restores the node from a json object.
uint8_t _numMeasurements
Number of measurements.
InitCovariancePositionUnit
Possible Units for the initial covariance for the position (standard deviation σ or Variance σ²)
@ meter
Standard deviation NED [m, m, m].
json save() const override
Saves the node into a json object.
@ LLA
Latitude-Longitude-Altitude frame.
@ ECEF
Earth-Centered Earth-Fixed frame.
InitCovarianceVelocityUnit
Possible Units for the initial covariance for the velocity (standard deviation σ or Variance σ²)
@ m_s
Standard deviation [m/s].
@ m2_s2
Variance [m^2/s^2].
Eigen::Vector3d _initCovariancePosition
GUI selection of the initial covariance diagonal values for position (standard deviation σ or Varianc...
WiFiPositioning(const WiFiPositioning &)=delete
Copy constructor.
WiFiPositioning()
Default constructor.
void guiConfig() override
ImGui config window which is shown on double click.
MeasurementNoiseUnit
Possible Units for the measurement noise (standard deviation σ or Variance σ²)
@ meter2
Variance NED [m^2, m^2, m^2].
@ meter
Standard deviation NED [m, m, m].
std::vector< double > _deviceScale
Input of scales.
LeastSquaresResult< Eigen::VectorXd, Eigen::MatrixXd > lsqSolution()
Calculate the position using the least squares method.
std::vector< std::string > _deviceMacAddresses
Input of mac addresses.
InitCovarianceVelocityUnit _initCovarianceVelocityUnit
Gui selection for the Unit of the initial covariance for the velocity.
bool _estimateBias
Selection of whether the bias will be additionally estimated.
void deinitialize() override
Deinitialize the node.
double _processNoise
GUI selection of the process noise (standard deviation σ or Variance σ²)
static constexpr size_t INPUT_PORT_INDEX_WIFI_OBS
WiFiObs.
void updateNumberOfInputPins()
Adds/Deletes Input Pins depending on the variable _nNavInfoPins.
bool initialize() override
Initialize the node.
SolutionMode _solutionMode
Solution Mode.
InsTime _lastPredictTime
Time when the last prediction was triggered.
InitCovarianceBiasUnit
Possible Units for the initial covariance for the bias (standard deviation σ or Variance σ²)
@ meter
Standard deviation [m].
~WiFiPositioning() override
Destructor.
WiFiPositioning & operator=(WiFiPositioning &&)=delete
Move assignment operator.
WiFiPositioning & operator=(const WiFiPositioning &)=delete
Copy assignment operator.
bool _useInitialValues
Selection of whether the initial values should always be used or those of the last position.
double _initCovarianceBias
GUI selection of the initial covariance diagonal values for bias (standard deviation σ or Variance σ²...
InitCovariancePositionUnit _initCovariancePositionUnit
Gui selection for the Unit of the initial covariance for the position.
static std::string category()
String representation of the Class Category.
State _initialState
Initial state.
static std::string typeStatic()
String representation of the Class Type.
bool _weightedSolution
Selection of whether the solution will be weighted.
WiFiPositioning(WiFiPositioning &&)=delete
Move constructor.
ProcessNoiseUnit
Possible Units for the process noise (standard deviation σ or Variance σ²)
@ meter
Standard deviation NED [m, m, m].
void kfSolution()
Calculate the position.
ProcessNoiseUnit _processNoiseUnit
Gui selection for the Unit of the initial covariance for the position.
InitCovarianceBiasUnit _initCovarianceBiasUnit
Gui selection for the Unit of the initial covariance for the bias.
std::vector< Eigen::Vector3d > _devicePositions
Input of positions.
void recvWiFiObs(InputPin::NodeDataQueue &queue, size_t pinIdx)
Receive Function for the WiFi Observations.
State _state
State estimated by the algorithm.
static constexpr size_t OUTPUT_PORT_INDEX_WIFISOL
WiFiPositioningSolution.
MeasurementNoiseUnit _measurementNoiseUnit
Gui selection for the Unit of the initial covariance for the position.
size_t _numOfDevices
Number of devices.
Least Squares Uncertainties return value.
Eigen::Vector3d position
Position vector.
double distanceStd
Standard deviation of distance measurement.
State estimated by the positioning algorithm.
double bias
Estimated bias [m].
Eigen::Vector3d e_velocity
Estimated velocity in ECEF frame [m/s].
Eigen::Vector3d e_position
Estimated position in ECEF frame [m].