0.2.0
Loading...
Searching...
No Matches
ImuIntegrator.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
14
15#pragma once
16
19
20namespace NAV
21{
23class ImuIntegrator : public Node
24{
25 public:
29 ~ImuIntegrator() override;
31 ImuIntegrator(const ImuIntegrator&) = delete;
38
40 [[nodiscard]] static std::string typeStatic();
41
43 [[nodiscard]] std::string type() const override;
44
46 [[nodiscard]] static std::string category();
47
50 void guiConfig() override;
51
53 [[nodiscard]] json save() const override;
54
57 void restore(const json& j) override;
58
59 private:
60 constexpr static size_t OUTPUT_PORT_INDEX_INERTIAL_NAV_SOL = 0;
61 constexpr static size_t INPUT_PORT_INDEX_IMU_OBS = 0;
62 constexpr static size_t INPUT_PORT_INDEX_POS_VEL_ATT_INIT = 1;
63
65 bool initialize() override;
66
68 void deinitialize() override;
69
73 void recvPosVelAttInit(InputPin::NodeDataQueue& queue, size_t pinIdx);
74
78 void recvObservation(InputPin::NodeDataQueue& queue, size_t pinIdx);
79
81 InertialIntegrator _inertialIntegrator;
82
84 bool _preferAccelerationOverDeltaMeasurements = false;
85};
86
87} // namespace NAV
nlohmann::json json
json namespace
Definition FlowManager.hpp:21
Inertial Measurement Integrator.
Node Class.
Numerically integrates Imu data.
Definition ImuIntegrator.hpp:24
ImuIntegrator(const ImuIntegrator &)=delete
Copy constructor.
void restore(const json &j) override
Restores the node from a json object.
std::string type() const override
String representation of the Class Type.
static std::string category()
String representation of the Class Category.
ImuIntegrator()
Default constructor.
void guiConfig() override
ImGui config window which is shown on double click.
ImuIntegrator & operator=(ImuIntegrator &&)=delete
Move assignment operator.
~ImuIntegrator() override
Destructor.
ImuIntegrator(ImuIntegrator &&)=delete
Move constructor.
json save() const override
Saves the node into a json object.
static std::string typeStatic()
String representation of the Class Type.
ImuIntegrator & operator=(const ImuIntegrator &)=delete
Copy assignment operator.
Inertial Measurement Integrator.
Definition InertialIntegrator.hpp:37
Abstract parent class for all nodes.
Definition Node.hpp:86