0.2.0
Loading...
Searching...
No Matches
SinglePointPositioning.hpp
Go to the documentation of this file.
1// This file is part of INSTINCT, the INS Toolkit for Integrated
2// Navigation Concepts and Training by the Institute of Navigation of
3// the University of Stuttgart, Germany.
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
13
14#pragma once
15
18
19#include "Navigation/Transformations/Units.hpp"
25
26#include "util/Eigen.hpp"
27
28namespace NAV
29{
32{
33 public:
46
48 [[nodiscard]] static std::string typeStatic();
49
51 [[nodiscard]] std::string type() const override;
52
54 [[nodiscard]] static std::string category();
55
58 void guiConfig() override;
59
61 [[nodiscard]] json save() const override;
62
65 void restore(const json& j) override;
66
67 private:
68 constexpr static size_t INPUT_PORT_INDEX_GNSS_OBS = 0;
69 constexpr static size_t INPUT_PORT_INDEX_GNSS_NAV_INFO = 1;
70
71 constexpr static size_t OUTPUT_PORT_INDEX_SPPSOL = 0;
72
74 bool initialize() override;
75
77 void deinitialize() override;
78
81 static void pinAddCallback(Node* node);
85 static void pinDeleteCallback(Node* node, size_t pinIdx);
86
88 SPP::Algorithm _algorithm;
89
92 gui::widgets::DynamicInputPins _dynamicInputPins{ INPUT_PORT_INDEX_GNSS_NAV_INFO, this, pinAddCallback, pinDeleteCallback };
93
94 // /// Estimator type
95 // GNSS::Positioning::SPP::EstimatorType _estimatorType = GNSS::Positioning::SPP::EstimatorType::WEIGHTED_LEAST_SQUARES;
96
97 // /// @brief SPP Kalman filter
98 // GNSS::Positioning::SPP::SppKalmanFilter _kalmanFilter;
99
100 // /// State estimated by the algorithm
101 // GNSS::Positioning::SPP::State _state;
102
103 // /// @brief All Inter-system clock error keys
104 // std::vector<GNSS::Positioning::SPP::States::StateKeyTypes> _interSysErrs{};
105 // /// @brief All Inter-system clock drift keys
106 // /// @note Groves2013 does not estimate inter-system drifts, but we do for all models.
107 // std::vector<GNSS::Positioning::SPP::States::StateKeyTypes> _interSysDrifts{};
108
112 void recvGnssObs(InputPin::NodeDataQueue& queue, size_t pinIdx);
113};
114
115} // namespace NAV
Single Point Positioning Algorithm.
Inputs pins which can be added dynamically.
Vector space operations.
nlohmann::json json
json namespace
Definition FlowManager.hpp:21
GNSS helper functions.
Least Squares Algorithm.
Generalized Kalman Filter class.
Node Class.
Satellite Navigation data (to calculate SatNavData and clock)
Abstract parent class for all nodes.
Definition Node.hpp:86
Single Point Positioning Algorithm.
Definition Algorithm.hpp:37
Numerically integrates Imu data.
Definition SinglePointPositioning.hpp:32
std::string type() const override
String representation of the Class Type.
SinglePointPositioning(SinglePointPositioning &&)=delete
Move constructor.
SinglePointPositioning & operator=(const SinglePointPositioning &)=delete
Copy assignment operator.
static std::string category()
String representation of the Class Category.
SinglePointPositioning()
Default constructor.
SinglePointPositioning(const SinglePointPositioning &)=delete
Copy constructor.
~SinglePointPositioning() override
Destructor.
void restore(const json &j) override
Restores the node from a json object.
static std::string typeStatic()
String representation of the Class Type.
SinglePointPositioning & operator=(SinglePointPositioning &&)=delete
Move assignment operator.
json save() const override
Saves the node into a json object.
void guiConfig() override
ImGui config window which is shown on double click.
Inputs pins which can be added dynamically.
Definition DynamicInputPins.hpp:29