DYNAMICS LAB · ENGINE01

Observational Uncertainty & Multi-Sensor Consistency — MILUV substitution

Study context

Problem addressed
How much does calibration change UWB range residuals on the selected indoor flights?
Contribution relative to existing methods
The experiment compares paired raw and calibrated measurements against a reference and reports uncertainty coverage.
Potential commercial use
Design acceptance checks for indoor range measurements before a localization pilot.

Market context and value assumptions on the engine page

DME-002

Experiment conclusions

Across three MILUV flights and 34,019 range observations, the published calibration reduced mean absolute UWB error from 22.4 to 17.7 cm. The nominal 95% interval covered only 84.0% of observations, so the reported uncertainty was too narrow for this sample.

Study limits. The test evaluates ranges rather than 3D position. The comparison is descriptive because independence from the sensor calibration data was not established.

DME-002 · REAL EXPERIMENTAL DATA

Computed 2026-11-06T10:25:51.257151+00:00 · reproducible scientific prototype

Objective & dataset

Assess historical UWB measurement consistency and uncertainty against a motion-capture-derived reference.

{
  "real_flights_analyzed": 3,
  "source_uwb_rows": 34019,
  "observations_analyzed": 34019,
  "excluded_uwb_rows": 0,
  "source_mocap_rows": 48515,
  "matched_mocap_ranges": 34012
}

Measured and computed results

flight_idnMAE_mRMSE_mbias_mcoverage95raw_RMSE_m
default_1_circular2D_099600.198960.3362880.1423730.8110440.383192
default_1_circular3D_095150.2023530.341770.1420530.8078820.390488
default_1_random3_0145440.1446470.2601740.0968960.8811190.308842
Observation-weighted per-flight range RMSE; source calibration is not an independent sensor comparison.
Observation-weighted per-flight range RMSE; source calibration is not an independent sensor comparison.
Display stride only; all valid rows enter metrics. No3D position error inferred.
Display stride only; all valid rows enter metrics. No3D position error inferred.

Source substitution and numerical cross-check

{
  "original": "AERPAW DOI10.5061/dryad.7d7wm3898",
  "reason": "Official public download403 and API401; no matching local archive; user authorized another scientific source",
  "scope_change": "UWB scalar range vs motion-capture-derived distance instead of radar/RF3D position; no claimed position or independent sensor accuracy"
}
flightmatchedunmatchedreconstructed_reference_RMSE_m
default_1_circular2D_0995460.001141
default_1_circular3D_0951410.002354
default_1_random3_01454400.003461

Synchronisation sensitivity

flighttolerance_soffset_smatchedRMSE_m
default_1_circular2D_00.005094250.337427
default_1_circular2D_00.01099460.336281
default_1_circular2D_00.02099540.336398
default_1_circular2D_00.02-0.0299520.338656
default_1_circular2D_00.02-0.0199530.337517
default_1_circular2D_00.020.0199540.335344
default_1_circular2D_00.020.0299540.334339
default_1_circular3D_00.005078720.34414
default_1_circular3D_00.01094280.341531
default_1_circular3D_00.02095140.341774
default_1_circular3D_00.02-0.0295130.344017
default_1_circular3D_00.02-0.0195120.342653
default_1_circular3D_00.020.0195130.340873
default_1_circular3D_00.020.0295120.339957
default_1_random3_00.0050132450.25891
default_1_random3_00.010145010.260472
default_1_random3_00.020145440.260172
default_1_random3_00.02-0.02145420.260337
default_1_random3_00.02-0.01145430.260203
default_1_random3_00.020.01145420.260076
default_1_random3_00.020.02145420.260005

Method & parameters

# DME-002 — method

Kind: REAL EXPERIMENTAL DATA. Algorithm: dme-miluv-1.0.

