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

Example:

epa \
  --gt-csv ./example_data/example_groundtruth.csv --gt-format csv \
  --est-path ./example_data/example_estimation.txt --est-format tum \
  --plot

Single-case full workflow:

epa_all --gt <gt_file> --est <est_file> --format tum

Multi-case benchmark:

epa_bench --cases-root /path/to/cases_root

Multi-case full workflow:

epa_benchall --cases-root /path/to/cases_root

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

Single epa run:

  • creates one outputs/run_YYYYMMDD_HHMMSS/ folder
  • typical files inside:
  • plots/
  • metrics.json
  • metrics_summary.csv
  • report_en.md
  • report_zh.md

Single-case full workflow with epa_all:

  • creates one outputs/epa_all/run_YYYYMMDD_HHMMSS/ folder
  • typical subfolders inside:
  • main_workspace/
  • ape/
  • rpe/
  • traj/
  • openvins/ if --case-dir is provided

Multi-case benchmark with epa_bench:

  • creates outputs/<cases_root_name>_bench/run_YYYYMMDD_HHMMSS/
  • typical files and folders inside:
  • summary.csv
  • summary.md
  • paper_tables/
  • cases/
  • logs/
  • prepared_tum/
  • unresolved_cases.csv if some GT mappings cannot be resolved

Common CLI Toolchain

  • epa / epica: run the main 3-step EPA pipeline for one GT/EST pair
  • epa_all: run the single-case full workflow in one command
  • epa_bench: run the multi-case benchmark harness over a cases root
  • epa_benchall: run the multi-case full workflow, including summary plots and LaTeX tables
  • epa_ape: compute APE for one trajectory pair
  • epa_rpe: compute RPE for one trajectory pair
  • epa_traj: inspect, align, sync, and visualize trajectories
  • epa_openvins: run EPA on one or multiple OpenVINS case folders

Documentation Link

For more commands and detailed usage, see the docs:

Maintenance and Contact

This project is still actively maintained.

If you run into any issues, please open an issue at:

Or contact:

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.5.tar.gz (123.4 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.5-py3-none-any.whl (138.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: epica-0.1.5.tar.gz
  • Upload date:
  • Size: 123.4 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.5.tar.gz
Algorithm Hash digest
SHA256 8f684ccab443e18f953df1ad2828385f169e5de7ee1d4161e4efc4bcac3a5d94
MD5 33cfc65eca776d8b89ba10f87d2a934d
BLAKE2b-256 3d8a3539465b080d8aad5a6362863671b97377b2b58c88945ceb0e27ecd1450d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: epica-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 138.0 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 baa13ee168ddfee4635c00225453a14b41dc9e00ba1e40ab7fb8b04835cfc74a
MD5 a76b540b9494d6808f0748ac1d1f718e
BLAKE2b-256 cd5cb45fba49004456145381bb2e8541dd4eddde94477ca94f6cc907d02e22f0

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