Schema and Parsing Conventions
A loader that ignores any of these silently corrupts data:
- Quaternion order
(w,x,y,z)in CSV vs(x,y,z,w)in ROS — read positionally. px4_gps.csvheader has a trailing empty token: 11 header tokens, 10 data columns.rtk_gps{1,2}_data_revised.csvare headerless, 7 columns (v_x,v_y,v_z, not the README-advertisedx,y,z).ground_truth/px4_imu_data.csvis headerless (drops the first sample if read header-inferred).- Camera-calibration YAMLs have duplicate top-level keys
rs_cam0/rs_cam1(lose intrinsics under naive load). T_pximu_rsimurows are whitespace-tokenized (no intra-row commas);T_pximu_lsimu/T_pximu_rsimurotations are reduced-precision (re-orthonormalize).rs_odom/mocapheaders have a space after each comma — strip column names.- Image
t[ns]is floating-point seconds, not nanoseconds.#img_nois a 1-based index.- stereo pairs share an identical
t[ns](disambiguate by_c1/_c2, not timestamp). - Stereo
_c1/_c2counts are not guaranteed equal — a few unpaired leading/trailing singleton (mono) frames occur onindoor_*and several Mars runs (indoor_19495 c1 / 9492 c2,mars_187682 / 7673; the threetransition_*are balanced by timestamp rows), so pair by_c1/_c2+ equalt[ns], never by index or odd/even position. - Balanced timestamp rows still do not guarantee usable files: the three transition runs contain referenced stereo pairs that are absent on disk (Known Defects).
- No NaN sentinels in extraction: invalid LRF reads (high and low), no-fix GPS, zero magnetic vectors, and dropped UWB anchors pass through as literal numbers; only RealSense odometry and the no-fix GPS placeholder use explicit markers (NaN / the
1.84e13cov /lat==0). - Support/
_data/_revisedfiles are time-supersets, crops, swapped, or re-timed variants — none substitutes for its primary file. - Timestamp-pathology inventory (handle generically via the Time and Clocks “file order is authoritative” rule; this list is the audited footprint, not an oracle):
- duplicate consecutive timestamps —
px4_rpmonindoor_1/indoor_2(1 s buckets), nav-camt[ns]on every Mars run with imagery exceptmars_1, and same-lane stereo rows by design (each_c1/_c2pair shares onet[ns]). - backward
tsteps —rs_odommars_2(1) andrs_odom_datamars_4(1), and stereot[ns]onindoor_3(1),mars_8(3),mars_9(2),mars_10(3),mars_11(2),mars_12(1),mars_13(8),mars_14(4),mars_16(2),mars_19(1).
- duplicate consecutive timestamps —