0.3.0
Loading...
Searching...
No Matches
Units.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
16#include <cstddef>
17#include <string>
18#include <Eigen/Core>
19
20#include "util/Json.hpp"
21
22namespace NAV
23{
24
25namespace Units
26{
27
29enum class PositionUncertaintyUnits : uint8_t
30{
34};
35
37enum class VelocityUncertaintyUnits : uint8_t
38{
42};
43
45enum class AttitudeUncertaintyUnits : uint8_t
46{
52};
53
55enum class VelocityUnits : uint8_t
56{
59};
60
62enum class AttitudeUnits : uint8_t
63{
67};
68
77
86
95
99void to_json(json& j, const VelocityUnits& data);
103void from_json(const json& j, VelocityUnits& data);
104
108void to_json(json& j, const AttitudeUnits& data);
112void from_json(const json& j, AttitudeUnits& data);
113
114} // namespace Units
115
120[[nodiscard]] double convertUnit(const double& value, Units::PositionUncertaintyUnits unit);
125[[nodiscard]] Eigen::Vector3d convertUnit(const Eigen::Vector3d& value, Units::PositionUncertaintyUnits unit);
126
131[[nodiscard]] double convertUnit(const double& value, Units::VelocityUncertaintyUnits unit);
136[[nodiscard]] Eigen::Vector3d convertUnit(const Eigen::Vector3d& value, Units::VelocityUncertaintyUnits unit);
137
142[[nodiscard]] double convertUnit(const double& value, Units::AttitudeUncertaintyUnits unit);
147[[nodiscard]] Eigen::Vector3d convertUnit(const Eigen::Vector3d& value, Units::AttitudeUncertaintyUnits unit);
148
153[[nodiscard]] double convertUnit(const double& value, Units::VelocityUnits unit);
158[[nodiscard]] Eigen::Vector3d convertUnit(const Eigen::Vector3d& value, Units::VelocityUnits unit);
159
164[[nodiscard]] double convertUnit(const double& value, Units::AttitudeUnits unit);
169[[nodiscard]] Eigen::Vector3d convertUnit(const Eigen::Vector3d& value, Units::AttitudeUnits unit);
170
173[[nodiscard]] std::string to_string(Units::PositionUncertaintyUnits unit);
176[[nodiscard]] std::string to_string(Units::VelocityUncertaintyUnits unit);
179[[nodiscard]] std::string to_string(Units::AttitudeUncertaintyUnits unit);
180
183[[nodiscard]] std::string to_string(Units::VelocityUnits unit);
186[[nodiscard]] std::string to_string(Units::AttitudeUnits unit);
187
188} // namespace NAV
nlohmann::json json
json namespace
Definition FlowManager.hpp:21
AttitudeUncertaintyUnits
Possible units for the uncertainty of the attitude.
Definition Units.hpp:46
@ rad
Standard deviation [radian].
Definition Units.hpp:47
@ deg
Standard deviation [degree].
Definition Units.hpp:48
@ rad2
Variance [radian^2].
Definition Units.hpp:49
@ deg2
Variance [degree^2].
Definition Units.hpp:50
void to_json(json &j, const PositionUncertaintyUnits &data)
Converts the provided data into a json object.
PositionUncertaintyUnits
Possible units for the uncertainty of the position.
Definition Units.hpp:30
@ meter2
Variance [m^2, m^2, m^2].
Definition Units.hpp:32
@ COUNT
Amount of items in the enum.
Definition Units.hpp:33
@ meter
Standard deviation [m, m, m].
Definition Units.hpp:31
VelocityUncertaintyUnits
Possible units for the uncertainty of the velocity.
Definition Units.hpp:38
@ m_s
Standard deviation [m/s].
Definition Units.hpp:39
@ m2_s2
Variance [m^2/s^2].
Definition Units.hpp:40
double convertUnit(const double &value, Units::PositionUncertaintyUnits unit)
Converts the value depending on the unit provided.
void from_json(const json &j, PositionUncertaintyUnits &data)
Converts the provided json object into the data object.
AttitudeUnits
Possible units for the attitude.
Definition Units.hpp:63
VelocityUnits
Possible units for the velocity.
Definition Units.hpp:56
Defines how to save certain datatypes to json.
const char * to_string(gui::widgets::PositionWithFrame::ReferenceFrame refFrame)
Converts the enum to a string.