AERPAW unavailable(403public/401API), replaced with user-authorized MILUV v1(CC BY4.0). Three predefined single-UAV sequences share anchor constellation0. Every selected UWB row analyzed; finite/positive gates, first timestamp+pair duplicate retained, explicit stable time sort. Residual=calibrated(or raw) range−source gt_range, metres. Source gt_range derived from motion capture, not exact truth. Published std assessed with ±1.95996398454σ nominal normal95percent intervals. A second computation uses nearest motion capture(≤20ms), no extrapolation: tag_world=p_world+Rotation(quaternion xyzw)×tag_body; distance=norm(tag_world−anchor_world), pinned published extrinsics. Tolerance5/10/20ms and offset−20/−10/0/10/20ms sensitivity reported. Source spline-derived reference may differ from nearest-time reconstruction. No synchronization fitted to residuals; no3D position error claimed. Pooled metrics observation-weighted; equal-flight MAE separately reported. Source calibration training/validation independence unknown; total systematic uncertainty unavailable.

## Limits
- UWB range residual is not3D position error or UAV intent.
- Source gt_range is motion-capture-derived, not exact physical truth; reconstruction uses same reference system.
- Published std is a calibrated measurement uncertainty model, not known total uncertainty; nominal normal95percent coverage is measured, not guaranteed.
- Source calibrator training/held-out independence not established; before/after comparison is descriptive.
- Three selected flights/one UAV/indoor constellation0 do not establish generalization across36experiments or platforms.
- Nearest-time differences and source spline processing can explain reconstructed-vs-published reference differences; no unrecorded alignment or recalibration.

## Source
{
  "name": "MILUV: A Multi-UAV Indoor Localization dataset with UWB and Vision",
  "doi": "10.25452/figshare.plus.28386041.v1",
  "version": 1,
  "source": "https://api.figshare.com/v2/articles/28386041",
  "license": "CC BY 4.0",
  "authors": [
    "Mohammed Shalaby",
    "Syed Shabbir Ahmed",
    "Nicholas Dahdah",
    "Charles Cossette",
    "Jerome Le Ny",
    "James R. Forbes"
  ],
  "available_experiments_source_description": 36,
  "selected_flights": [
    "default_1_circular2D_0",
    "default_1_circular3D_0",
    "default_1_random3_0"
  ],
  "selected_members": [
    {
      "name": "default_1_circular2D_0/ifo001/uwb_range.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250714",
      "archive_size": 1862182413,
      "whole_archive_checksum_verified": false,
      "bytes": 5971295,
      "crc32": "4dba162d",
      "sha256": "7fc6a81e554a2ab609fc36b2cbef9aa166a4676a486be8862d4bd9623566e75b"
    },
    {
      "name": "default_1_circular2D_0/ifo001/mocap.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250714",
      "archive_size": 1862182413,
      "whole_archive_checksum_verified": false,
      "bytes": 2215752,
      "crc32": "72ef8c2b",
      "sha256": "32bf4a2876a3a4902d1dc387feb084a253528f60d35f1b98ce57c75ba4c5a19a"
    },
    {
      "name": "default_1_circular3D_0/ifo001/uwb_range.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250702",
      "archive_size": 1671977142,
      "whole_archive_checksum_verified": false,
      "bytes": 5704219,
      "crc32": "9048d367",
      "sha256": "8fc39328e537ed0b01f083a2355b78d7f497ba0aec58b257775ae4fcb6033def"
    },
    {
      "name": "default_1_circular3D_0/ifo001/mocap.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250702",
      "archive_size": 1671977142,
      "whole_archive_checksum_verified": false,
      "bytes": 2048266,
      "crc32": "d0b477ea",
      "sha256": "b508cc1479b697a1eb49ad5e259d1ade8501e1cf3d7821202bfa603e234d43e5"
    },
    {
      "name": "default_1_random3_0/ifo001/uwb_range.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250735",
      "archive_size": 2551133105,
      "whole_archive_checksum_verified": false,
      "bytes": 8747251,
      "crc32": "5df54254",
      "sha256": "05e4423870f001bbb1e6136c260e80055b694ddae20648e6b51c77cb14e64330"
    },
    {
      "name": "default_1_random3_0/ifo001/mocap.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250735",
      "archive_size": 2551133105,
      "whole_archive_checksum_verified": false,
      "bytes": 3123830,
      "crc32": "c65aae08",
      "sha256": "08bb608c14050f83a4f40711f09d8c281e4d6560663852ec3b7e0a3b021d5855"
    }
  ],
  "devkit_commit": "399ad46f4e6e88c3c98b40aae33fe8e2c6719cff",
  "configuration_hashes": {
    "config/experiments.csv": "8b66ed2185c7b68dc67ce285a1f481175b21cec7613bff8b732f841d2b79dc3c",
    "config/uwb/anchors.yaml": "4e38cef90d8db1cc0fed2a51aa2b67fee3a637140d4bdb685c1608472b5bb4f3",
    "config/uwb/tags.yaml": "6499c59ebfd498d3077d00c3fbecc3c873112641f25d1f1473b94b1a63be3215",
    "preprocess/cleanup_csv.py": "0798479fc0476a2dbbee644875fc0d04423d0c9c965ebfa42a9ca35aad820dbb",
    "preprocess/process_uwb.py": "e5e32fc672effec2af9ab21b14d3406d534bc27da1d85eba06766936493f4e3b",
    "miluv/utils.py": "dce4a0fa78744b70c183838f6f1bb000aef16775c6c098f929e186ecb8e822a6",
    "examples/ekfutils/imu_one_robot_models.py": "4b4beeaa1f73cf03a97d4f002aabd36de6f176e71d79fdbdd24e6a86c3f984ad"
  }
}

