CRM / V2I UWB work zone geometry reconstruction experimental dataset package
Data files
Aug 03, 2026 version files 112.76 MB
-
CRM_Experimental_Dataset.zip
112.75 MB
-
README.md
19.41 KB
Abstract
This package is an acceptance-ready dataset documentation skeleton for the CCAT final report. It is designed to accompany the raw and processed project data files collected for the CRM/UWB vehicle-to-infrastructure work zone geometry reconstruction project. Status: this package is populated with the data and data visualizations behind every experiment reported in the paper. The reproduction code is distributed separately (see code_or_notebooks/README.md); this deposit holds data and figures only. For the explicit mapping from each paper table/figure to the files here, see TABLE_TO_DATA_MAP.md.
Repository / DOI: https://doi.org/10.5061/dryad.xgxd254xf
Description of the data and file structure
This CRM_Experimental_Dataset.zip folder contains the experimental data and data visualizations supporting the paper Vehicle-to-Infrastructure Work Zone Geometry Reconstruction with Pose-Conditioned UWB Range Denoising*. The study evaluates multi-anchor ultra-wideband (UWB) range denoising and downstream work zone geometry reconstruction using both controlled simulation benchmarks and a real-world vehicle-to-infrastructure (V2I) field deployment.
The deposit contains the raw and processed field data, simulation configurations and datasets, fixed episode-level splits, reported result tables, and paper visualizations. The reproduction code is distributed separately; see code_or_notebooks/README.md. For the explicit mapping from every reported table and figure to its source data, see
`TABLE_TO_DATA_MAP.md`.
All planar positions are expressed in meters in a local east-north coordinate frame. The simulation tag trajectory begins at (0, 0). Field positions use the measured site geometry and an RTK/INS-derived local frame. Field timestamps are Unix epoch seconds; simulation timestamps are seconds after the start of an episode. UWB anchor identities are fixed within an episode. Field anchors 51–54 are mapped to array columns by 'anchor_slot_ids', while simulation anchors are indexed by their per-episode array slot.
Missing or unavailable numeric values are represented by NaN in .npz files and by blank fields where applicable in .csv files. In range tensors, obs_masks identifies valid measurements; a zero-filled range entry must not be treated as valid when its mask is 0. Several .npz fields are NumPy object arrays because episode length or anchor count can vary. Load these files with allow_pickle=True in a trusted environment.
Files and variables
File: CRM_Experimental_Dataset_Acceptance_Package
Description: This is the package root. It contains the field dataset, simulation benchmark, result tables, visualizations, machine-readable documentation, and a pointer to the separate code release.
field
This folder contains the measured UWB and RTK/INS field data and the aligned datasets
used for the field evaluation.
field/raw
This folder contains eight dynamic UWB ranging-event logs, two static reference logs, and dynamic and static RTK/INS pose streams.
*arduino_ranging_events_2.csv through arduino_ranging_events_6.csv and arduino_ranging_events_10.csv through arduino_ranging_events_12.csv*: Dynamic UWB
ranging events. Each row is one range observation from a cone-mounted anchor.
* pc_time: PC-clock timestamp in Unix epoch seconds.
* anchor_id: UWB anchor identifier; observed field identifiers are 51–54.
* range_m: Raw UWB measured range in meters.
* rx_dBm: Received signal power in dBm.
100.csv and 140.csv: Static reference logs. The numeric file names are retained as
the nominal reference labels.
* Timestamp: PC-clock timestamp in Unix epoch seconds.
* Arduino Output: Raw device message containing the anchor ID, measured range in
meters, received power in dBm, or a link-status message.
inspvax_dyna.csv and inspvax_stat.csv: Dynamic and static NovAtel INSPVAX RTK/INS streams used to construct the field reference frame and vehicle pose trajectory.
* time: Human-readable recording time.
* header: Message header containing the Unix timestamp and frame identifier.
* nov_header: NovAtel message metadata, GPS week/time, receiver status, and sequence information.
* ins_status, pos_type, ext_sol_status: INS, position-solution, and extended solution status records.
* latitude, longitude: Geodetic position in degrees.
* height, undulation: Ellipsoidal height and geoid undulation in meters.
* north_velocity, east_velocity, up_velocity: Velocity components in meters per second.
* roll, pitch, azimuth: Vehicle attitude angles in degrees.
* latitude_stdev, longitude_stdev, height_stdev: Position standard-deviation fields.
* north_velocity_stdev, east_velocity_stdev, up_velocity_stdev: Velocity standard-deviation fields.
* roll_stdev, pitch_stdev, azimuth_stdev: Attitude standard-deviation fields.
* time_since_update: Time since the last solution update.
* extended_params: Additional body-frame velocity values and variances.
field/processed
This folder contains two versions of the aligned field dataset, episode summaries, calibration parameters, and field visualizations. Both .npz datasets contain 10 episodes: 2 static episodes and 8 dynamic episodes. Dynamic UWB events were aggregated into 0.10 s bins.
real_dataset_provisional.npz: Aligned pose-range-mask sequences used as the source dataset for the reported field evaluation. The dynamic reference geometry is based on the measured site dimensions, explicit anchor-to-corner assignment, RTK/INS trajectory, and measured GPS-to-tag lever arm.
real_dataset_calibrated.npz: Auxiliary calibrated-geometry version of the same 10 field episodes. It retains the same observation and mask streams while providing the corresponding calibrated position, anchor-geometry, and reference-distance arrays.
The paper-result mapping identifies real_dataset_provisional.npz as the evaluation source.
The two .npz files use the following fields:
* episode_names: Episode identifiers.
* episode_types: static or dynamic.
* source_files: Raw UWB file associated with each episode.
* anchor_slot_ids: Fixed mapping from array slots to field anchor IDs
[51, 52, 53, 54].
* timestamps: Per-episode arrays of Unix timestamps.
* positions: Vehicle-mounted UWB tag positions, shaped [episode][T, 2], in the local east-north frame.
* gps_positions: Interpolated RTK/INS antenna positions, shaped [episode][T, 2], in the same frame.
* obs_distances: Observed per-anchor UWB ranges, shaped [episode][T, 4], in meters.
* obs_masks: Validity mask for obs_distances, shaped [episode][T, 4].
* rx_power: Per-anchor received signal power, shaped [episode][T, 4], in dBm.
* provisional_gt_distances: Retained provisional reference-distance array used by the field-processing pipeline.
* gt_distances: Geometry-derived reference ranges for dynamic episodes, in meters; unavailable static entries are NaN.
* cones: Per-episode 2D anchor/cone coordinates, shaped [episode, 4, 2]; unavailable static geometry is NaN.
* nominal_truth_label: Static-file reference label (100 or 140); dynamic entries are NaN.
real_dataset_provisional_summary.csv and real_dataset_calibrated_summary.csv:
One row per processed episode.
* episode_name, episode_type, source_file: Episode identity, category, and raw source.
* num_steps: Number of aggregated time steps.
* time_start, time_end: First and last Unix timestamps.
* anchors_seen: Number of anchors observed in the episode.
* anchor_ids_seen: Comma-separated field anchor IDs observed.
* nominal_truth_label: Static reference label; blank for dynamic episodes.
field/processed/calibration
This folder keeps calibration parameters separate from evaluation labels.
real_raw_affine_calibration.json: Per-anchor input-range calibration parameters and fit diagnostics for the dynamic field episodes.
* affine_a, affine_b: Slope and intercept of the affine input calibration.
* offset_only_b: Intercept of the offset-only alternative.
* raw_mse, raw_mae: Error before calibration.
* affine_mse, affine_mae: Error after affine calibration.
* offset_mse, offset_mae: Error after offset-only calibration.
* overall: Metrics aggregated across field anchors.
stagea_real_postcal.json: Per-anchor degree-1 output calibration for the field-adapted proposed model.
* affine_a, affine_b: Output-calibration slope and intercept.
* mse, mae: Per-anchor and overall calibrated errors.
* degree: Polynomial degree, equal to 1.
* base_stagea_ckpt: Checkpoint identifier from the separate code release.
* input_affine_json: Input-calibration file used by the pipeline.
stagea_real_postcal_deg2.json: Per-anchor degree-2 output calibration used for the reported field-calibrated proposed-method row.
* poly_coeffs: Quadratic, linear, and intercept coefficients.
* mse, mae: Per-anchor and overall calibrated errors.
* degree: Polynomial degree, equal to 2.
* base_stagea_ckpt, input_affine_json: External checkpoint identifier and input calibration dependency.
field/processed/figures
This folder contains the field-data visualizations.
* settings.png: Cone-mounted UWB-RSU, vehicle tag/RTK mounting, lever arm, and trapezoidal work zone layout.
* visualization.png: Progressive reconstruction of the work zone geometry.
* gps_event_segments.png: Dynamic UWB episode segmentation along the RTK/INS stream.
* real_dynamic_geometry.png: Driven trajectory and field anchor layout.
* real_sequence_examples.png: Example raw and denoised range sequences by anchor.
simulation
This folder contains the clean and challenging simulation benchmarks, generation configurations, fixed episode-level splits, held-out test sets, and visualizations. The datasets are deterministic given the released configuration and RNG seed 0.
simulation/configs
challenging_v2.json and clean_v2.json: Simulation-generation parameters.
* num_zone_shapes, trajectories_per_shape, steps_per_trajectory: Benchmark size and episode length.
* cones_range: Inclusive range of per-episode anchor counts.
* area_size: Simulated planar area in meters.
* frequency: Sampling frequency in Hz.
* init_speed, speed_noise, heading_noise, speed_range: Vehicle trajectory parameters.
* noise_std, sigma_dist_slope, ar1_rho: Base, distance-dependent, and temporally correlated range-noise parameters.
* outlier_prob, outlier_scale: Impulsive outlier parameters.
* p_nlos, nlos_offset_range: NLOS occurrence probability and added offset range.
* nlos_burst: Challenging-regime NLOS-burst start probability, mean duration, and offset range.
* dropout_burst: Challenging-regime dropout-burst start probability, mean duration, and corruption scale.
* bias_per_anchor_std, bias_drift_std: Anchor-specific bias and drift parameters.
* fov_deg, fov_dropout_scale: Vehicle field-of-view and out-of-view corruption parameters.
* sim_data_clean_path, sim_data_challenging_path: Generator output path settings.
simulation datasets
sim_data_challenging_v2.npz: Challenging benchmark with 1,440 episodes and 250 steps per episode.
sim_data_clean_v2.npz: Clean benchmark with 800 episodes and 220 steps per episode.
Both files contain:
* positions: Tag trajectory, shaped [episode, T, 2], in meters.
* velocities: Planar tag velocity, shaped [episode, T, 2].
* accelerations: Planar tag acceleration, shaped [episode, T, 2].
* gt_distances: Ground-truth tag-to-anchor distances,
shaped [episode][T, N], in meters.
* obs_distances: Corrupted observed ranges, shaped [episode][T, N], in meters.
* nlos_mask: Per-anchor NLOS indicator, shaped [episode][T, N].
* cones: Per-episode anchor coordinates, shaped [episode][N, 2], in meters.
* timestamps: Time vector in seconds after episode start.
simulation/splits
sim_data_challenging_v2_splits_seed0.json: Episode indices for the challenging 70/15/15 split: 1,008 train, 216 validation, and 216 test episodes.
sim_data_clean_v2_splits_seed0.json: Episode indices for the clean 70/15/15 split: 560 train, 120 validation, and 120 test episodes.
* train, val, test: Mutually exclusive episode-index lists. Splitting is performed at the episode level to avoid trajectory leakage.
sim_data_challenging_v2_test.npz and sim_data_clean_v2_test.npz: Held-out test episodes used for all reported simulation results. They use the same fields as the full simulation datasets.
simulation/figures
* scenario_overview.png: NLOS rates and range-error tails in the clean and challenging regimes.
* distance_vs_time_challenging.png: Observed, reference, and denoised range behavior for one anchor stream in an NLOS-heavy episode.
results
This folder contains one .csv file per reported result table. The values are the exact
numbers reported in the paper.
The common result variables are:
* Method or Variant: Evaluated method, checkpoint, or ablation.
* MSE: Mean squared range error in square meters.
* MAE: Mean absolute range error in meters.
* Anchor_Error_w: Mean Euclidean cone-position error over valid anchors, in meters.
* IoU: Intersection-over-union of reconstructed and reference work zone polygons.
* Hausdorff: Symmetric Hausdorff distance between polygon boundaries, in meters.
* LOS, NLOS, Overall: Line-of-sight, non-line-of-sight, and all-valid-sample subsets.
simulation_range_mse.csv: LOS, NLOS, and overall range MSE for every method in the challenging and clean test sets.
* Challenging_MSE_LOS, Challenging_MSE_NLOS, Challenging_MSE_Overall: Challenging benchmark metrics.
* Clean_MSE_LOS, Clean_MSE_NLOS, Clean_MSE_Overall: Clean benchmark metrics.
polygon_tuned_checkpoints.csv: Comparison of the base and polygon-tuned propose model checkpoints.
* MSE_Overall: Overall range MSE.
* IoU, Hausdorff: Downstream polygon metrics.
bootstrap_robustness.csv: Episode-weighted bootstrap range-MSE summaries.
* Challenging_mean_CI, Clean_mean_CI: Formatted mean [lower, upper] confidence interval for each benchmark.
tail_burst_metrics.csv: Range-error tail and contiguous NLOS-burst diagnostics on the challenging test split.
* Tail_p95, Tail_p99: 95th and 99th percentiles of absolute range error in meters.
* Burst_max_mean, Burst_max_p95: Mean and 95th percentile of the maximum absolute error within each NLOS burst, in meters.
* Recovery_p95: 95th percentile of the number of steps after a burst required for absolute error to fall below the recovery threshold.
anchor_stress_robustness.csv: Overall range MSE under missing anchors and anchor re-indexing.
* Drop_0_0, Drop_0_1, Drop_0_3, Drop_0_5: Mean MSE at dropout rates 0, 0.1, 0.3, and 0.5.
* Perm_MSE_mean_std: Formatted mean ± standard deviation over 20 episode-consistent anchor permutations.
cone_localization_downstream.csv: Cone-position accuracy under canonical anchor ordering and polygon stability under anchor permutations.
* Anchor_Error_w: Weighted mean cone-position error in meters.
* IoU_perm_mean, IoU_perm_std: Polygon IoU mean and standard deviation over 20 episode-consistent anchor permutations.
dropout_downstream_iou.csv: Polygon quality under anchor dropout.
* IoU_at_drop_0_0, IoU_at_drop_0_3, IoU_at_drop_0_5: Polygon IoU at dropout rates 0, 0.3, and 0.5.
component_ablation.csv: Proposed-model component and runtime-removal sensitivity.
* MSE_Overall, MSE_NLOS: Overall and NLOS range MSE.
* IoU: Downstream polygon IoU.
pose_noise_sensitivity.csv: Range MSE after injecting zero-mean planar noise into the model pose input at test time.
* MSE_at_0_0, MSE_at_0_25, MSE_at_0_5: Overall MSE at pose-noise levels 0, 0.25 m, and 0.50 m.
field_dynamic_episode_results.csv: Aggregate method comparison on the eight dynamic field episodes.
* MSE, MAE: Range error relative to the field geometry reference.
* Anchor_Error_w, IoU, Hausdorff: Downstream field-geometry metrics.
results/figures
* tail_error_cdf_ccdf.png: Absolute-error CDF and complementary CDF.
* dropout_robustness.png: Range MSE versus anchor-dropout rate.
* downstream_robustness_summary.png: Polygon robustness under permutation and dropout.
* pose_noise_sensitivity.png: Range and downstream sensitivity to injected pose noise.
Package documentation and integrity files
data_dictionary.csv: Machine-readable definitions for the principal field, simulation, and evaluation variables.
* field_name: Variable name.
* type_or_unit: Data type, array type, or unit.
* definition: Variable meaning and, where relevant, array shape.
dataset_manifest.csv: File-level integrity manifest.
* relative_path: Path relative to this package root.
* size_bytes: File size in bytes.
* sha256: SHA-256 checksum.
* status: File role, such as raw data, simulation dataset, calibration, reported result table, documentation, or data visualization.
qa_checklist.csv: Machine-readable acceptance checklist and current completion status.
* check_item: Acceptance requirement.
* status: Current state (ready or needs_update).
* notes: Evidence or remaining action.
TABLE_TO_DATA_MAP.md: Mapping from every paper table and figure to the package file and source dataset used to produce it.
code_or_notebooks/README.md: Pointer and data-routing notes for the separate reproduction-code release.
Code/software
This deposit contains data and data visualizations only. The separate reproduction release contains the simulation generator, preprocessing, model training, evaluation, and plotting scripts. That release requires Python 3.10 or later; a CUDA-capable GPU is recommended for training, while evaluation can run on CPU. NumPy is required to read the compressed .npz datasets.
The simulation benchmarks can be regenerated from simulation/configs/*.json with RNG seed 0. Evaluation of the paper results uses the held-out files in simulation/splits/. The field pipeline aligns field/raw/ into field/processed/real_dataset_provisional.npz and applies the separately stored calibration files under field/processed/calibration/.
Access information
Other publicly accessible locations of the data:
Repository / DOI: https://doi.org/10.5061/dryad.xgxd254xf.
The simulation data were generated from the configurations included in this package. The field data were collected for the CRM/UWB V2I work zone geometry reconstruction project.
Contact:
* Author email: jliu2487@wisc.edu
* License / access terms: Data files in this Dryad deposit are released under the CC0 1.0 Universal Public Domain Dedication.
Supplemental Information
The associated final report and other creative materials deposited as Supplemental Information through Zenodo are released under the Creative Commons Attribution 4.0 International (CC BY 4.0) license.
Suggested citation:
Liu, J., Li, H., Cheng, Y., Fu, S., Gan, R., You, J., Tang, W., Zhang, P., Parker, S. T., Li, X., and Ran, B. Vehicle-to-Infrastructure Work Zone Geometry Reconstruction with Pose-Conditioned UWB Range Denoising. CCAT Final Report dataset package, 2026.
