Skip to main content

Trajectory alignment and evaluation toolkit for Vicon-grounded workflows

Project description

EPIC-Alignment (epica)

epica is a trajectory alignment and evaluation toolkit.

It provides:

  • 3-step alignment pipeline (time offset, extrinsic, world alignment)
  • a set of CLI tools (traj, ape, rpe, res, config)
  • OpenVINS compatibility entrypoints
  • optional plotting and rerun-based visualization

Installation

Create and activate a virtual environment first (recommended):

conda create -n epa python=3.10 -y
conda activate epa

Then install:

pip install epica

Optional extras:

pip install "epica[rerun]"  # rerun visualization
pip install "epica[ros]"    # bag / bag2 / mcap support
pip install "epica[geo]"    # map-related tools

Quick Start

For General Workspace:

epa --gt-csv <gt_file> --gt-format <gt_format> --est-path <est_file> --est-format <est_format> --plot

OpenVINS examples:

Single case:

epa_openvins /path/to/case_dir se3 --keep-output

Multiple cases:

epa_openvins /path/to/case_a /path/to/case_b --align-mode se3

Run from OpenVINS repo root:

epa_openvins ./ov_eval/example none --keep-output

Each case directory should contain:

  • stamped_groundtruth.txt
  • stamped_traj_estimate.txt

Outputs

Each run generates a run folder with:

  • plots/
  • metrics.json
  • metrics_summary.csv
  • report_en.md
  • report_zh.md

Benchmark LaTeX Tables

For benchmark summary CSV files, generate paper tables with:

epa_latex_summary --summary-csv /path/to/summary.csv

This creates:

  • main_table.tex
  • dataset_table.tex
  • appendix_full_table.tex

Full CLI Toolchain

  • epa / epica / epic-alignment: Run the main 3-step EPA pipeline for alignment and metric export; usage: epa --gt-csv gt.tum --gt-format tum --est-path est.tum --est-format tum --plot.
  • epa_config: Manage global or per-tool default config values; usage: epa_config set --tool epa_ape plot_mode xy.
  • epa_ape: Compute APE in EVO-style format with optional alignment and plots; usage: epa_ape tum gt.tum est.tum --align --plot.
  • epa_rpe: Compute RPE in EVO-style format with configurable delta settings; usage: epa_rpe tum gt.tum est.tum --delta 1 --delta_unit f --plot.
  • epa_traj: Compare, align, sync, and visualize trajectories in EVO-style workflow; usage: epa_traj tum gt.tum est.tum --sync --align --plot.
  • epa_fig: Re-render saved plotting specs without recomputing metrics; usage: epa_fig outputs/ape_plot.json --save_plot outputs/ape.png.
  • epa_res: Compare multiple result bundles or EVO zip results; usage: epa_res run_a.zip run_b.zip --metric all --plot.
  • epa_benchmark: Run batch benchmark harness for EPA/EVO-style comparison over many cases; usage: epa_benchmark --cases-csv cases.csv --out-dir outputs/bench.
  • epa_plot_summary: Generate benchmark summary figures from harness outputs; usage: epa_plot_summary --summary-csv outputs/bench/run_xxx/summary.csv.
  • epa_latex_summary: Generate paper-ready LaTeX tables from benchmark summary.csv; usage: epa_latex_summary --summary-csv outputs/bench/run_xxx/summary.csv.
  • epa_metric_res: Aggregate or compare one or more metrics.json files directly; usage: epa_metric_res --inputs run1/metrics.json run2/metrics.json.
  • epa_case_rerun / epa_rerun: Replay one case with rerun-based visual diagnostics; usage: epa_case_rerun --case-json outputs/bench/run_xxx/cases_json/case_001.json.
  • epa_ipython: Launch EPA tools in IPython-friendly entry mode; usage: epa_ipython.
  • epa_ov_eval: OpenVINS ov_eval compatibility umbrella entrypoint; usage: epa_ov_eval --help.
  • epa_ov_format_converter: Convert trajectory formats in ov_eval-compatible style; usage: epa_ov_format_converter --help.
  • epa_ov_plot_trajectories: Plot trajectories in ov_eval-compatible style; usage: epa_ov_plot_trajectories --help.
  • epa_ov_error_singlerun: Run single-run error evaluation in ov_eval-compatible style; usage: epa_ov_error_singlerun --help.
  • epa_ov_error_dataset: Run dataset-level error summary in ov_eval-compatible style; usage: epa_ov_error_dataset --help.
  • epa_ov_error_comparison: Run algorithm comparison summary in ov_eval-compatible style; usage: epa_ov_error_comparison --help.
  • epa_openvins: Run EPA on one or multiple OpenVINS case folders with minimal integration flow; usage: epa_openvins /path/to/case_dir se3 --keep-output.

Project Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

epica-0.1.3.tar.gz (121.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

epica-0.1.3-py3-none-any.whl (134.2 kB view details)

Uploaded Python 3

File details

Details for the file epica-0.1.3.tar.gz.

File metadata

  • Download URL: epica-0.1.3.tar.gz
  • Upload date:
  • Size: 121.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for epica-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6b2c45afaaf81cbe7cb8783089a948de298acca804c22b6579009fb1cac891e5
MD5 92c9366d1ebb861a41b287d975bc66a9
BLAKE2b-256 3ced236470712e28ed83a65a7f01917e2c7737db0b8397bb9a240baf581c6e82

See more details on using hashes here.

File details

Details for the file epica-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: epica-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 134.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for epica-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 00baa4d88f000cd92098a0cffbff08bd0c643a631bedc92ff83bbc9d3a6cde29
MD5 806fd8e533fecbd5ea62b754a03d5467
BLAKE2b-256 92460ea0609ea89cd618e8511595cb75bbeafb9c8e676b94a9e42adec2b7fa9c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page