0.4.1
Loading...
Searching...
No Matches
UlogFile.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 UlogFile.hpp
10/// @brief File Reader for ULog files
11/// @author M. Maier (marcel.maier@ins.uni-stuttgart.de)
12/// @date 2021-12-28
13
14#pragma once
15
16// Already in 'FileReader.hpp'
17// #include <string>
18// #include <vector>
19// #include <fstream>
20
21#include <map>
22#include <variant>
23
26
27namespace NAV
28{
29/// @brief File Reader for ULog files ('.ulg')
30class UlogFile : public Imu, public FileReader
31{
32 public:
33 /// @brief Default constructor
34 UlogFile();
35 /// @brief Destructor
36 ~UlogFile() override;
37 /// @brief Copy constructor
38 UlogFile(const UlogFile&) = delete;
39 /// @brief Move constructor
40 UlogFile(UlogFile&&) = delete;
41 /// @brief Copy assignment operator
42 UlogFile& operator=(const UlogFile&) = delete;
43 /// @brief Move assignment operator
45
46 /// @brief String representation of the Class Type
47 [[nodiscard]] static std::string typeStatic();
48
49 /// @brief String representation of the Class Type
50 [[nodiscard]] std::string type() const override;
51
52 /// @brief String representation of the Class Category
53 [[nodiscard]] static std::string category();
54
55 /// @brief ImGui config window which is shown on double click
56 /// @attention Don't forget to set hasConfig to true in the constructor of the node
57 void guiConfig() override;
58
59 /// @brief Saves the node into a json object
60 [[nodiscard]] json save() const override;
61
62 /// @brief Restores the node from a json object
63 /// @param[in] j Json object with the node state
64 void restore(const json& j) override;
65
66 /// @brief Resets the node. Moves the read cursor to the start
67 bool resetNode() override;
68
69 /// @brief Combined (sensor-)message name with unique ID
71 {
72 uint8_t multi_id; ///< the same message format can have multiple instances, for example if the system has two sensors of the same type. The default and first instance must be 0
73 std::string message_name; ///< message name to subscribe to
74 };
75
76 private:
77 constexpr static size_t OUTPUT_PORT_INDEX_IMUOBS_1 = 0; ///< @brief Flow (ImuObs #1)
78 constexpr static size_t OUTPUT_PORT_INDEX_IMUOBS_2 = 1; ///< @brief Flow (ImuObs #2)
79 constexpr static size_t OUTPUT_PORT_INDEX_POSVELATT = 2; ///< @brief Flow (PosVelAtt)
80
81 /// @brief Initialize the node
82 bool initialize() override;
83
84 /// @brief Deinitialize the node
85 void deinitialize() override;
86
87 /// @brief Polls data from the file
88 /// @return The read observation
89 [[nodiscard]] std::shared_ptr<const NodeData> pollData();
90
91 /// @brief Determines the type of the file
92 /// @return The file type
93 [[nodiscard]] FileType determineFileType() override;
94
95 /// @brief Read the Header of the file
96 void readHeader() override;
97
98 /// @brief Read msg type 'I'
99 /// @param[in] msgSize size of ulogMsgHeader
100 /// @param[in] msgType type of ulogMsgHeader
101 void readInformationMessage(uint16_t msgSize, char msgType);
102
103 /// @brief Read msg type 'M'
104 /// @param[in] msgSize size of ulogMsgHeader
105 /// @param[in] msgType type of ulogMsgHeader
106 void readInformationMessageMulti(uint16_t msgSize, char msgType);
107
108 /// @brief Read msg type 'P'
109 /// @param[in] msgSize size of ulogMsgHeader
110 /// @param[in] msgType type of ulogMsgHeader
111 void readParameterMessage(uint16_t msgSize, char msgType);
112
113 /// @brief Read msg type 'Q'
114 /// @param[in] msgSize size of ulogMsgHeader
115 /// @param[in] msgType type of ulogMsgHeader
116 void readParameterMessageDefault(uint16_t msgSize, char msgType);
117
118 /// @brief Key-value pair of the message format
120 {
121 std::string type; ///< e.g. "uint64_t"
122 std::string name; ///< e.g. "timestamp"
123 };
124
125 /// @brief Key: message_name, e.g. "sensor_accel"
126 std::unordered_map<std::string, std::vector<DataField>> _messageFormats;
127
128 /// @brief Px4 acceleration sensor message
130 {
131 uint64_t timestamp; ///< Px4 accelerometer time since startup in [µs]
132 uint64_t timestamp_sample; ///< [µs]
133 uint32_t device_id; ///< unique device identifier
134 float x; ///< Px4 acceleration along x in p-frame [m/s^2]
135 float y; ///< Px4 acceleration along y in p-frame [m/s^2]
136 float z; ///< Px4 acceleration along z in p-frame [m/s^2]
137 float temperature; ///< Px4 temperature of accel sensor in [°C]
138 uint32_t error_count; ///< error count
139 std::array<uint8_t, 3> clip_counter; ///< clip counter
140
141 static constexpr uint8_t padding = 5; ///< padding
142 };
143
144 /// @brief Px4 gyro sensor message
146 {
147 uint64_t timestamp; ///< Px4 gyroscope time since startup in [µs]
148 uint64_t timestamp_sample; ///< [µs]
149 uint32_t device_id; ///< unique device identifier
150 float x; ///< Px4 rotation rate about x in p-frame [//TODO]
151 float y; ///< Px4 rotation rate about y in p-frame [//TODO]
152 float z; ///< Px4 rotation rate about z in p-frame [//TODO]
153 float temperature; ///< Px4 temperature of gyro sensor in [°C]
154 uint32_t error_count; ///< error count
155 };
156
157 /// @brief Px4 magnetometer sensor message
159 {
160 uint64_t timestamp; ///< Px4 magnetometer time since startup in [µs]
161 uint64_t timestamp_sample; ///< [µs]
162 uint32_t device_id; ///< unique device identifier
163 float x; ///< Px4 magnetic flux density about x in p-frame [//TODO]
164 float y; ///< Px4 magnetic flux density about y in p-frame [//TODO]
165 float z; ///< Px4 magnetic flux density about z in p-frame [//TODO]
166 float temperature; ///< Px4 temperature of gyro sensor in [°C]
167 uint32_t error_count; ///< error count
168 bool is_external; ///< Flag
169
170 static constexpr uint8_t padding = 7; ///< padding
171 };
172
173 /// @brief Px4 GPS sensor message
175 {
176 uint64_t timestamp; ///< Px4 GPS sensor time since startup in [µs]
177 uint64_t time_utc_usec; ///< Px4 GPS UTC time in [µs]
178 int32_t lat; ///< Latitude in [deg * 1e7] (unit retains precision despite integer)
179 int32_t lon; ///< Longitude in [deg * 1e7] (unit retains precision despite integer)
180 int32_t alt; ///< Altitude above ground in [mm] (unit retains precision despite integer)
181 int32_t alt_ellipsoid; ///< Altitude above ellipsoid in [mm] (unit retains precision despite integer)
182 float s_variance_m_s; ///< Variance of speed [m²/s²]
183 float c_variance_rad; ///< Variance of angle [rad²]
184 float eph; ///< Horizontal position error in [m]
185 float epv; ///< Vertical position error in [m]
186 float hdop; ///< Horizontal dilusion of precision
187 float vdop; ///< Vertical dilusion of precision
188 int32_t noise_per_ms; ///< Noise per millisecond
189 int32_t jamming_indicator; ///< Jamming indicator
190 float vel_m_s; ///< Velocity in [m/s]
191 float vel_n_m_s; ///< Velocity north component in [m/s]
192 float vel_e_m_s; ///< Velocity east component in [m/s]
193 float vel_d_m_s; ///< Velocity down component in [m/s]
194 float cog_rad; ///< Center of gravity
195 int32_t timestamp_time_relative; ///< Relative time stamp
196 float heading; ///< heading
197 float heading_offset; ///< heading offset
198 uint8_t fix_type; ///< fix type
199 bool vel_ned_valid; ///< Flag for validation of velocity in NED
200 uint8_t satellites_used; ///< # of satellites used
201
202 static constexpr uint8_t padding = 5; ///< padding
203 };
204
205 /// @brief Px4 GPS attitude message
207 {
208 uint64_t timestamp; ///< Px4 GPS sensor time since startup in [µs]
209 std::array<float, 4> q; ///< Px4 GPS attitude quaternion
210 std::array<float, 4> delta_q_reset; ///< delta q reset
211 uint8_t quat_reset_counter; ///< Quaternion reset counter
212
213 static constexpr uint8_t padding = 7; ///< padding
214 };
215
216 /// @brief Px4 air data sensor message
218 {
219 uint64_t timestamp; ///< Px4 air data sensor time since startup in [µs]
220 uint64_t timestamp_sample; ///< [µs]
221 uint32_t baro_device_id; ///< unique device identifier
222 float baro_alt_meter; ///< Px4 barometric altitude in [m]
223 float baro_temp_celcius; ///< Px4 barometric temperature in [°C]
224 float baro_pressure_pa; ///< Px4 barometric pressure in [Pa]
225 float rho; ///< density?
226
227 static constexpr uint8_t padding = 4; ///< padding
228 };
229
230 /// @brief Px4 control data message
232 {
233 uint64_t timestamp; ///< Px4 controller time since startup in [µs]
234 bool flag_armed; ///< Flag: Arm switch
235 bool flag_external_manual_override_ok; ///< Flag: external manual override ok
236 bool flag_control_manual_enabled; ///< Flag: manual mode enabled
237 bool flag_control_auto_enabled; ///< Flag: auto mode enabled
238 bool flag_control_offboard_enabled; ///< Flag: offboard enabled
239 bool flag_control_rates_enabled; ///< Flag: rates enabled
240 bool flag_control_attitude_enabled; ///< Flag: attitude mode enabled
241 bool flag_control_yawrate_override_enabled; ///< Flag: yawrate override enabled
242 bool flag_control_rattitude_enabled; ///< Flag: rattitude enabled
243 bool flag_control_force_enabled; ///< Flag: force enabled
244 bool flag_control_acceleration_enabled; ///< Flag: acceleration enabled
245 bool flag_control_velocity_enabled; ///< Flag: velocity enabled
246 bool flag_control_position_enabled; ///< Flag: position enabled
247 bool flag_control_altitude_enabled; ///< Flag: altitude enabled
248 bool flag_control_climb_rate_enabled; ///< Flag: climb rate enabled
249 bool flag_control_termination_enabled; ///< Flag: termination enabled
250 bool flag_control_fixed_hdg_enabled; ///< Flag: fixed heading enabled
251
252 static constexpr uint8_t padding = 7; ///< padding
253 };
254
255 /// @brief Px4 vehicle status message
257 {
258 uint64_t timestamp; ///< [µs]
259 uint64_t nav_state_timestamp; ///< [µs]
260 uint32_t onboard_control_sensors_present; ///< onboard control sensors present
261 uint32_t onboard_control_sensors_enabled; ///< onboard control sensors enabled
262 uint32_t onboard_control_sensors_health; ///< onboard control sensors health
263 uint8_t nav_state; ///< nav state
264 uint8_t arming_state; ///< arming state
265 uint8_t hil_state; ///< hil state
266 bool failsafe; ///< Flag: failsafe
267 uint8_t system_type; ///< system type
268 uint8_t system_id; ///< system id
269 uint8_t component_id; ///< component id
270 uint8_t vehicle_type; ///< vehicle type
271 bool is_vtol; ///< Flag: is vertical take-off and landing
272 bool is_vtol_tailsitter; ///< Flag: is vertical take-off and landing tailsitter
273 bool vtol_fw_permanent_stab; ///< Flag: vertical take-off and landing fw permanent stability
274 bool in_transition_mode; ///< Flag: transition mode
275 bool in_transition_to_fw; ///< Flag: transition to fw
276 bool rc_signal_lost; ///< Flag: RC signal lost
277 uint8_t rc_input_mode; ///< RC input mode
278 bool data_link_lost; ///< Flag: Data link lost
279 uint8_t data_link_lost_counter; ///< Counter how often data link was lost
280 bool high_latency_data_link_lost; ///< Flag: high latency data link lost
281 bool engine_failure; ///< Flag: engine failure
282 bool mission_failure; ///< Flag: mission failure
283 uint8_t failure_detector_status; ///< failure detector status
284 uint8_t latest_arming_reason; ///< latest arming reason
285 uint8_t latest_disarming_reason; ///< latest disarming reason
286 std::array<uint8_t, 5> _padding0; ///< padding
287 };
288
289 /// @brief Px4 CPU status message
290 struct Cpuload
291 {
292 uint64_t timestamp; ///< Px4 CPU time since startup in [µs]
293 float load; ///< Px4 CPU load
294 float ram_usage; ///< Px4 RAM usage
295 };
296
297 /// @brief Key: msg_id
298 std::unordered_map<uint16_t, SubscriptionData> _subscribedMessages;
299
300 /// @brief Combined (sensor-)message name with unique ID and data
302 {
303 uint8_t multi_id; ///< multiple instances of the same message format, for example if the system has two sensors of the same type. The default and first instance must be 0
304 std::string message_name; ///< message name to subscribe to
305 std::variant<SensorAccel, SensorGyro, SensorMag, VehicleGpsPosition, VehicleAttitude> data; ///< measurement data
306 };
307
308 /// @brief Data message container. Key: [timestamp], Value: [0, "sensor_accel", SensorAccel{}]
309 std::multimap<uint64_t, MeasurementData> _epochData;
310
311 /// @brief Checks '_epochData' whether there is enough data available to output one ImuObs
312 /// @return The multi id where enough data is available, or -1 if not enough info
313 int8_t enoughImuDataAvailable();
314
315 /// @brief Checks '_epochData' whether there is enough data available to output one PosVelAtt
316 /// @return Iterators to the oldest gps and attitude
317 std::array<std::multimap<uint64_t, NAV::UlogFile::MeasurementData>::iterator, 2> findPosVelAttData();
318
319 /// Stores GNSS timestamp of one epoch before the current one (relative or absolute)
320 struct
321 {
322 uint64_t timeSinceStartup{}; ///< Relative timestamp
323 InsTime gnssTime; ///< Absolute timestamp
325};
326} // namespace NAV
Abstract File Reader class.
nlohmann::json json
json namespace
Abstract IMU Class.
FileType
File Type Enumeration.
FileReader(const FileReader &)=delete
Copy constructor.
Imu(const Imu &)=delete
Copy constructor.
The class is responsible for all time-related tasks.
Definition InsTime.hpp:710
UlogFile & operator=(const UlogFile &)=delete
Copy assignment operator.
void readInformationMessage(uint16_t msgSize, char msgType)
Read msg type 'I'.
bool initialize() override
Initialize the node.
Definition UlogFile.cpp:109
InsTime gnssTime
Absolute timestamp.
Definition UlogFile.hpp:323
void readInformationMessageMulti(uint16_t msgSize, char msgType)
Read msg type 'M'.
uint64_t timeSinceStartup
Relative timestamp.
Definition UlogFile.hpp:322
static std::string typeStatic()
String representation of the Class Type.
Definition UlogFile.cpp:49
json save() const override
Saves the node into a json object.
Definition UlogFile.cpp:83
UlogFile(UlogFile &&)=delete
Move constructor.
void deinitialize() override
Deinitialize the node.
Definition UlogFile.cpp:116
static constexpr size_t OUTPUT_PORT_INDEX_POSVELATT
Flow (PosVelAtt)
Definition UlogFile.hpp:79
UlogFile & operator=(UlogFile &&)=delete
Move assignment operator.
std::unordered_map< std::string, std::vector< DataField > > _messageFormats
Key: message_name, e.g. "sensor_accel".
Definition UlogFile.hpp:126
static constexpr size_t OUTPUT_PORT_INDEX_IMUOBS_1
Flow (ImuObs #1)
Definition UlogFile.hpp:77
std::multimap< uint64_t, MeasurementData > _epochData
Data message container. Key: [timestamp], Value: [0, "sensor_accel", SensorAccel{}...
Definition UlogFile.hpp:309
void restore(const json &j) override
Restores the node from a json object.
Definition UlogFile.cpp:95
void guiConfig() override
ImGui config window which is shown on double click.
Definition UlogFile.cpp:64
void readParameterMessage(uint16_t msgSize, char msgType)
Read msg type 'P'.
struct NAV::UlogFile::@006001242362324316321330200126144024365050007132 lastGnssTime
Stores GNSS timestamp of one epoch before the current one (relative or absolute)
std::array< std::multimap< uint64_t, NAV::UlogFile::MeasurementData >::iterator, 2 > findPosVelAttData()
Checks '_epochData' whether there is enough data available to output one PosVelAtt.
std::unordered_map< uint16_t, SubscriptionData > _subscribedMessages
Key: msg_id.
Definition UlogFile.hpp:298
bool resetNode() override
Resets the node. Moves the read cursor to the start.
Definition UlogFile.cpp:123
~UlogFile() override
Destructor.
Definition UlogFile.cpp:44
FileType determineFileType() override
Determines the type of the file.
Definition UlogFile.cpp:138
std::shared_ptr< const NodeData > pollData()
Polls data from the file.
Definition UlogFile.cpp:314
int8_t enoughImuDataAvailable()
Checks '_epochData' whether there is enough data available to output one ImuObs.
std::string type() const override
String representation of the Class Type.
Definition UlogFile.cpp:54
static constexpr size_t OUTPUT_PORT_INDEX_IMUOBS_2
Flow (ImuObs #2)
Definition UlogFile.hpp:78
UlogFile()
Default constructor.
Definition UlogFile.cpp:30
UlogFile(const UlogFile &)=delete
Copy constructor.
static std::string category()
String representation of the Class Category.
Definition UlogFile.cpp:59
void readHeader() override
Read the Header of the file.
Definition UlogFile.cpp:162
void readParameterMessageDefault(uint16_t msgSize, char msgType)
Read msg type 'Q'.
Px4 CPU status message.
Definition UlogFile.hpp:291
float load
Px4 CPU load.
Definition UlogFile.hpp:293
float ram_usage
Px4 RAM usage.
Definition UlogFile.hpp:294
uint64_t timestamp
Px4 CPU time since startup in [µs].
Definition UlogFile.hpp:292
Key-value pair of the message format.
Definition UlogFile.hpp:120
std::string type
e.g. "uint64_t"
Definition UlogFile.hpp:121
std::string name
e.g. "timestamp"
Definition UlogFile.hpp:122
Combined (sensor-)message name with unique ID and data.
Definition UlogFile.hpp:302
std::variant< SensorAccel, SensorGyro, SensorMag, VehicleGpsPosition, VehicleAttitude > data
measurement data
Definition UlogFile.hpp:305
std::string message_name
message name to subscribe to
Definition UlogFile.hpp:304
uint8_t multi_id
multiple instances of the same message format, for example if the system has two sensors of the same ...
Definition UlogFile.hpp:303
Px4 acceleration sensor message.
Definition UlogFile.hpp:130
static constexpr uint8_t padding
padding
Definition UlogFile.hpp:141
uint64_t timestamp_sample
[µs]
Definition UlogFile.hpp:132
std::array< uint8_t, 3 > clip_counter
clip counter
Definition UlogFile.hpp:139
float temperature
Px4 temperature of accel sensor in [°C].
Definition UlogFile.hpp:137
uint64_t timestamp
Px4 accelerometer time since startup in [µs].
Definition UlogFile.hpp:131
float z
Px4 acceleration along z in p-frame [m/s^2].
Definition UlogFile.hpp:136
uint32_t device_id
unique device identifier
Definition UlogFile.hpp:133
uint32_t error_count
error count
Definition UlogFile.hpp:138
float y
Px4 acceleration along y in p-frame [m/s^2].
Definition UlogFile.hpp:135
float x
Px4 acceleration along x in p-frame [m/s^2].
Definition UlogFile.hpp:134
Px4 gyro sensor message.
Definition UlogFile.hpp:146
float temperature
Px4 temperature of gyro sensor in [°C].
Definition UlogFile.hpp:153
float z
Px4 rotation rate about z in p-frame [//TODO].
Definition UlogFile.hpp:152
uint64_t timestamp_sample
[µs]
Definition UlogFile.hpp:148
uint32_t device_id
unique device identifier
Definition UlogFile.hpp:149
uint64_t timestamp
Px4 gyroscope time since startup in [µs].
Definition UlogFile.hpp:147
float x
Px4 rotation rate about x in p-frame [//TODO].
Definition UlogFile.hpp:150
uint32_t error_count
error count
Definition UlogFile.hpp:154
float y
Px4 rotation rate about y in p-frame [//TODO].
Definition UlogFile.hpp:151
Px4 magnetometer sensor message.
Definition UlogFile.hpp:159
float y
Px4 magnetic flux density about y in p-frame [//TODO].
Definition UlogFile.hpp:164
uint32_t error_count
error count
Definition UlogFile.hpp:167
uint32_t device_id
unique device identifier
Definition UlogFile.hpp:162
static constexpr uint8_t padding
padding
Definition UlogFile.hpp:170
uint64_t timestamp
Px4 magnetometer time since startup in [µs].
Definition UlogFile.hpp:160
float x
Px4 magnetic flux density about x in p-frame [//TODO].
Definition UlogFile.hpp:163
uint64_t timestamp_sample
[µs]
Definition UlogFile.hpp:161
float z
Px4 magnetic flux density about z in p-frame [//TODO].
Definition UlogFile.hpp:165
float temperature
Px4 temperature of gyro sensor in [°C].
Definition UlogFile.hpp:166
Combined (sensor-)message name with unique ID.
Definition UlogFile.hpp:71
uint8_t multi_id
the same message format can have multiple instances, for example if the system has two sensors of the...
Definition UlogFile.hpp:72
std::string message_name
message name to subscribe to
Definition UlogFile.hpp:73
Px4 air data sensor message.
Definition UlogFile.hpp:218
uint64_t timestamp
Px4 air data sensor time since startup in [µs].
Definition UlogFile.hpp:219
float baro_temp_celcius
Px4 barometric temperature in [°C].
Definition UlogFile.hpp:223
uint32_t baro_device_id
unique device identifier
Definition UlogFile.hpp:221
float baro_alt_meter
Px4 barometric altitude in [m].
Definition UlogFile.hpp:222
static constexpr uint8_t padding
padding
Definition UlogFile.hpp:227
float baro_pressure_pa
Px4 barometric pressure in [Pa].
Definition UlogFile.hpp:224
Px4 GPS attitude message.
Definition UlogFile.hpp:207
static constexpr uint8_t padding
padding
Definition UlogFile.hpp:213
std::array< float, 4 > q
Px4 GPS attitude quaternion.
Definition UlogFile.hpp:209
std::array< float, 4 > delta_q_reset
delta q reset
Definition UlogFile.hpp:210
uint8_t quat_reset_counter
Quaternion reset counter.
Definition UlogFile.hpp:211
uint64_t timestamp
Px4 GPS sensor time since startup in [µs].
Definition UlogFile.hpp:208
Px4 control data message.
Definition UlogFile.hpp:232
bool flag_external_manual_override_ok
Flag: external manual override ok.
Definition UlogFile.hpp:235
bool flag_control_fixed_hdg_enabled
Flag: fixed heading enabled.
Definition UlogFile.hpp:250
bool flag_control_climb_rate_enabled
Flag: climb rate enabled.
Definition UlogFile.hpp:248
bool flag_control_auto_enabled
Flag: auto mode enabled.
Definition UlogFile.hpp:237
bool flag_control_force_enabled
Flag: force enabled.
Definition UlogFile.hpp:243
bool flag_control_attitude_enabled
Flag: attitude mode enabled.
Definition UlogFile.hpp:240
bool flag_control_manual_enabled
Flag: manual mode enabled.
Definition UlogFile.hpp:236
static constexpr uint8_t padding
padding
Definition UlogFile.hpp:252
uint64_t timestamp
Px4 controller time since startup in [µs].
Definition UlogFile.hpp:233
bool flag_control_rattitude_enabled
Flag: rattitude enabled.
Definition UlogFile.hpp:242
bool flag_control_offboard_enabled
Flag: offboard enabled.
Definition UlogFile.hpp:238
bool flag_armed
Flag: Arm switch.
Definition UlogFile.hpp:234
bool flag_control_position_enabled
Flag: position enabled.
Definition UlogFile.hpp:246
bool flag_control_velocity_enabled
Flag: velocity enabled.
Definition UlogFile.hpp:245
bool flag_control_acceleration_enabled
Flag: acceleration enabled.
Definition UlogFile.hpp:244
bool flag_control_altitude_enabled
Flag: altitude enabled.
Definition UlogFile.hpp:247
bool flag_control_yawrate_override_enabled
Flag: yawrate override enabled.
Definition UlogFile.hpp:241
bool flag_control_rates_enabled
Flag: rates enabled.
Definition UlogFile.hpp:239
bool flag_control_termination_enabled
Flag: termination enabled.
Definition UlogFile.hpp:249
Px4 GPS sensor message.
Definition UlogFile.hpp:175
float heading_offset
heading offset
Definition UlogFile.hpp:197
int32_t alt_ellipsoid
Altitude above ellipsoid in [mm] (unit retains precision despite integer)
Definition UlogFile.hpp:181
float vdop
Vertical dilusion of precision.
Definition UlogFile.hpp:187
float c_variance_rad
Variance of angle [rad²].
Definition UlogFile.hpp:183
float vel_e_m_s
Velocity east component in [m/s].
Definition UlogFile.hpp:192
float s_variance_m_s
Variance of speed [m²/s²].
Definition UlogFile.hpp:182
int32_t timestamp_time_relative
Relative time stamp.
Definition UlogFile.hpp:195
float vel_m_s
Velocity in [m/s].
Definition UlogFile.hpp:190
int32_t jamming_indicator
Jamming indicator.
Definition UlogFile.hpp:189
float vel_d_m_s
Velocity down component in [m/s].
Definition UlogFile.hpp:193
uint64_t timestamp
Px4 GPS sensor time since startup in [µs].
Definition UlogFile.hpp:176
int32_t lat
Latitude in [deg * 1e7] (unit retains precision despite integer)
Definition UlogFile.hpp:178
int32_t noise_per_ms
Noise per millisecond.
Definition UlogFile.hpp:188
bool vel_ned_valid
Flag for validation of velocity in NED.
Definition UlogFile.hpp:199
uint64_t time_utc_usec
Px4 GPS UTC time in [µs].
Definition UlogFile.hpp:177
float eph
Horizontal position error in [m].
Definition UlogFile.hpp:184
float hdop
Horizontal dilusion of precision.
Definition UlogFile.hpp:186
float vel_n_m_s
Velocity north component in [m/s].
Definition UlogFile.hpp:191
float cog_rad
Center of gravity.
Definition UlogFile.hpp:194
int32_t lon
Longitude in [deg * 1e7] (unit retains precision despite integer)
Definition UlogFile.hpp:179
int32_t alt
Altitude above ground in [mm] (unit retains precision despite integer)
Definition UlogFile.hpp:180
float epv
Vertical position error in [m].
Definition UlogFile.hpp:185
static constexpr uint8_t padding
padding
Definition UlogFile.hpp:202
Px4 vehicle status message.
Definition UlogFile.hpp:257
uint8_t component_id
component id
Definition UlogFile.hpp:269
uint8_t rc_input_mode
RC input mode.
Definition UlogFile.hpp:277
bool is_vtol_tailsitter
Flag: is vertical take-off and landing tailsitter.
Definition UlogFile.hpp:272
uint8_t vehicle_type
vehicle type
Definition UlogFile.hpp:270
uint8_t latest_arming_reason
latest arming reason
Definition UlogFile.hpp:284
bool data_link_lost
Flag: Data link lost.
Definition UlogFile.hpp:278
bool in_transition_mode
Flag: transition mode.
Definition UlogFile.hpp:274
uint8_t latest_disarming_reason
latest disarming reason
Definition UlogFile.hpp:285
bool high_latency_data_link_lost
Flag: high latency data link lost.
Definition UlogFile.hpp:280
bool mission_failure
Flag: mission failure.
Definition UlogFile.hpp:282
std::array< uint8_t, 5 > _padding0
padding
Definition UlogFile.hpp:286
bool is_vtol
Flag: is vertical take-off and landing.
Definition UlogFile.hpp:271
bool failsafe
Flag: failsafe.
Definition UlogFile.hpp:266
uint32_t onboard_control_sensors_health
onboard control sensors health
Definition UlogFile.hpp:262
uint8_t arming_state
arming state
Definition UlogFile.hpp:264
bool rc_signal_lost
Flag: RC signal lost.
Definition UlogFile.hpp:276
uint8_t hil_state
hil state
Definition UlogFile.hpp:265
uint8_t failure_detector_status
failure detector status
Definition UlogFile.hpp:283
uint8_t system_type
system type
Definition UlogFile.hpp:267
uint32_t onboard_control_sensors_enabled
onboard control sensors enabled
Definition UlogFile.hpp:261
uint8_t nav_state
nav state
Definition UlogFile.hpp:263
uint32_t onboard_control_sensors_present
onboard control sensors present
Definition UlogFile.hpp:260
uint64_t nav_state_timestamp
[µs]
Definition UlogFile.hpp:259
bool vtol_fw_permanent_stab
Flag: vertical take-off and landing fw permanent stability.
Definition UlogFile.hpp:273
bool in_transition_to_fw
Flag: transition to fw.
Definition UlogFile.hpp:275
uint8_t system_id
system id
Definition UlogFile.hpp:268
uint8_t data_link_lost_counter
Counter how often data link was lost.
Definition UlogFile.hpp:279
bool engine_failure
Flag: engine failure.
Definition UlogFile.hpp:281