VIOVIO Survey BenchmarkGitHub Pages reproducible benchmark

EPICA / EPA

Evaluation workflow

EPA is the primary pipeline for trajectory parsing, alignment, timestamp association, metrics, plots, batch summaries, and publication-ready tables.

Commands

Single case to public summary

The same workflow supports one-pair debugging and later batch promotion into public result tables.

01

Install EPA environment

Use a clean Python 3.10+ environment before running single-case or batch evaluation.

conda create -n epa python=3.10 -y
conda activate epa
python -m pip install epica
02

Prepare trajectory pairs

Store truth and algorithm trajectories in the SOP folders before converting or plotting.

# truths/<dataset>/<sequence>.txt
# algorithms/<system>/<dataset>/<sequence>.txt
# timestamp(s) tx ty tz qx qy qz qw
03

Run one case

Validate parsing, timestamp association, alignment, plots, and metric output.

epa truths/euroc_mav/MH_01_easy.txt \
    algorithms/openvins/euroc_mav/MH_01_easy.txt \
    --out-dir epa_outputs/openvins/euroc_mav/MH_01_easy
04

Run benchmark batch

Use the batch harness once case folders and artifact conventions are ready.

export EPA_DATA_ROOT=/workspace/vio-benchmark
epa_bench /workspace/vio-benchmark/epa_cases --jobs auto
epa_benchall /workspace/vio-benchmark/epa_cases
05

Promote validated outputs

Only update public result tables after EPA output files and resource logs are present.

epa_rerun --run-dir epa_outputs/<system>/<dataset>/<sequence> --case <case_id>
epa_latex_summary --summary-csv epa_outputs/<system>/<dataset>/<sequence>/summary.csv

Compatibility

OpenVINS-style wrappers are compatibility references

The website preserves OpenVINS-style evaluation familiarity while keeping EPA as the primary source of public result artifacts.

OpenVINS-style comparison

python -m epa.ov_eval_compat error_comparison se3 /path/to/gt_folder /path/to/algorithm_pose_folder

Single run compatibility

python -m epa.ov_eval_compat error_singlerun se3 /path/to/gt.txt /path/to/est.txt