Skip to main content

Trajectory alignment and evaluation toolkit

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

  • Source and full project docs: Docs

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.4.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.4-py3-none-any.whl (134.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: epica-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 0cc24a40a3ebbf0b89cd31d35544682d9a8e6e1eada1f9a1f214b763ff4c418b
MD5 b0b457e23855d83fa14fdcc583886afb
BLAKE2b-256 b1c5c13199a496792714e3dd6fb2fff773ef1de656974e9b3b09161161525f2a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: epica-0.1.4-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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9516cc66fa06d8687d91552f49faeca23ad7d750225d7a21e56d5cfd923f040b
MD5 f189385b7b76546ba6d096198e7fef61
BLAKE2b-256 9335a7031dff9626c2648354546f855cf10b132f83dc84a3a8b624b4ba9e4bc5

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