Files
ruvnet--RuView/v2/crates/ruview-swarm/src/lib.rs
T
rUv 8d64434d21 feat(swarm): ADR-149 evaluation harness — GDOP, IQM+bootstrap CI, noise sweep (#875)
Stage-1 kinematic evaluator per ADR-149 (peer-reviewed). Pure Rust, no new deps.

evals/:
- gdop.rs: 2D Geometric Dilution of Precision ((HᵀH)⁻¹ trace-sqrt); None for
  <2 observers or collinear/singular geometry
- stats.rs: IQM (Agarwal 2021) + 95% stratified-bootstrap CI (deterministic LCG)
  + probability_of_improvement
- metrics.rs: EpisodeMetrics + AggregateMetrics::from_strata (IQM±CI, seed-stratified)
- runner.rs: seeded kinematic rollout (FlightPattern-driven), seed×episode matrix,
  3σ×3κ default noise sweep (Gaussian amplitude × von Mises phase)
- report.rs + eval_swarm bin: generates evals/RESULTS.md leaderboard

RESULTS.md surfaces the real coverage-vs-localization-precision trade-off via GDOP:
partitioned wins coverage (100%) but single-drone sightings (GDOP 0 → 7.0m);
pheromone gets multistatic fusion (GDOP 1.6 → 4.1m). Wi2SAR 5m paper-baseline row included.

Stage-2 (Gazebo/PX4 SITL false-alarm + collision on median seeds) is documented follow-on.

Tests: 116 default / 133 full+train (+13 eval tests), 0 failed. Clippy clean (-D warnings).
2026-05-30 17:38:49 -04:00

27 lines
639 B
Rust

//! Drone swarm control system — ADR-148.
//!
//! Hierarchical-mesh topology · Raft consensus · MAPPO MARL · CSI sensing integration
pub mod types;
pub mod topology;
pub mod formation;
pub mod planning;
pub mod allocation;
pub mod sensing;
pub mod marl;
pub mod security;
pub mod failsafe;
pub mod config;
pub mod demo;
pub mod evals;
pub mod integration;
pub mod bench_support;
pub mod orchestrator;
pub mod ruflo;
pub use types::{
ClusterId, CsiDetection, DroneState, FailSafeState, GridCell, NodeId,
Position3D, SwarmError, SwarmResult, SwarmRole, SwarmTask, TaskId, TaskKind, Velocity3D,
};
pub use config::SwarmConfig;