mirror of
https://github.com/ruvnet/RuView
synced 2026-06-09 10:13:17 +00:00
0d3d835bf8
* feat(swarm): add wifi-densepose-swarm crate implementing ADR-148 drone swarm control system
New crate `wifi-densepose-swarm` with hierarchical-mesh swarm topology,
Raft consensus, MAPPO MARL, CSI sensing integration, and ITAR-gated
coordination features. Closes 3 of 7 milestones (M1, M2, M5) with 5/5
ADR-148 SOTA performance targets met.
## Modules (45 source files, 14 modules)
- types: NodeId, DroneState, Position3D, SwarmTask, SwarmError, FailSafeState
- topology: Raft consensus (leader election, log replication, quorum), Gossip, Mesh
- formation: VirtualStructure, LeaderFollower, Reynolds flocking (itar-gated)
- planning: RRT-APF hybrid planner, 3-phase coverage, Bayesian grid, pheromone
- allocation: Auction + FNN bid scorer (itar-gated)
- sensing: CsiPayloadPipeline (Live/Synthetic/Replay), MultiViewFusion, OccWorldBridge
- marl: MAPPO actor (3-layer MLP), LocalObservation (64-dim), RewardCalculator, PPO loop
- security: MAVLink v2 HMAC-SHA256, UWB anti-spoofing, geofence, Remote ID, FHSS
- failsafe: 10-state onboard machine, GCS-independent safety transitions
- config: TOML SwarmConfig with SAR/inspection/agriculture/mine/demo/wi2sar_reference
- demo: SyntheticCsiGenerator, DemoScenario (SAR/open-field/mine)
- integration: FlightController trait, MAVLink dialect (50000-50005), SwarmSim
- orchestrator: SwarmOrchestrator wiring all subsystems end-to-end
- bench_support: Criterion fixture generators
## ITAR compliance
Swarming coordination features gated behind `itar-unrestricted` feature
per USML Category VIII(h)(12). Default build compiles clean stubs.
## Benchmark results (criterion, release mode)
- MARL actor inference: 3.3 µs (target ≤ 5 ms — 1,516× headroom)
- RRT-APF planning (100 iter): 0.043 ms (target < 300 ms — 6,946× headroom)
- MultiView CSI fusion (3 UAVs): 58.5 ns (target < 10 ms — 171,000× headroom)
- 3-view localization: 1.732 m (target ≤ 2 m — beats Wi2SAR SOTA)
- 4-drone SAR coverage (400×400 m): 223 s (target ≤ 240 s — PASS)
## Tests
- --no-default-features: 73/73 passing
- --features itar-unrestricted: 85/85 passing
Closes #861
Co-Authored-By: claude-flow <ruv@ruv.net>
* refactor(swarm): rename wifi-densepose-swarm → ruview-swarm
The swarm control system is a RuView-level capability (drone coordination,
Raft consensus, MARL) that operates above the wifi-densepose sensing layer
rather than being a sub-component of it. Rename aligns with the project
identity and separates coordination infrastructure from sensing modules.
Co-Authored-By: claude-flow <ruv@ruv.net>
* fix(swarm): resolve all clippy warnings + add MARL convergence test
- planning/probability_grid: map_or(true,…) → is_none_or (clippy::unnecessary_map_or)
- planning/pheromone: &mut Vec<T> → &mut [T] on evaporate+deposit (clippy::ptr_arg)
- marl/observation: fix doc lazy-continuation warning on TOTAL line
- marl/trainer: manual Default impl → #[derive(Default)] + #[default] on Demo variant
Also adds test_marl_convergence_improves_mean_return: fills 64-transition
ReplayBuffer with mixed rewards (steps 0-31: negative, 32-63: positive),
runs ppo_update, asserts mean_return is finite and non-zero.
Result: 0 clippy warnings · 74/74 tests (default) · 86/86 (itar-unrestricted)
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(swarm): integrate Ruflo AI-agent capabilities into ruview-swarm
Adds a feature-gated Ruflo integration layer connecting ruview-swarm to the
claude-flow daemon's AgentDB, AIDefence, and SONA intelligence subsystems.
Default build is unaffected (all paths behind `Option<Box<dyn RufloBackend>>`).
## New module: src/ruflo/
- backend.rs: RufloBackend trait (9 async methods) + RufloError, MissionMemoryEntry,
PatternEntry, MavlinkScanResult types (always compiled)
- mock_backend.rs: MockRufloBackend in-memory impl for testing (always compiled, 5 tests)
- http_backend.rs: HttpRufloBackend — JSON-RPC 2.0 → claude-flow daemon localhost:3000
(gated behind `ruflo` feature, requires reqwest)
- mission_summary.rs: MissionSummary serializer with pattern description + confidence
scoring from victim recall, coverage %, collision penalty (always compiled, 3 tests)
## 4 capability areas
1. MissionMemory → memory_store / memory_search (cross-mission victim memory)
2. PatternLearner → agentdb_pattern-store / -search (HNSW SONA trajectory patterns)
3. MavlinkDefence → aidefence_is_safe / aidefence_scan (scan MAVLink before accepting)
4. IntelligenceHooks → trajectory-start/step/end (SONA learning loop)
## SwarmOrchestrator integration
- with_ruflo(backend): builder to attach a backend
- start_trajectory(task) / finish_trajectory(success, key): SONA mission lifecycle
- receive_peer_detection_checked(): AIDefence scan before accepting peer detections
## Cargo feature
`ruflo = ["dep:reqwest", "dep:serde_json"]` — optional, not in default
## Tests
- --no-default-features: 82/82 pass (8 new ruflo tests)
- --features ruflo,itar-unrestricted: 94/94 pass
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(swarm): M7 mission profiles with victim confirmation reports + pre-merge docs
Adds end-to-end mission runners producing structured MissionReport output,
and updates project docs (CHANGELOG, README, CLAUDE.md) per pre-merge checklist.
## M7 Mission Profiles (integration/mission_report.rs + swarm_sim.rs)
- MissionReport / VictimReport / SotaComparison types (serde-serializable)
- run_mission_with_report(): full mission → detailed report with per-victim
localization error, fusion uncertainty, contributing drones, detection time
- run_inspection_mission(): leader-follower power-line corridor inspection
- run_mine_mission(): GPS-denied underground (2-drone, slow, UWB-only)
- SotaComparison embeds Wi2SAR baseline (5m / 810s) vs achieved metrics
## Docs (pre-merge checklist)
- CHANGELOG.md: ruview-swarm + Ruflo integration + performance entries
- README.md: ruview-swarm row
- CLAUDE.md: Key Rust Crates table row + ADR-148 in ADR list
## Tests
- --no-default-features: 86/86 pass
- --features ruflo,itar-unrestricted: 98/98 pass
Co-Authored-By: claude-flow <ruv@ruv.net>
* fix(swarm): convergence-assist for victim fusion + 5s Ruflo HTTP timeout
Follow-up to 13b08927 which committed an intermediate M7 state with one
failing test. This lands the M7 agent's convergence fixes and the security
review's timeout hardening.
## Fixes
- swarm_sim.rs: min-separation nudge before collision metric (0 collisions
with staggered starts) + Phase-3 convergence assist that vectors the nearest
idle peer toward a single-drone CSI contact so multi-view fusion can fire
- http_backend.rs: add 5s request timeout to reqwest client (security review
Medium finding — a dead daemon would otherwise hang the swarm step loop)
## Security review verdict (HttpRufloBackend)
Safe to merge. No credentials in requests, serde_json prevents injection,
fail-open on daemon-down is documented and appropriate for SAR missions,
MAVLink passed as structured text (not raw bytes). Timeout fix applied.
## Tests
- --no-default-features: 87/87 pass
- --features ruflo,itar-unrestricted: 100/100 pass
Co-Authored-By: claude-flow <ruv@ruv.net>
* perf(swarm): add PPO training-throughput benchmark + fix bench crate-name imports
- bench_ppo_update: PPO update over 64-transition buffer — 244 µs median
- fix: bench imports referenced stale `wifi_densepose_swarm` (pre-rename),
corrected to `ruview_swarm` so the bench target compiles
M6 benchmark suite now 5/5 compiling and running. Tests unchanged: 87/100.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(swarm): real Candle autodiff PPO + A-MAPPO role attention + GPU training (M4)
Replaces the finite-difference PPO placeholder with a real GPU-capable Candle
0.9 autodiff trainer, adds A-MAPPO heterogeneous-role attention, a runnable
training binary, and right-sized GCP/local launch scripts. This is the unlock
that makes "GPU long training cycles" actually mean something — the previous
ppo_update did no gradient descent.
## Real autodiff PPO (feature `train`, optional `cuda`)
- candle_ppo.rs: CandleActorCritic (64→128→64 MLP + action/value heads +
learnable log_std), CandlePpoConfig, CandleTrainer with GAE and a genuine
optimizer.backward_step over the network. select_device() picks CUDA when
built --features cuda and a GPU is present, else CPU.
- Verified: 5-episode CPU smoke run shows value_loss 12643→12375 (critic
actually learning); safetensors checkpoint saved. Placeholder never moved weights.
## A-MAPPO heterogeneous-role attention (role_attention.rs, always compiled)
Addresses the four sensor-vs-relay edge cases:
- relay attention floor (prevents collapse — relays produce no CSI)
- role-segmented sensor/relay attention pools (variable neighbor cardinality)
- sensor-gated triangulation-geometry penalty (protects 3-view fusion baseline,
ADR-148 §4.2 — relays not dragged into triangulation geometry)
- one-hot role embeddings for keys
## Training binary
- src/bin/train_marl.rs (required-features=["train"], excluded from default build)
- CLI: --episodes --drones --profile --steps --checkpoint-dir --checkpoint-every
- Wires CandleTrainer to the SwarmOrchestrator rollout loop; GAE + PPO update
per episode; periodic safetensors checkpoints
## Right-sized launch (scripts/gcp/)
- provision_marl.sh: g2-standard-16 (1× L4, 16 vCPU, ~$1.40/hr) — NOT the
$29/hr A100×8 box. MARL is rollout-bound not matmul-bound; ~21× cheaper.
- run_marl_train.sh: GCP rsync + train + checkpoint pull
- run_marl_train_local.sh: local RTX 5080, $0
- A100×8 provision_training.sh left for OccWorld (which saturates the GPUs)
## Tests
- --no-default-features: 91/91 (87 + 4 role_attention)
- --features train: 96/96 (+ 5 candle_ppo, incl. real-autodiff verification)
- --features ruflo,itar-unrestricted: 104/104
- default build stays light: train_marl excluded via required-features
Co-Authored-By: claude-flow <ruv@ruv.net>
* docs(adr-148): mark M4 complete — real GPU autodiff training; overall 98%
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(swarm): training visualizer — JSONL telemetry + self-contained HTML viewer
Adds an offline, dependency-free visualization for the drone training system:
a top-down swarm replay synced with training-metric curves, fed by a JSONL
telemetry log the trainer emits. No server, no build step, no CDN.
## Telemetry recorder (integration/telemetry.rs, always compiled, no new deps)
- TelemetryRecorder writes newline-delimited JSON: one `meta` (profile, area,
ground-truth victims), many `step` (per-tick drone x/y/heading/battery/detection
+ coverage%), and per-episode `episode` (mean_return, policy_loss, value_loss).
- Written by hand (no serde_json) so it stays in the default build; 2 tests.
## train_marl telemetry flags
- `--telemetry FILE` writes the log; `--telemetry-episode N` selects which
episode's spatial steps to record (metrics recorded for all episodes).
## Visualizer (viz/swarm_viz.html — single file, vanilla JS + canvas)
- LEFT: top-down replay — heading-oriented drone triangles (cyan/lime on
detection), victim markers, growing coverage heatmap, detection pulse rings,
play/pause/scrub/speed controls + live coverage/detection readout.
- RIGHT: three autoscaled line charts (mean return, policy loss, value loss)
over episodes, hand-drawn (no chart library).
- Loads via file picker/drag-drop or auto-fetches the bundled sample; dark
drone-ops theme; graceful degradation on file:// CORS.
- viz/sample_telemetry.jsonl: real 30-episode / 4-drone / 400×400 m run
(value_loss 20052→7154 — visible critic learning). Parses 1 meta / 60 step / 30 episode.
## Usage
cargo run --release -p ruview-swarm --features train,cuda --bin train_marl -- \
--episodes 5000 --telemetry run.jsonl
open v2/crates/ruview-swarm/viz/swarm_viz.html # load run.jsonl
Tests unchanged (91 default / 96 train / 104 ruflo+itar); telemetry adds 2.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(swarm): selectable flight + self-learning patterns, wired into training + viz
Adds multiple flight/coverage-optimization strategies and self-learning
strategies, selectable from the trainer, and fixes drone clustering — the
demo sweep now covers 36% of the area (was ~0.9%) with 4 disjoint strips.
## Flight patterns (planning/patterns.rs) — `FlightPattern`
- PartitionedLawnmower (new default): area split into per-drone strips → no
overlap, coverage scales ~linearly with swarm size (clustering fix)
- Boustrophedon (baseline), Spiral, Pheromone (stigmergic), PotentialField,
LevyFlight. from_str/name/all + next_target(&PatternContext).
## Self-learning patterns (marl/learning.rs) — `LearningPattern`
- Mappo (CTDE centralized critic), Ippo (independent, jamming-robust),
MappoCuriosity (count-based intrinsic novelty), MetaRl (MAML fast-adapt).
- CuriosityModule (visit_bonus = beta/sqrt(count), novelty decays on revisit),
MetaAdapter (base + fast-weights, reset_fast/consolidate), shaped_reward().
## Trainer wiring (bin/train_marl.rs)
- --flight-pattern {boustrophedon|partitioned|spiral|pheromone|potential|levy}
- --learn-pattern {mappo|ippo|curiosity|meta}
- Rollout now moves each drone per the selected FlightPattern (PatternContext
with visited trail + live peers), curiosity-shapes the reward, and logs
CTDE vs independent. Telemetry meta profile carries the pattern labels so the
viewer header shows `flight=… · learn=…`.
## Verification
- Browser pass (viz at localhost:8777): partitioned run renders 4 distinct
serpentine coverage bands, header shows the patterns, final coverage 36.3%,
scrubber/speed/playback work, ZERO console errors. Screenshot confirmed.
- Regenerated viz/sample_telemetry.jsonl: 1 meta / 120 step / 30 episode,
coverage 0.9% → 36.3%.
## Tests
- --no-default-features: 103/103 (was 91; +6 patterns +6 learning)
- --features train: 108/108
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(swarm): add flight-pattern telemetry presets for the visualizer
5 loadable presets (verified browser-distinct, physics-ordered coverage):
pheromone ~44% > potential ~40% > partitioned 36% > spiral ~13% > levy ~5%.
Load any in viz/swarm_viz.html to compare flight strategies without retraining.
Co-Authored-By: claude-flow <ruv@ruv.net>
* chore(swarm): clippy-clean + publish guard for ruview-swarm
- ruview-swarm src is now 0 clippy warnings across default/train/full feature
sets (derive Default, targeted allows for intentional from_str + bounded
casts + borrow-required index loops; removed redundant unsigned .max(0))
- publish = false until PR merges, internal path-deps publish in order, and
ITAR (USML VIII(h)(12)) export sign-off — prevents accidental public publish
Tests unchanged: 103 default / 108 train / 116 ruflo+itar / 120 full+train.
(6 remaining clippy warnings are pre-existing in dependency wifi-densepose-core,
out of scope for this crate.)
Co-Authored-By: claude-flow <ruv@ruv.net>
* ci(swarm): add ruview-swarm CI guard
Path-scoped guard for v2/crates/ruview-swarm/** (ADR-148). Complements the
main ci.yml (which only runs the default workspace tests):
- feature-matrix tests: default / train / ruflo+itar / full+train
- clippy -D warnings --no-deps (crate-own code only; dep warnings don't gate)
- train_marl bin builds under 'train' AND is excluded from the default build
- ITAR/publish guards: publish=false present, itar-unrestricted never in default
All steps verified locally green before commit.
Co-Authored-By: claude-flow <ruv@ruv.net>
162 lines
50 KiB
JSON
162 lines
50 KiB
JSON
{"type":"meta","profile":"sar · flight=pheromone · learn=curiosity","drones":4,"area_w":400.00,"area_h":400.00,"victims":[[80.00,120.00],[240.00,180.00]]}
|
|
{"type":"episode","ep":0,"mean_return":909.8773,"policy_loss":-1373.0941,"value_loss":956946.5000,"victims_found":0}
|
|
{"type":"episode","ep":1,"mean_return":909.8773,"policy_loss":-2027.0466,"value_loss":955717.4375,"victims_found":0}
|
|
{"type":"episode","ep":2,"mean_return":909.8773,"policy_loss":-2704.4690,"value_loss":954429.7500,"victims_found":0}
|
|
{"type":"episode","ep":3,"mean_return":909.8773,"policy_loss":-3431.6497,"value_loss":953026.5000,"victims_found":0}
|
|
{"type":"episode","ep":4,"mean_return":909.8773,"policy_loss":-4220.8271,"value_loss":951425.5000,"victims_found":0}
|
|
{"type":"episode","ep":5,"mean_return":909.8773,"policy_loss":-5090.0303,"value_loss":949588.3750,"victims_found":0}
|
|
{"type":"episode","ep":6,"mean_return":909.8773,"policy_loss":-6055.3833,"value_loss":947438.6875,"victims_found":0}
|
|
{"type":"episode","ep":7,"mean_return":909.8773,"policy_loss":-7143.1519,"value_loss":944922.5000,"victims_found":0}
|
|
{"type":"episode","ep":8,"mean_return":909.8773,"policy_loss":-8401.0352,"value_loss":942037.0625,"victims_found":0}
|
|
{"type":"episode","ep":9,"mean_return":909.8773,"policy_loss":-9862.7295,"value_loss":938742.3125,"victims_found":0}
|
|
{"type":"episode","ep":10,"mean_return":909.8773,"policy_loss":-11555.9414,"value_loss":934963.1250,"victims_found":0}
|
|
{"type":"episode","ep":11,"mean_return":909.8773,"policy_loss":-13518.1543,"value_loss":930604.8125,"victims_found":0}
|
|
{"type":"episode","ep":12,"mean_return":909.8773,"policy_loss":-15794.6592,"value_loss":925595.4375,"victims_found":0}
|
|
{"type":"episode","ep":13,"mean_return":909.8773,"policy_loss":-18402.0176,"value_loss":919924.0000,"victims_found":0}
|
|
{"type":"episode","ep":14,"mean_return":909.8773,"policy_loss":-21357.6777,"value_loss":913558.3750,"victims_found":0}
|
|
{"type":"episode","ep":15,"mean_return":909.8773,"policy_loss":-24695.3242,"value_loss":906450.5000,"victims_found":0}
|
|
{"type":"episode","ep":16,"mean_return":909.8773,"policy_loss":-28444.9707,"value_loss":898552.9375,"victims_found":0}
|
|
{"type":"episode","ep":17,"mean_return":909.8773,"policy_loss":-32641.2109,"value_loss":889810.7500,"victims_found":0}
|
|
{"type":"episode","ep":18,"mean_return":909.8773,"policy_loss":-37315.1055,"value_loss":880183.2500,"victims_found":0}
|
|
{"type":"step","ep":19,"step":0,"t":0.00,"coverage":0.0139,"drones":[{"id":0,"x":18.00,"y":10.00,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":217.73,"y":12.07,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":6.95,"y":217.40,"hdg":1.962,"batt":100.0,"det":false},{"id":3,"x":215.66,"y":215.66,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":1,"t":1.00,"coverage":0.0192,"drones":[{"id":0,"x":18.00,"y":18.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":225.45,"y":14.14,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":9.02,"y":225.12,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":221.31,"y":221.31,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":2,"t":2.00,"coverage":0.0239,"drones":[{"id":0,"x":18.00,"y":26.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":233.18,"y":16.21,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":11.09,"y":232.85,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":226.97,"y":226.97,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":3,"t":3.00,"coverage":0.0292,"drones":[{"id":0,"x":18.00,"y":34.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":240.91,"y":18.28,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":13.16,"y":240.58,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":232.63,"y":232.63,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":4,"t":4.00,"coverage":0.0342,"drones":[{"id":0,"x":18.00,"y":42.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":248.64,"y":20.35,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":15.23,"y":248.31,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":238.28,"y":238.28,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":5,"t":5.00,"coverage":0.0400,"drones":[{"id":0,"x":18.00,"y":50.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":256.36,"y":22.42,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":17.30,"y":256.03,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":243.94,"y":243.94,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":6,"t":6.00,"coverage":0.0453,"drones":[{"id":0,"x":18.00,"y":58.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":264.09,"y":24.49,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":19.37,"y":263.76,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":249.60,"y":249.60,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":7,"t":7.00,"coverage":0.0503,"drones":[{"id":0,"x":18.00,"y":66.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":271.82,"y":26.56,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":21.44,"y":271.49,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":255.25,"y":255.25,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":8,"t":8.00,"coverage":0.0558,"drones":[{"id":0,"x":18.00,"y":74.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":279.55,"y":28.63,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":23.51,"y":279.22,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":260.91,"y":260.91,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":9,"t":9.00,"coverage":0.0608,"drones":[{"id":0,"x":18.00,"y":82.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":287.27,"y":30.71,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":25.58,"y":286.94,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":266.57,"y":266.57,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":10,"t":10.00,"coverage":0.0663,"drones":[{"id":0,"x":18.00,"y":90.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":295.00,"y":32.78,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":27.66,"y":294.67,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":272.23,"y":272.23,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":11,"t":11.00,"coverage":0.0712,"drones":[{"id":0,"x":18.00,"y":98.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":302.73,"y":34.85,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":29.73,"y":302.40,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":277.88,"y":277.88,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":12,"t":12.00,"coverage":0.0769,"drones":[{"id":0,"x":18.00,"y":106.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":310.46,"y":36.92,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":31.80,"y":310.12,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":283.54,"y":283.54,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":13,"t":13.00,"coverage":0.0817,"drones":[{"id":0,"x":18.00,"y":114.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":318.18,"y":38.99,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":33.87,"y":317.85,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":289.20,"y":289.20,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":14,"t":14.00,"coverage":0.0873,"drones":[{"id":0,"x":18.00,"y":122.00,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":325.91,"y":41.06,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":35.94,"y":325.58,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":294.85,"y":294.85,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":15,"t":15.00,"coverage":0.0925,"drones":[{"id":0,"x":12.62,"y":127.92,"hdg":2.309,"batt":100.0,"det":false},{"id":1,"x":333.64,"y":43.13,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":38.01,"y":333.31,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":300.51,"y":300.51,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":16,"t":16.00,"coverage":0.0980,"drones":[{"id":0,"x":12.62,"y":135.92,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":341.37,"y":45.20,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":40.08,"y":341.03,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":306.17,"y":306.17,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":17,"t":17.00,"coverage":0.1027,"drones":[{"id":0,"x":12.62,"y":143.92,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":349.09,"y":47.27,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":42.15,"y":348.76,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":311.82,"y":311.82,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":18,"t":18.00,"coverage":0.1080,"drones":[{"id":0,"x":12.62,"y":151.92,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":356.82,"y":49.34,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":44.22,"y":356.49,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":317.48,"y":317.48,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":19,"t":19.00,"coverage":0.1130,"drones":[{"id":0,"x":8.32,"y":158.67,"hdg":2.138,"batt":100.0,"det":false},{"id":1,"x":364.55,"y":51.41,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":46.29,"y":364.22,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":323.14,"y":323.14,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":20,"t":20.00,"coverage":0.1175,"drones":[{"id":0,"x":5.22,"y":166.04,"hdg":1.969,"batt":100.0,"det":false},{"id":1,"x":372.28,"y":53.48,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":48.36,"y":371.94,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":328.79,"y":328.79,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":21,"t":21.00,"coverage":0.1230,"drones":[{"id":0,"x":10.88,"y":171.70,"hdg":0.785,"batt":100.0,"det":false},{"id":1,"x":380.00,"y":55.55,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":50.43,"y":379.67,"hdg":1.309,"batt":100.0,"det":false},{"id":3,"x":334.45,"y":334.45,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":22,"t":22.00,"coverage":0.1281,"drones":[{"id":0,"x":16.53,"y":177.35,"hdg":0.785,"batt":100.0,"det":false},{"id":1,"x":384.00,"y":62.48,"hdg":1.047,"batt":100.0,"det":false},{"id":2,"x":57.36,"y":383.67,"hdg":0.524,"batt":100.0,"det":false},{"id":3,"x":340.11,"y":340.11,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":23,"t":23.00,"coverage":0.1338,"drones":[{"id":0,"x":24.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":388.00,"y":69.41,"hdg":1.047,"batt":100.0,"det":false},{"id":2,"x":64.29,"y":387.67,"hdg":0.524,"batt":100.0,"det":false},{"id":3,"x":345.76,"y":345.76,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":24,"t":24.00,"coverage":0.1373,"drones":[{"id":0,"x":32.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":391.55,"y":76.58,"hdg":1.111,"batt":100.0,"det":false},{"id":2,"x":71.42,"y":391.30,"hdg":0.470,"batt":100.0,"det":false},{"id":3,"x":351.42,"y":351.42,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":25,"t":25.00,"coverage":0.1419,"drones":[{"id":0,"x":40.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":394.18,"y":84.13,"hdg":1.236,"batt":100.0,"det":false},{"id":2,"x":78.95,"y":394.00,"hdg":0.345,"batt":100.0,"det":false},{"id":3,"x":357.08,"y":357.08,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":26,"t":26.00,"coverage":0.1459,"drones":[{"id":0,"x":48.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":396.05,"y":91.91,"hdg":1.335,"batt":100.0,"det":false},{"id":2,"x":86.71,"y":395.92,"hdg":0.243,"batt":100.0,"det":false},{"id":3,"x":362.74,"y":362.74,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":27,"t":27.00,"coverage":0.1497,"drones":[{"id":0,"x":56.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":397.34,"y":99.81,"hdg":1.409,"batt":100.0,"det":false},{"id":2,"x":94.60,"y":397.25,"hdg":0.167,"batt":100.0,"det":false},{"id":3,"x":368.39,"y":368.39,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":28,"t":28.00,"coverage":0.1539,"drones":[{"id":0,"x":64.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":398.21,"y":107.76,"hdg":1.461,"batt":100.0,"det":false},{"id":2,"x":102.55,"y":398.15,"hdg":0.113,"batt":100.0,"det":false},{"id":3,"x":374.05,"y":374.05,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":29,"t":29.00,"coverage":0.1577,"drones":[{"id":0,"x":72.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":398.80,"y":115.74,"hdg":1.497,"batt":100.0,"det":false},{"id":2,"x":110.53,"y":398.76,"hdg":0.076,"batt":100.0,"det":false},{"id":3,"x":379.71,"y":379.71,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":30,"t":30.00,"coverage":0.1616,"drones":[{"id":0,"x":80.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":396.73,"y":123.47,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":118.26,"y":396.69,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":385.36,"y":385.36,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":31,"t":31.00,"coverage":0.1648,"drones":[{"id":0,"x":88.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":397.80,"y":131.39,"hdg":1.437,"batt":100.0,"det":false},{"id":2,"x":126.18,"y":397.77,"hdg":0.136,"batt":100.0,"det":false},{"id":3,"x":391.02,"y":391.02,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":32,"t":32.00,"coverage":0.1680,"drones":[{"id":0,"x":96.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":395.73,"y":139.12,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":134.15,"y":398.50,"hdg":0.092,"batt":100.0,"det":false},{"id":3,"x":396.68,"y":396.68,"hdg":0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":33,"t":33.00,"coverage":0.1711,"drones":[{"id":0,"x":104.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":397.12,"y":147.00,"hdg":1.396,"batt":100.0,"det":false},{"id":2,"x":141.88,"y":396.43,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":388.79,"hdg":-1.404,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":34,"t":34.00,"coverage":0.1741,"drones":[{"id":0,"x":112.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":398.06,"y":154.94,"hdg":1.452,"batt":100.0,"det":false},{"id":2,"x":149.79,"y":397.60,"hdg":0.146,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":380.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":35,"t":35.00,"coverage":0.1772,"drones":[{"id":0,"x":120.53,"y":177.35,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":398.70,"y":162.92,"hdg":1.491,"batt":100.0,"det":false},{"id":2,"x":157.75,"y":398.39,"hdg":0.099,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":372.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":36,"t":36.00,"coverage":0.1812,"drones":[{"id":0,"x":126.19,"y":171.70,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":396.63,"y":170.65,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":165.74,"y":398.92,"hdg":0.066,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":364.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":37,"t":37.00,"coverage":0.1847,"drones":[{"id":0,"x":131.85,"y":166.04,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":397.73,"y":178.57,"hdg":1.433,"batt":100.0,"det":false},{"id":2,"x":173.46,"y":396.85,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":356.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":38,"t":38.00,"coverage":0.1886,"drones":[{"id":0,"x":137.50,"y":160.38,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":398.48,"y":186.54,"hdg":1.477,"batt":100.0,"det":false},{"id":2,"x":181.40,"y":397.88,"hdg":0.129,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":348.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":39,"t":39.00,"coverage":0.1922,"drones":[{"id":0,"x":143.16,"y":154.73,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":398.98,"y":194.52,"hdg":1.508,"batt":100.0,"det":false},{"id":2,"x":189.37,"y":398.58,"hdg":0.087,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":340.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":40,"t":40.00,"coverage":0.1955,"drones":[{"id":0,"x":148.82,"y":149.07,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.31,"y":202.51,"hdg":1.529,"batt":100.0,"det":false},{"id":2,"x":197.35,"y":399.04,"hdg":0.059,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":332.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":41,"t":41.00,"coverage":0.1998,"drones":[{"id":0,"x":154.47,"y":143.41,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.54,"y":210.51,"hdg":1.543,"batt":100.0,"det":false},{"id":2,"x":205.35,"y":399.36,"hdg":0.039,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":324.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":42,"t":42.00,"coverage":0.2027,"drones":[{"id":0,"x":160.13,"y":137.76,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.69,"y":218.51,"hdg":1.552,"batt":100.0,"det":false},{"id":2,"x":213.34,"y":399.57,"hdg":0.026,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":316.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":43,"t":43.00,"coverage":0.2067,"drones":[{"id":0,"x":165.79,"y":132.10,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.79,"y":226.51,"hdg":1.558,"batt":100.0,"det":false},{"id":2,"x":221.34,"y":399.71,"hdg":0.018,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":308.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":44,"t":44.00,"coverage":0.2102,"drones":[{"id":0,"x":171.45,"y":126.44,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.86,"y":234.51,"hdg":1.562,"batt":100.0,"det":false},{"id":2,"x":229.34,"y":399.81,"hdg":0.012,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":300.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":45,"t":45.00,"coverage":0.2137,"drones":[{"id":0,"x":171.45,"y":118.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":399.91,"y":242.51,"hdg":1.565,"batt":100.0,"det":false},{"id":2,"x":237.34,"y":399.87,"hdg":0.008,"batt":100.0,"det":false},{"id":3,"x":398.00,"y":292.79,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":46,"t":46.00,"coverage":0.2173,"drones":[{"id":0,"x":171.45,"y":110.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":399.94,"y":250.51,"hdg":1.567,"batt":100.0,"det":false},{"id":2,"x":245.34,"y":399.91,"hdg":0.005,"batt":100.0,"det":false},{"id":3,"x":398.80,"y":284.83,"hdg":-1.470,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":47,"t":47.00,"coverage":0.2214,"drones":[{"id":0,"x":171.45,"y":102.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":392.21,"y":248.44,"hdg":-2.880,"batt":100.0,"det":false},{"id":2,"x":253.34,"y":399.94,"hdg":0.004,"batt":100.0,"det":false},{"id":3,"x":393.15,"y":279.17,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":48,"t":48.00,"coverage":0.2266,"drones":[{"id":0,"x":171.45,"y":94.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":384.48,"y":246.37,"hdg":-2.880,"batt":100.0,"det":false},{"id":2,"x":261.34,"y":399.96,"hdg":0.002,"batt":100.0,"det":false},{"id":3,"x":385.15,"y":279.17,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":49,"t":49.00,"coverage":0.2311,"drones":[{"id":0,"x":171.45,"y":86.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":376.76,"y":244.30,"hdg":-2.880,"batt":100.0,"det":false},{"id":2,"x":269.34,"y":399.97,"hdg":0.002,"batt":100.0,"det":false},{"id":3,"x":377.15,"y":279.17,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":50,"t":50.00,"coverage":0.2364,"drones":[{"id":0,"x":171.45,"y":78.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":369.03,"y":242.22,"hdg":-2.880,"batt":100.0,"det":false},{"id":2,"x":277.34,"y":399.98,"hdg":0.001,"batt":100.0,"det":false},{"id":3,"x":369.15,"y":279.17,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":51,"t":51.00,"coverage":0.2412,"drones":[{"id":0,"x":171.45,"y":70.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":365.03,"y":235.30,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":285.34,"y":399.99,"hdg":0.001,"batt":100.0,"det":false},{"id":3,"x":361.15,"y":279.17,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":52,"t":52.00,"coverage":0.2462,"drones":[{"id":0,"x":171.45,"y":62.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":361.03,"y":228.37,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":293.34,"y":399.99,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":355.49,"y":273.51,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":53,"t":53.00,"coverage":0.2512,"drones":[{"id":0,"x":171.45,"y":54.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":357.03,"y":221.44,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":301.34,"y":399.99,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":349.83,"y":267.86,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":54,"t":54.00,"coverage":0.2559,"drones":[{"id":0,"x":171.45,"y":46.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":353.03,"y":214.51,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":309.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":344.18,"y":262.20,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":55,"t":55.00,"coverage":0.2606,"drones":[{"id":0,"x":171.45,"y":38.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":349.03,"y":207.58,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":317.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":338.52,"y":256.54,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":56,"t":56.00,"coverage":0.2656,"drones":[{"id":0,"x":171.45,"y":30.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":345.03,"y":200.66,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":325.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":332.86,"y":250.89,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":57,"t":57.00,"coverage":0.2705,"drones":[{"id":0,"x":171.45,"y":22.44,"hdg":-1.571,"batt":100.0,"det":false},{"id":1,"x":341.03,"y":193.73,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":333.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":327.21,"y":245.23,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":58,"t":58.00,"coverage":0.2752,"drones":[{"id":0,"x":165.79,"y":16.79,"hdg":-2.356,"batt":100.0,"det":false},{"id":1,"x":337.03,"y":186.80,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":341.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":321.55,"y":239.57,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":59,"t":59.00,"coverage":0.2805,"drones":[{"id":0,"x":159.69,"y":11.61,"hdg":-2.438,"batt":100.0,"det":false},{"id":1,"x":333.03,"y":179.87,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":349.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":315.89,"y":233.92,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":60,"t":60.00,"coverage":0.2847,"drones":[{"id":0,"x":152.79,"y":7.57,"hdg":-2.611,"batt":100.0,"det":false},{"id":1,"x":329.03,"y":172.94,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":357.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":310.24,"y":228.26,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":61,"t":61.00,"coverage":0.2892,"drones":[{"id":0,"x":144.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":325.03,"y":166.01,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":365.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":304.58,"y":222.60,"hdg":-2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":62,"t":62.00,"coverage":0.2925,"drones":[{"id":0,"x":136.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":321.03,"y":159.09,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":373.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":296.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":63,"t":63.00,"coverage":0.2959,"drones":[{"id":0,"x":128.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":317.03,"y":152.16,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":381.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":288.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":64,"t":64.00,"coverage":0.3000,"drones":[{"id":0,"x":120.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":313.03,"y":145.23,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":389.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":280.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":65,"t":65.00,"coverage":0.3031,"drones":[{"id":0,"x":112.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":309.03,"y":138.30,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":397.34,"y":400.00,"hdg":0.000,"batt":100.0,"det":false},{"id":3,"x":272.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":66,"t":66.00,"coverage":0.3072,"drones":[{"id":0,"x":104.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":305.03,"y":131.37,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":390.41,"y":396.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":264.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":67,"t":67.00,"coverage":0.3106,"drones":[{"id":0,"x":96.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":301.03,"y":124.45,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":383.48,"y":392.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":256.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":68,"t":68.00,"coverage":0.3134,"drones":[{"id":0,"x":88.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":297.03,"y":117.52,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":376.56,"y":388.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":248.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":69,"t":69.00,"coverage":0.3167,"drones":[{"id":0,"x":80.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":293.03,"y":110.59,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":369.63,"y":384.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":240.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":70,"t":70.00,"coverage":0.3194,"drones":[{"id":0,"x":72.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":289.03,"y":103.66,"hdg":-2.094,"batt":100.0,"det":false},{"id":2,"x":362.70,"y":380.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":232.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":71,"t":71.00,"coverage":0.3230,"drones":[{"id":0,"x":64.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":291.10,"y":95.93,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":355.77,"y":376.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":224.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":72,"t":72.00,"coverage":0.3262,"drones":[{"id":0,"x":56.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":293.17,"y":88.21,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":348.84,"y":372.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":216.58,"y":222.60,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":73,"t":73.00,"coverage":0.3311,"drones":[{"id":0,"x":48.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":295.24,"y":80.48,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":341.92,"y":368.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":210.92,"y":228.26,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":74,"t":74.00,"coverage":0.3361,"drones":[{"id":0,"x":40.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":297.31,"y":72.75,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":334.99,"y":364.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":205.27,"y":233.92,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":75,"t":75.00,"coverage":0.3402,"drones":[{"id":0,"x":32.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":299.38,"y":65.02,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":328.06,"y":360.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":199.61,"y":239.57,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":76,"t":76.00,"coverage":0.3439,"drones":[{"id":0,"x":24.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":301.45,"y":57.30,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":321.13,"y":356.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":193.95,"y":245.23,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":77,"t":77.00,"coverage":0.3464,"drones":[{"id":0,"x":16.79,"y":7.57,"hdg":3.142,"batt":100.0,"det":false},{"id":1,"x":303.52,"y":49.57,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":314.20,"y":352.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":188.29,"y":250.89,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":78,"t":78.00,"coverage":0.3495,"drones":[{"id":0,"x":11.61,"y":13.67,"hdg":2.274,"batt":100.0,"det":false},{"id":1,"x":305.59,"y":41.84,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":307.27,"y":348.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":182.64,"y":256.54,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":79,"t":79.00,"coverage":0.3531,"drones":[{"id":0,"x":7.57,"y":20.57,"hdg":2.101,"batt":100.0,"det":false},{"id":1,"x":307.66,"y":34.11,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":300.35,"y":344.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":176.98,"y":262.20,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":80,"t":80.00,"coverage":0.3572,"drones":[{"id":0,"x":4.71,"y":28.04,"hdg":1.936,"batt":100.0,"det":false},{"id":1,"x":309.73,"y":26.39,"hdg":-1.309,"batt":100.0,"det":false},{"id":2,"x":293.42,"y":340.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":171.32,"y":267.86,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":81,"t":81.00,"coverage":0.3613,"drones":[{"id":0,"x":4.71,"y":36.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":311.85,"y":18.67,"hdg":-1.303,"batt":100.0,"det":false},{"id":2,"x":286.49,"y":336.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":165.67,"y":273.51,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":82,"t":82.00,"coverage":0.3661,"drones":[{"id":0,"x":4.71,"y":44.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":318.78,"y":14.67,"hdg":-0.524,"batt":100.0,"det":false},{"id":2,"x":279.56,"y":332.00,"hdg":-2.618,"batt":100.0,"det":false},{"id":3,"x":160.01,"y":279.17,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":83,"t":83.00,"coverage":0.3698,"drones":[{"id":0,"x":4.71,"y":52.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":325.71,"y":10.67,"hdg":-0.524,"batt":100.0,"det":false},{"id":2,"x":271.83,"y":334.07,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":154.35,"y":284.83,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":84,"t":84.00,"coverage":0.3742,"drones":[{"id":0,"x":4.71,"y":60.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":333.03,"y":7.45,"hdg":-0.415,"batt":100.0,"det":false},{"id":2,"x":264.11,"y":336.14,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":148.70,"y":290.48,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":85,"t":85.00,"coverage":0.3778,"drones":[{"id":0,"x":4.71,"y":68.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":340.68,"y":5.10,"hdg":-0.298,"batt":100.0,"det":false},{"id":2,"x":256.38,"y":338.21,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":143.04,"y":296.14,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":86,"t":86.00,"coverage":0.3814,"drones":[{"id":0,"x":4.71,"y":76.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":348.51,"y":3.45,"hdg":-0.207,"batt":100.0,"det":false},{"id":2,"x":248.65,"y":340.28,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":137.38,"y":301.80,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":87,"t":87.00,"coverage":0.3850,"drones":[{"id":0,"x":4.71,"y":84.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":356.43,"y":2.33,"hdg":-0.141,"batt":100.0,"det":false},{"id":2,"x":240.92,"y":342.35,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":131.73,"y":307.45,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":88,"t":88.00,"coverage":0.3889,"drones":[{"id":0,"x":4.71,"y":92.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":364.39,"y":1.56,"hdg":-0.096,"batt":100.0,"det":false},{"id":2,"x":233.20,"y":344.42,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":126.07,"y":313.11,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":89,"t":89.00,"coverage":0.3928,"drones":[{"id":0,"x":4.71,"y":100.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":372.37,"y":1.05,"hdg":-0.064,"batt":100.0,"det":false},{"id":2,"x":225.47,"y":346.49,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":120.41,"y":318.77,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":90,"t":90.00,"coverage":0.3966,"drones":[{"id":0,"x":4.71,"y":108.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":380.10,"y":3.12,"hdg":0.262,"batt":100.0,"det":false},{"id":2,"x":217.74,"y":348.56,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":114.76,"y":324.43,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":91,"t":91.00,"coverage":0.3998,"drones":[{"id":0,"x":4.71,"y":116.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":388.01,"y":1.88,"hdg":-0.155,"batt":100.0,"det":false},{"id":2,"x":210.01,"y":350.63,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":109.10,"y":330.08,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":92,"t":92.00,"coverage":0.4034,"drones":[{"id":0,"x":4.71,"y":124.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":391.55,"y":9.05,"hdg":1.111,"batt":100.0,"det":false},{"id":2,"x":202.29,"y":352.71,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":103.44,"y":335.74,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":93,"t":93.00,"coverage":0.4070,"drones":[{"id":0,"x":4.71,"y":132.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":394.18,"y":16.60,"hdg":1.236,"batt":100.0,"det":false},{"id":2,"x":194.56,"y":354.78,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":97.79,"y":341.40,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":94,"t":94.00,"coverage":0.4108,"drones":[{"id":0,"x":4.71,"y":140.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":396.05,"y":24.38,"hdg":1.335,"batt":100.0,"det":false},{"id":2,"x":190.56,"y":361.70,"hdg":2.094,"batt":100.0,"det":false},{"id":3,"x":92.13,"y":347.05,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":95,"t":95.00,"coverage":0.4139,"drones":[{"id":0,"x":4.71,"y":148.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":397.34,"y":32.28,"hdg":1.409,"batt":100.0,"det":false},{"id":2,"x":186.56,"y":368.63,"hdg":2.094,"batt":100.0,"det":false},{"id":3,"x":86.47,"y":352.71,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":96,"t":96.00,"coverage":0.4170,"drones":[{"id":0,"x":4.71,"y":156.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":398.21,"y":40.23,"hdg":1.461,"batt":100.0,"det":false},{"id":2,"x":182.56,"y":375.56,"hdg":2.094,"batt":100.0,"det":false},{"id":3,"x":80.81,"y":358.37,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":97,"t":97.00,"coverage":0.4189,"drones":[{"id":0,"x":4.71,"y":164.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":398.80,"y":48.21,"hdg":1.497,"batt":100.0,"det":false},{"id":2,"x":178.56,"y":382.49,"hdg":2.094,"batt":100.0,"det":false},{"id":3,"x":75.16,"y":364.02,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":98,"t":98.00,"coverage":0.4191,"drones":[{"id":0,"x":4.71,"y":172.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.19,"y":56.20,"hdg":1.521,"batt":100.0,"det":false},{"id":2,"x":173.56,"y":388.74,"hdg":2.245,"batt":100.0,"det":false},{"id":3,"x":69.50,"y":369.68,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":99,"t":99.00,"coverage":0.4198,"drones":[{"id":0,"x":4.71,"y":180.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.46,"y":64.20,"hdg":1.538,"batt":100.0,"det":false},{"id":2,"x":165.84,"y":390.81,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":63.84,"y":375.34,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":100,"t":100.00,"coverage":0.4208,"drones":[{"id":0,"x":4.71,"y":188.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.64,"y":72.19,"hdg":1.549,"batt":100.0,"det":false},{"id":2,"x":158.11,"y":392.88,"hdg":2.880,"batt":100.0,"det":false},{"id":3,"x":58.19,"y":380.99,"hdg":2.356,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":101,"t":101.00,"coverage":0.4220,"drones":[{"id":0,"x":4.71,"y":196.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.76,"y":80.19,"hdg":1.556,"batt":100.0,"det":false},{"id":2,"x":150.37,"y":394.92,"hdg":2.884,"batt":100.0,"det":false},{"id":3,"x":52.42,"y":386.53,"hdg":2.377,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":102,"t":102.00,"coverage":0.4234,"drones":[{"id":0,"x":4.71,"y":204.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.84,"y":88.19,"hdg":1.561,"batt":100.0,"det":false},{"id":2,"x":142.51,"y":396.39,"hdg":2.956,"batt":100.0,"det":false},{"id":3,"x":44.42,"y":386.53,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":103,"t":103.00,"coverage":0.4245,"drones":[{"id":0,"x":4.71,"y":212.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.89,"y":96.19,"hdg":1.564,"batt":100.0,"det":false},{"id":2,"x":134.58,"y":397.45,"hdg":3.009,"batt":100.0,"det":false},{"id":3,"x":36.42,"y":386.53,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":104,"t":104.00,"coverage":0.4258,"drones":[{"id":0,"x":4.71,"y":220.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.93,"y":104.19,"hdg":1.566,"batt":100.0,"det":false},{"id":2,"x":126.62,"y":398.20,"hdg":3.048,"batt":100.0,"det":false},{"id":3,"x":28.42,"y":386.53,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":105,"t":105.00,"coverage":0.4272,"drones":[{"id":0,"x":4.71,"y":228.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.95,"y":112.19,"hdg":1.568,"batt":100.0,"det":false},{"id":2,"x":118.63,"y":398.73,"hdg":3.075,"batt":100.0,"det":false},{"id":3,"x":20.42,"y":386.53,"hdg":3.142,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":106,"t":106.00,"coverage":0.4280,"drones":[{"id":0,"x":4.71,"y":236.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.97,"y":120.19,"hdg":1.569,"batt":100.0,"det":false},{"id":2,"x":110.64,"y":399.11,"hdg":3.095,"batt":100.0,"det":false},{"id":3,"x":13.80,"y":391.03,"hdg":2.544,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":107,"t":107.00,"coverage":0.4283,"drones":[{"id":0,"x":4.71,"y":244.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.98,"y":128.19,"hdg":1.569,"batt":100.0,"det":false},{"id":2,"x":102.65,"y":399.37,"hdg":3.109,"batt":100.0,"det":false},{"id":3,"x":7.09,"y":395.39,"hdg":2.565,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":108,"t":108.00,"coverage":0.4288,"drones":[{"id":0,"x":4.71,"y":252.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.99,"y":136.19,"hdg":1.570,"batt":100.0,"det":false},{"id":2,"x":94.65,"y":399.56,"hdg":3.118,"batt":100.0,"det":false},{"id":3,"x":4.39,"y":387.86,"hdg":-1.915,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":109,"t":109.00,"coverage":0.4298,"drones":[{"id":0,"x":4.71,"y":260.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.99,"y":144.19,"hdg":1.570,"batt":100.0,"det":false},{"id":2,"x":86.65,"y":399.69,"hdg":3.125,"batt":100.0,"det":false},{"id":3,"x":4.39,"y":379.86,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":110,"t":110.00,"coverage":0.4311,"drones":[{"id":0,"x":4.71,"y":268.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":399.99,"y":152.19,"hdg":1.570,"batt":100.0,"det":false},{"id":2,"x":78.65,"y":399.78,"hdg":3.130,"batt":100.0,"det":false},{"id":3,"x":4.39,"y":371.86,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":111,"t":111.00,"coverage":0.4328,"drones":[{"id":0,"x":4.71,"y":276.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":400.00,"y":160.19,"hdg":1.571,"batt":100.0,"det":false},{"id":2,"x":70.65,"y":399.85,"hdg":3.133,"batt":100.0,"det":false},{"id":3,"x":4.39,"y":363.86,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":112,"t":112.00,"coverage":0.4347,"drones":[{"id":0,"x":4.71,"y":284.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":400.00,"y":168.19,"hdg":1.571,"batt":100.0,"det":false},{"id":2,"x":62.65,"y":399.89,"hdg":3.136,"batt":100.0,"det":false},{"id":3,"x":4.39,"y":355.86,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":113,"t":113.00,"coverage":0.4361,"drones":[{"id":0,"x":4.71,"y":292.04,"hdg":1.571,"batt":100.0,"det":false},{"id":1,"x":400.00,"y":176.19,"hdg":1.571,"batt":100.0,"det":false},{"id":2,"x":54.65,"y":399.92,"hdg":3.138,"batt":100.0,"det":false},{"id":3,"x":4.39,"y":347.86,"hdg":-1.571,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":114,"t":114.00,"coverage":0.4377,"drones":[{"id":0,"x":2.86,"y":299.82,"hdg":1.804,"batt":100.0,"det":false},{"id":1,"x":400.00,"y":184.19,"hdg":1.571,"batt":100.0,"det":false},{"id":2,"x":46.65,"y":399.95,"hdg":3.139,"batt":100.0,"det":false},{"id":3,"x":2.66,"y":340.05,"hdg":-1.789,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":115,"t":115.00,"coverage":0.4386,"drones":[{"id":0,"x":1.72,"y":307.74,"hdg":1.714,"batt":100.0,"det":false},{"id":1,"x":400.00,"y":192.19,"hdg":1.571,"batt":100.0,"det":false},{"id":2,"x":38.65,"y":399.96,"hdg":3.140,"batt":100.0,"det":false},{"id":3,"x":1.60,"y":332.12,"hdg":-1.704,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":116,"t":116.00,"coverage":0.4403,"drones":[{"id":0,"x":9.72,"y":307.74,"hdg":0.000,"batt":100.0,"det":false},{"id":1,"x":397.93,"y":199.92,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":30.65,"y":399.97,"hdg":3.140,"batt":100.0,"det":false},{"id":3,"x":9.60,"y":332.12,"hdg":0.000,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":117,"t":117.00,"coverage":0.4403,"drones":[{"id":0,"x":15.37,"y":302.09,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":398.61,"y":207.89,"hdg":1.486,"batt":100.0,"det":false},{"id":2,"x":22.65,"y":399.98,"hdg":3.141,"batt":100.0,"det":false},{"id":3,"x":15.25,"y":326.46,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":118,"t":118.00,"coverage":0.4403,"drones":[{"id":0,"x":21.03,"y":296.43,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.07,"y":215.88,"hdg":1.514,"batt":100.0,"det":false},{"id":2,"x":14.65,"y":399.99,"hdg":3.141,"batt":100.0,"det":false},{"id":3,"x":23.25,"y":326.46,"hdg":0.000,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":119,"t":119.00,"coverage":0.4403,"drones":[{"id":0,"x":26.69,"y":290.77,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.37,"y":223.87,"hdg":1.532,"batt":100.0,"det":false},{"id":2,"x":6.65,"y":399.99,"hdg":3.141,"batt":100.0,"det":false},{"id":3,"x":28.91,"y":320.81,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":120,"t":120.00,"coverage":0.4414,"drones":[{"id":0,"x":32.34,"y":285.11,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.58,"y":231.87,"hdg":1.545,"batt":100.0,"det":false},{"id":2,"x":0.00,"y":400.00,"hdg":3.141,"batt":100.0,"det":false},{"id":3,"x":34.57,"y":315.15,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":121,"t":121.00,"coverage":0.4431,"drones":[{"id":0,"x":38.00,"y":279.46,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.72,"y":239.87,"hdg":1.554,"batt":100.0,"det":false},{"id":2,"x":0.00,"y":392.00,"hdg":-1.571,"batt":100.0,"det":false},{"id":3,"x":40.22,"y":309.49,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":122,"t":122.00,"coverage":0.4458,"drones":[{"id":0,"x":43.66,"y":273.80,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.81,"y":247.87,"hdg":1.559,"batt":100.0,"det":false},{"id":2,"x":4.00,"y":385.07,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":45.88,"y":303.84,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":123,"t":123.00,"coverage":0.4484,"drones":[{"id":0,"x":49.31,"y":268.14,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.87,"y":255.87,"hdg":1.563,"batt":100.0,"det":false},{"id":2,"x":8.00,"y":378.14,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":51.54,"y":298.18,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":124,"t":124.00,"coverage":0.4514,"drones":[{"id":0,"x":54.97,"y":262.49,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":397.80,"y":263.60,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":12.00,"y":371.22,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":57.19,"y":292.52,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":125,"t":125.00,"coverage":0.4545,"drones":[{"id":0,"x":60.63,"y":256.83,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":398.53,"y":271.56,"hdg":1.480,"batt":100.0,"det":false},{"id":2,"x":16.00,"y":364.29,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":62.85,"y":286.87,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":126,"t":126.00,"coverage":0.4575,"drones":[{"id":0,"x":66.28,"y":251.17,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.01,"y":279.55,"hdg":1.510,"batt":100.0,"det":false},{"id":2,"x":23.73,"y":362.22,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":68.51,"y":281.21,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":127,"t":127.00,"coverage":0.4606,"drones":[{"id":0,"x":71.94,"y":245.52,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":399.34,"y":287.54,"hdg":1.530,"batt":100.0,"det":false},{"id":2,"x":31.45,"y":360.15,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":74.16,"y":275.55,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":128,"t":128.00,"coverage":0.4630,"drones":[{"id":0,"x":77.60,"y":239.86,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":397.27,"y":295.27,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":39.18,"y":358.08,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":79.82,"y":269.90,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":129,"t":129.00,"coverage":0.4655,"drones":[{"id":0,"x":83.25,"y":234.20,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":398.16,"y":303.22,"hdg":1.459,"batt":100.0,"det":false},{"id":2,"x":43.18,"y":351.15,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":85.48,"y":264.24,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":130,"t":130.00,"coverage":0.4688,"drones":[{"id":0,"x":88.91,"y":228.55,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":396.09,"y":310.95,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":47.18,"y":344.22,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":91.13,"y":258.58,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":131,"t":131.00,"coverage":0.4725,"drones":[{"id":0,"x":94.57,"y":222.89,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":397.36,"y":318.84,"hdg":1.411,"batt":100.0,"det":false},{"id":2,"x":54.91,"y":342.15,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":96.79,"y":252.93,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":132,"t":132.00,"coverage":0.4766,"drones":[{"id":0,"x":100.22,"y":217.23,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":395.29,"y":326.57,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":58.91,"y":335.22,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":102.45,"y":247.27,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":133,"t":133.00,"coverage":0.4800,"drones":[{"id":0,"x":105.88,"y":211.58,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":396.82,"y":334.42,"hdg":1.379,"batt":100.0,"det":false},{"id":2,"x":66.64,"y":333.15,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":108.11,"y":241.61,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":134,"t":134.00,"coverage":0.4847,"drones":[{"id":0,"x":111.54,"y":205.92,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":394.75,"y":342.15,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":70.64,"y":326.22,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":113.76,"y":235.96,"hdg":-0.785,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":135,"t":135.00,"coverage":0.4889,"drones":[{"id":0,"x":117.20,"y":200.26,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":396.44,"y":349.97,"hdg":1.357,"batt":100.0,"det":false},{"id":2,"x":74.64,"y":319.29,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":121.76,"y":235.96,"hdg":0.000,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":136,"t":136.00,"coverage":0.4927,"drones":[{"id":0,"x":122.85,"y":194.60,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":394.37,"y":357.70,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":82.36,"y":317.22,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":129.76,"y":235.96,"hdg":0.000,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":137,"t":137.00,"coverage":0.4963,"drones":[{"id":0,"x":128.51,"y":188.95,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":396.18,"y":365.49,"hdg":1.343,"batt":100.0,"det":false},{"id":2,"x":86.36,"y":310.29,"hdg":-1.047,"batt":100.0,"det":false},{"id":3,"x":137.76,"y":235.96,"hdg":0.000,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":138,"t":138.00,"coverage":0.5002,"drones":[{"id":0,"x":134.17,"y":183.29,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":394.11,"y":373.22,"hdg":1.833,"batt":100.0,"det":false},{"id":2,"x":94.09,"y":308.22,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":145.76,"y":235.96,"hdg":0.000,"batt":100.0,"det":false}]}
|
|
{"type":"step","ep":19,"step":139,"t":139.00,"coverage":0.5031,"drones":[{"id":0,"x":139.82,"y":177.63,"hdg":-0.785,"batt":100.0,"det":false},{"id":1,"x":396.00,"y":380.99,"hdg":1.332,"batt":100.0,"det":false},{"id":2,"x":101.82,"y":306.15,"hdg":-0.262,"batt":100.0,"det":false},{"id":3,"x":153.76,"y":235.96,"hdg":0.000,"batt":100.0,"det":false}]}
|
|
{"type":"episode","ep":19,"mean_return":909.8773,"policy_loss":-42498.6836,"value_loss":869627.1875,"victims_found":0}
|