Preprocessed Subset of IDF-DS for GPS-Denied UAV Inertial Odometry
收藏资源简介:
Preprocessed Subset of IDF_DS for GPS-Denied UAV Inertial Odometry This dataset is a preprocessed subset of the Fixed-Wing UAS Telemetry Benchmark (IDF_DS) by García Gascón et al. (2025, DOI 10.5281/zenodo.16992976, CC-BY 4.0), unified into a single 10 Hz CSV schema with consistent SI units for direct ML pipeline ingestion. The original IDF_DS contains 240 flights across two heterogeneous platforms with different native formats and unit conventions: PX4 ULOG for Holybro Pixhawk 6X and INAV Blackbox for SpeedyBee F405. This preprocessing harmonizes both platforms into a common schema for GPS-denied UAV inertial odometry experiments. Input sources are per-topic CSVs decoded from PX4 ULOG for Holybro and a unified telemetry CSV decoded from INAV Blackbox for SpeedyBee. Each flight is resampled onto a uniform 100 ms grid using pandas.merge_asof with topic-specific tolerances: IMU 50 ms, attitude 100 ms, position 150 ms, airspeed 2 s, and battery 500 ms. No low-pass filtering, decimation averaging, or gravity removal is applied. The IMU stream is point-sampled to preserve the original signal characteristics, so downstream models can apply their own filtering if needed. Holybro PX4 sensor, position, and velocity channels are already in SI units and pass through unchanged; the attitude quaternion is the exception and is recomputed as described below rather than copied from the onboard estimate. SpeedyBee INAV channels are converted from native low-level representations: accelerometer from MPU6000 ADC counts at ±8g and 4096 LSB/g to m/s² using × 9.81/4096, gyroscope from deg/s to rad/s, attitude from decidegrees to ZYX Euler angles and then to a unit quaternion, position from cm to m, velocity from cm/s to m/s, and navigation-frame acceleration from cm/s² to m/s². Voltage and current are kept in V and A. SpeedyBee flights lack a pitot tube, so airspeed is synthesized from INAV's estimated wind and ground velocity as the horizontal magnitude sqrt((vx − wind_n)² + (vy − wind_e)²). A flight is dropped only if a required PX4 topic, namely vehicle_local_position, vehicle_attitude, or sensor_combined, is missing, or if the resampled flight has fewer than 50 rows. Remaining NaN values are filled with 0.0, notably for missing airspeed, voltage, or current channels. The attitude channels are MARG (magnetometer, angular-rate gyroscope, and accelerometer) complementary-filter orientation estimates that do not depend on GNSS; they are neither GPS-fused nor EKF-derived navigation states. The two platforms reach this estimate by different routes. For Holybro, the onboard PX4 attitude (vehicle_attitude) is produced by the GPS-aided EKF2 navigation filter; to remove that GNSS coupling, the attitude quaternion in this subset is recomputed with a Mahony-type MARG complementary filter from the body-frame accelerometer, gyroscope, and magnetometer. For SpeedyBee, INAV's onboard attitude is already a MARG complementary-filter (AHRS) estimate that is independent of GNSS, so it is used directly and only converted from decidegree Euler angles to a unit quaternion. In both cases the result is represented as a unit quaternion q0–q3 and should be interpreted as a GNSS-independent, MARG-filtered orientation rather than a GPS-fused or EKF-derived state. The magnetometer is used only inside this attitude filter and is not exposed as a separate model-input channel. The target position columns are stored as target_dx, target_dy, and target_dz in meters in the local NED frame. They are taken from each platform's onboard local-position navigation solution, which on these platforms is produced with GNSS aiding; they are therefore reference/label trajectories, not GNSS-free states, and are never used as model inputs. The target columns are provided only for supervised training and evaluation. Under the GPS-denied inference protocol the model never sees position or velocity, but the supervision labels themselves are derived from the onboard GNSS/EKF navigation reference. The non-position and non-velocity telemetry consists of 14 features that are available as model inputs: airspeed (1), MARG-filtered attitude quaternion q0–q3 (4), body-frame gyroscope (3), body-frame acceleration (3), and navigation-frame acceleration (3), giving a 14-dimensional vector of 1 + 4 + 3 + 3 + 3 features. Downstream models may use all of them or any subset. Position and velocity channels may exist in the original logs and in the released CSV files for reference, evaluation, and reproducibility, but they are explicitly excluded from the model input and treated as unavailable under the GPS-denied inference protocol. GPS-derived position and velocity are thus withheld from the model input; they remain in the CSV files only for constructing reference labels and for evaluation. A flight-disjoint 70/15/15 train/validation/test split is applied with np.random.seed(42) for reproducibility. Each flight CSV contains 24 columns: body-frame IMU acceleration acc_x/y/z in m/s², body-frame angular rate gyro_x/y/z in rad/s, attitude as MARG-filtered unit quaternion q0..q3, airspeed in m/s, NED velocity vx/vy/vz in m/s, NED navigation-frame acceleration ax_nav/ay_nav/az_nav in m/s², heading in rad, electrical metrics voltage in V and current in A, reference NED position target_dx/y/z in m, and metadata flight_id and timestamp_s. Among these columns, the 14 non-position/non-velocity telemetry features listed above are the ones intended for use as model inputs. Two important notes for users are provided. First, body-frame IMU axes follow each platform's native convention and are not re-aligned across platforms. A first-row sanity check shows Holybro acc_z ≈ −9.7 m/s², corresponding to PX4 NED z-down with gravity included, whereas SpeedyBee acc_z ≈ +6.5 m/s², reflecting a different INAV convention. Both the body-frame channels (acc_*) and the navigation-frame channels (ax_nav, ay_nav, az_nav) are provided so that users can select whichever representation suits their setup. Second, the target position columns are reference trajectories for supervised training and evaluation, not inference-time inputs; they are derived from each platform's onboard GNSS-aided navigation solution and should be used only as labels. The attitude channels, by contrast, are GNSS-independent MARG-filtered orientation estimates rather than EKF-derived attitude states. The GPS-denied setting in this subset should therefore be interpreted as a protocol in which the position and velocity channels are withheld from the model input, while the inertial, MARG-filtered attitude, airspeed, and navigation-frame acceleration channels remain available. Final statistics: 127 Holybro flights and 111 SpeedyBee flights, 238 total, all preprocessed successfully under the criteria above. If you use this dataset, please cite both the original IDF_DS by García Gascón et al. (2025, DOI 10.5281/zenodo.16992976) and this preprocessed version. This dataset is released under CC-BY 4.0, the same license as the original IDF_DS.