Validation and reproducibility

# Reproduce DME-002

Use Python3.12 and the pinned lock. From the distribution root:

    python -m dynamics.cli run DME-002 --data /your/local/dynamics-data
    python -m dynamics.cli reproduce JOB_UUID --data /your/local/dynamics-data

The second command rehashes every acquired source object, reparses original selected ZIP bytes and recomputes mathematical results offline, with the original manifest parameters. Missing or altered cached bytes fail explicitly; a new download is a new acquisition, not substitution for an old vintage. The results_sha256 excludes measured execution timing but includes all scientific results and source identities. Public source packages do not contain multi-GB third-party archives. Dataset source availability may change. All seeds/parameters/dependency versions and source hashes are in the manifest.

Scientific result SHA-256: 1011008f5d536e6f415f5f94f3d797d682971c26650577891ab0d800684ce89d. Numerical correctness is evaluated with independent controls and source replay; scientific validity remains bounded by source quality and model assumptions.

Limits

UWB range residual is not3D position error or UAV intent.
Source gt_range is motion-capture-derived, not exact physical truth; reconstruction uses same reference system.
Published std is a calibrated measurement uncertainty model, not known total uncertainty; nominal normal95percent coverage is measured, not guaranteed.
Source calibrator training/held-out independence not established; before/after comparison is descriptive.
Three selected flights/one UAV/indoor constellation0 do not establish generalization across36experiments or platforms.
Nearest-time differences and source spline processing can explain reconstructed-vs-published reference differences; no unrecorded alignment or recalibration.

Sources & attribution

