mirror of
https://github.com/ruvnet/RuView
synced 2026-07-28 18:21:42 +00:00
8d64434d21
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).
20 lines
752 B
Rust
20 lines
752 B
Rust
//! ADR-149 statistically-rigorous evaluation harness (Stage 1, kinematic).
|
||
//!
|
||
//! Produces SAR + MARL metrics over a seeded N-seed × M-episode matrix with
|
||
//! IQM + 95% stratified-bootstrap CIs, a (sigma, kappa) CSI-noise sweep, and
|
||
//! GDOP-stratified localization error. Generates evals/RESULTS.md.
|
||
//!
|
||
//! Stage 2 (Gazebo/PX4 SITL high-fidelity, false-alarm + collision rate on the
|
||
//! median seeds) is a follow-on — see ADR-149 §6.1.
|
||
pub mod gdop;
|
||
pub mod stats;
|
||
pub mod metrics;
|
||
pub mod runner;
|
||
pub mod report;
|
||
|
||
pub use gdop::gdop;
|
||
pub use stats::{iqm, stratified_bootstrap_ci, ConfidenceInterval};
|
||
pub use metrics::{EpisodeMetrics, AggregateMetrics};
|
||
pub use runner::{EvalConfig, NoiseLevel, run_matrix};
|
||
pub use report::render_results_md;
|