0.4.1
Loading...
Searching...
No Matches
AttitudeOutputs.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
9/// @file TimeOutputs.hpp
10/// @brief Binary Group 5 - Attitude Outputs
11/// @author T. Topp (topp@ins.uni-stuttgart.de)
12/// @date 2021-07-01
13
14#pragma once
15
16#include <cstdint>
17#include "util/Eigen.hpp"
18
19#include <vn/types.h>
21
23{
24/// @brief Binary Group 5 - Attitude Outputs
26{
27 /// @brief Available data in this struct
28 vn::protocol::uart::AttitudeGroup attitudeField = vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_NONE;
29
30 /// @brief VPE Status
31 ///
32 /// The VPE status bitfield.
34
35 /// @brief Yaw Pitch Roll
36 ///
37 /// The estimated attitude Yaw, Pitch, and Roll angles measured in degrees. The attitude is given as a 3,2,1 Euler
38 /// angle sequence describing the body frame with respect to the local North East Down (NED) frame.
39 /// Yaw +/- 180°
40 /// Pitch +/- 90°
41 /// Roll +/- 180°
42 Eigen::Vector3f ypr;
43
44 /// @brief Quaternion
45 ///
46 /// The estimated attitude quaternion. The last term is the scalar value. The attitude is given as the body frame
47 /// with respect to the local North East Down (NED) frame.
48 Eigen::Quaternionf qtn;
49
50 /// @brief Directional Cosine Matrix
51 ///
52 /// The estimated attitude directional cosine matrix given in column major order. The DCM maps vectors from
53 /// the North East Down (NED) frame into the body frame.
54 Eigen::Matrix3f dcm;
55
56 /// @brief Compensated magnetic (NED)
57 ///
58 /// The current estimated magnetic field (Gauss), given in the North East Down (NED) frame. The current
59 /// attitude solution is used to map the measurement from the measured body frame to the inertial (NED) frame.
60 /// This measurement is compensated by both the static calibration (individual factory calibration stored in
61 /// flash), and the dynamic calibration such as the user or onboard Hard/Soft Iron compensation registers.
62 Eigen::Vector3f magNed;
63
64 /// @brief Compensated acceleration (NED)
65 ///
66 /// The estimated acceleration (with gravity) reported in m/s^2, given in the North East Down (NED) frame. The
67 /// acceleration measurement has been bias compensated by the onboard INS filter. This measurement is
68 /// attitude dependent, since the attitude is used to map the measurement from the body frame into the inertial
69 /// (NED) frame. If the device is stationary and the INS filter is tracking, the measurement should be nominally
70 /// equivalent to the gravity reference vector in the inertial frame (NED).
71 Eigen::Vector3f accelNed;
72
73 /// @brief Compensated linear acceleration (no gravity)
74 ///
75 /// The estimated linear acceleration (without gravity) reported in m/s^2, and given in the body frame. The
76 /// acceleration measurement has been bias compensated by the onboard INS filter, and the gravity component
77 /// has been removed using the current gravity reference vector model. This measurement is attitude
78 /// dependent, since the attitude solution is required to map the gravity reference vector (known in the inertial
79 /// NED frame), into the body frame so that it can be removed from the measurement. If the device is stationary
80 /// and the onboard INS filter is tracking, the measurement nominally will read 0 in all three axes.
81 Eigen::Vector3f linearAccelBody;
82
83 /// @brief Compensated linear acceleration (no gravity) (NED)
84 ///
85 /// The estimated linear acceleration (without gravity) reported in m/s^2, and given in the North East Down (NED)
86 /// frame. This measurement is attitude dependent as the attitude solution is used to map the measurement
87 /// from the body frame into the inertial (NED) frame. This acceleration measurement has been bias
88 /// compensated by the onboard INS filter, and the gravity component has been removed using the current
89 /// gravity reference vector estimate. If the device is stationary and the onboard INS filter is tracking, the
90 /// measurement nominally will read 0 in all three axes.
91 Eigen::Vector3f linearAccelNed;
92
93 /// @brief Yaw Pitch Roll uncertainty
94 ///
95 /// The estimated attitude (Yaw, Pitch, Roll) uncertainty (1 Sigma), reported in degrees.
96 ///
97 /// The estimated attitude (YprU) field is not valid when the INS Scenario mode in the INS Basic
98 /// Configuration register is set to AHRS mode. See the INS Basic Configuration Register in the INS
99 /// section for more details.
100 Eigen::Vector3f yprU;
101};
102
103} // namespace NAV::vendor::vectornav
Vector space operations.
Type Definitions for VectorNav messages.
Binary Group 5 - Attitude Outputs.
Eigen::Vector3f magNed
Compensated magnetic (NED)
Eigen::Vector3f linearAccelBody
Compensated linear acceleration (no gravity)
Eigen::Matrix3f dcm
Directional Cosine Matrix.
Eigen::Vector3f ypr
Yaw Pitch Roll.
Eigen::Quaternionf qtn
Quaternion.
Eigen::Vector3f accelNed
Compensated acceleration (NED)
Eigen::Vector3f linearAccelNed
Compensated linear acceleration (no gravity) (NED)
vn::protocol::uart::AttitudeGroup attitudeField
Available data in this struct.
Eigen::Vector3f yprU
Yaw Pitch Roll uncertainty.