{
  "name": "MILUV: A Multi-UAV Indoor Localization dataset with UWB and Vision",
  "doi": "10.25452/figshare.plus.28386041.v1",
  "version": 1,
  "source": "https://api.figshare.com/v2/articles/28386041",
  "license": "CC BY 4.0",
  "authors": [
    "Mohammed Shalaby",
    "Syed Shabbir Ahmed",
    "Nicholas Dahdah",
    "Charles Cossette",
    "Jerome Le Ny",
    "James R. Forbes"
  ],
  "available_experiments_source_description": 36,
  "selected_flights": [
    "default_1_circular2D_0",
    "default_1_circular3D_0",
    "default_1_random3_0"
  ],
  "selected_members": [
    {
      "name": "default_1_circular2D_0/ifo001/uwb_range.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250714",
      "archive_size": 1862182413,
      "whole_archive_checksum_verified": false,
      "bytes": 5971295,
      "crc32": "4dba162d",
      "sha256": "7fc6a81e554a2ab609fc36b2cbef9aa166a4676a486be8862d4bd9623566e75b"
    },
    {
      "name": "default_1_circular2D_0/ifo001/mocap.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250714",
      "archive_size": 1862182413,
      "whole_archive_checksum_verified": false,
      "bytes": 2215752,
      "crc32": "72ef8c2b",
      "sha256": "32bf4a2876a3a4902d1dc387feb084a253528f60d35f1b98ce57c75ba4c5a19a"
    },
    {
      "name": "default_1_circular3D_0/ifo001/uwb_range.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250702",
      "archive_size": 1671977142,
      "whole_archive_checksum_verified": false,
      "bytes": 5704219,
      "crc32": "9048d367",
      "sha256": "8fc39328e537ed0b01f083a2355b78d7f497ba0aec58b257775ae4fcb6033def"
    },
    {
      "name": "default_1_circular3D_0/ifo001/mocap.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250702",
      "archive_size": 1671977142,
      "whole_archive_checksum_verified": false,
      "bytes": 2048266,
      "crc32": "d0b477ea",
      "sha256": "b508cc1479b697a1eb49ad5e259d1ade8501e1cf3d7821202bfa603e234d43e5"
    },
    {
      "name": "default_1_random3_0/ifo001/uwb_range.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250735",
      "archive_size": 2551133105,
      "whole_archive_checksum_verified": false,
      "bytes": 8747251,
      "crc32": "5df54254",
      "sha256": "05e4423870f001bbb1e6136c260e80055b694ddae20648e6b51c77cb14e64330"
    },
    {
      "name": "default_1_random3_0/ifo001/mocap.csv",
      "archive_url": "https://ndownloader.figshare.com/files/52250735",
      "archive_size": 2551133105,
      "whole_archive_checksum_verified": false,
      "bytes": 3123830,
      "crc32": "c65aae08",
      "sha256": "08bb608c14050f83a4f40711f09d8c281e4d6560663852ec3b7e0a3b021d5855"
    }
  ],
  "devkit_commit": "399ad46f4e6e88c3c98b40aae33fe8e2c6719cff",
  "configuration_hashes": {
    "config/experiments.csv": "8b66ed2185c7b68dc67ce285a1f481175b21cec7613bff8b732f841d2b79dc3c",
    "config/uwb/anchors.yaml": "4e38cef90d8db1cc0fed2a51aa2b67fee3a637140d4bdb685c1608472b5bb4f3",
    "config/uwb/tags.yaml": "6499c59ebfd498d3077d00c3fbecc3c873112641f25d1f1473b94b1a63be3215",
    "preprocess/cleanup_csv.py": "0798479fc0476a2dbbee644875fc0d04423d0c9c965ebfa42a9ca35aad820dbb",
    "preprocess/process_uwb.py": "e5e32fc672effec2af9ab21b14d3406d534bc27da1d85eba06766936493f4e3b",
    "miluv/utils.py": "dce4a0fa78744b70c183838f6f1bb000aef16775c6c098f929e186ecb8e822a6",
    "examples/ekfutils/imu_one_robot_models.py": "4b4beeaa1f73cf03a97d4f002aabd36de6f176e71d79fdbdd24e6a86c3f984ad"
  }
}

Execution evidence

{
  "acquisition_and_analysis_seconds": 5.1550677079940215,
  "total_seconds": 5.363840707985219,
  "network_bytes_this_run": 0,
  "source_response_bytes": 18750216,
  "process_peak_rss_bytes": 309002240,
  "rss_scope": "Whole process lifetime peak; no unmeasured hard RSS guarantee"
}