chkmie/uav-resilience-bench
收藏Hugging Face2026-01-28 更新2026-03-29 收录
下载链接:
https://hf-mirror.com/datasets/chkmie/uav-resilience-bench
下载链接
链接失效反馈官方服务:
资源简介:
---
license: apache-2.0
task_categories:
- time-series-forecasting
- robotics
tags:
- uav
- drone
- navigation
- gps-denied
- electronic-warfare
- sensor-fusion
- kalman-filter
- inertial-navigation
- physics-simulation
- ukraine
- military
- defense
language:
- en
pretty_name: UAV Navigation Resilience Benchmark
size_categories:
- 1M<n<10M
configs:
- config_name: default
data_files:
- split: train
path: data/train.jsonl
---
# UAV Navigation Resilience Benchmark
<div align="center">
<img src="https://img.shields.io/badge/Samples-1,820,400-blue" alt="Samples">
<img src="https://img.shields.io/badge/Scenarios-11-green" alt="Scenarios">
<img src="https://img.shields.io/badge/License-Apache%202.0-red" alt="License">
<img src="https://img.shields.io/badge/Physics-Full%206--DOF-orange" alt="Physics">
</div>
## Dataset Description
High-fidelity UAV navigation simulation data with realistic **Electronic Warfare (EW) jamming scenarios** based on OSINT profiles of Russian military systems deployed in Ukraine.
### Why This Dataset?
Most UAV navigation datasets are "fair weather" - they don't include adversarial conditions. This dataset fills that gap:
- **GPS Jamming**: Realistic signal denial based on Zhitel, Pole-21, and Krasukha-4 specifications
- **INS Drift**: Allan variance-based MEMS IMU modeling shows real navigation degradation
- **Ground Truth Labels**: Every sample has true position for supervised learning
- **Scenario Diversity**: From nominal flight to complete GPS denial
### Key Statistics
| Metric | Value |
|--------|-------|
| **Total Samples** | 1,820,400 |
| **Sample Rate** | 10 Hz |
| **Scenarios** | 11 |
| **Features** | 20 columns |
| **Physics** | Full 6-DOF dynamics |
| **IMU Model** | Allan variance (tactical grade) |
## Schema (Nested JSON)
Each sample is a nested JSON object designed for both **Supervised Learning** and **Reinforcement Learning**:
```json
{
"meta": {"run_id": "...", "scenario": "...", "instance": 0, "batch": 1},
"timestamp_s": 45.3,
"ground_truth": {"pos_ned_m": [x,y,z], "vel_ned_mps": [vx,vy,vz]},
"sensors": {
"imu": {"accel_body_mps2": [...], "gyro_body_rads": [...]},
"gps": {"valid": true, "cn0_dbhz": 45, "hdop": 1.2, "num_sats": 10}
},
"environment": {"jammer_active": false, "jammer_distance_m": 5000, "jammer_power_dbm": 30},
"baseline": {"ukf_pos_est": [...], "ukf_pos_error_m": 2.5}
}
```
### Key Fields
| Path | Type | Description |
|------|------|-------------|
| `ground_truth.pos_ned_m` | [3] float | True position (labels) |
| `sensors.imu.accel_body_mps2` | [3] float | Raw accelerometer (with bias/noise) |
| `sensors.imu.gyro_body_rads` | [3] float | Raw gyroscope (with bias/noise) |
| `sensors.gps.cn0_dbhz` | float | Signal strength (key for jamming detection) |
| `sensors.gps.hdop` | float | Dilution of precision |
| `environment.jammer_active` | bool | EW label for classification |
| `baseline.ukf_pos_error_m` | float | UKF error to beat |
## Scenarios
| Scenario | Samples | Avg Error | Description |
|----------|---------|-----------|-------------|
| `baseline_nominal` | 126,000 | 94.8m |
| `baseline_urban` | 222,000 | 94.8m |
| `stress_complete_gps_denial` | 222,000 | 6480.6m |
| `stress_rapid_maneuvers` | 50,400 | 977.2m |
| `stress_sensor_degradation` | 126,000 | 3496.5m |
| `ukraine_assault_heavy_ew` | 133,200 | 6430.2m |
| `ukraine_coastal_crimea` | 252,000 | 3005.8m |
| `ukraine_recon_light_ew` | 252,000 | 4105.5m |
| `ukraine_spoofing_attack` | 126,000 | 1388.9m |
| `ukraine_trench_warfare` | 88,800 | 6491.8m |
| `ukraine_urban_moderate` | 222,000 | 2966.1m |
## Usage
```python
from datasets import load_dataset
# Load dataset
ds = load_dataset("chkmie/uav-resilience-bench")
# Filter Ukraine scenarios
ukraine = ds['train'].filter(lambda x: 'ukraine' in x['meta']['scenario'])
# Get jamming periods
jammed = ds['train'].filter(lambda x: x['environment']['jammer_active'])
# Extract features for ML
sample = ds['train'][0]
imu_accel = sample['sensors']['imu']['accel_body_mps2']
gps_valid = sample['sensors']['gps']['valid']
true_pos = sample['ground_truth']['pos_ned_m']
```
## Use Cases
1. **GPS Denial Detection**: Binary classification of `jamming_active`
2. **State Estimation**: Regress `true_pos` from `est_pos` + context
3. **Filter Training**: Learn to reduce `position_error_m`
4. **Anomaly Detection**: Detect navigation degradation onset
5. **RL Filter Selection**: Train policy to switch navigation modes
## Technical Details
### Simulation Framework
- **Dynamics**: 6-DOF quadcopter model
- **IMU**: MEMS tactical grade with Allan variance noise
- **GPS**: Constellation-based with HDOP effects
- **Filter**: 15-state Unscented Kalman Filter
- **EW**: RF propagation-based jamming effectiveness
### EW Systems Modeled
| System | Type | Range | Power |
|--------|------|-------|-------|
| Zhitel (R-330Zh) | Jamming | 30 km | 20 dBm |
| Pole-21 | Jamming | 25 km | 30 dBm |
| Krasukha-4 | Jamming | 150 km | 50 dBm |
| Trench Jammer | Portable | 5 km | 15 dBm |
## Citation
```bibtex
@dataset{foss2026uavresilience,
author = {Foss, David},
title = {UAV Navigation Resilience Benchmark},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/datasets/chkmie/uav-resilience-bench}},
note = {ORCID: 0009-0004-0289-7154}
}
```
## License
Apache 2.0
## Author
**David Foss** - ORCID: [0009-0004-0289-7154](https://orcid.org/0009-0004-0289-7154)
---
*Physics-based simulation dataset - Commercial licensing available*
提供机构:
chkmie



