Skip to main content

Evaluate Lidar-Inertial Odometry on public datasets

Project description

evalio

evalio is a tool for Evaluating Lidar-Inertial Odometry.

Specifically, it provides a common interface for connecting LIO datasets and LIO pipelines. This allows for easy addition of new datasets and pipelines, as well as a common location to evaluate them making benchmarks significantly easier to run. It features,

  • No ROS dependency! (though it can still load rosbag datasets using the wonderful rosbags package)
  • Easy to add new datasets and pipelines, see the example
  • Unified representation of lidar scan, e.g. row (scan-line) major order, stamped at the start of the scan, point stamps are relative from the start of the scan.
  • Download and manage datasets via the CLI interface
  • Simple to use API for friction-free access to data
  • Run pipelines via the CLI interface and yaml config files
  • Compute statistics for resulting trajectory runs

Installation

evalio is available on PyPi (with all pipelines compiled in!), so simply install via your favorite python package manager,

uv add evalio      # uv
pip install evalio # pip

Basic Usage

evalio can be used both as a python library and as a CLI for both datasets and pipelines. We cover just the tip of the iceberg here, so please check out the docs for more information.

Datasets

Once evalio is installed, datasets can be listed and downloaded via the CLI interface. For example, to list all datasets and then download a sequence from the hilti-2022 dataset,

evalio ls datasets
evalio download hilti_2022/basement_2

Once downloaded, a trajectory can then be easily used in python,

from evalio import datasets as ds

# for all data
for mm in ds.Hilti2022.basement_2:
    print(mm)

# for lidars
for scan in ds.Hilti2022.basement_2.lidar():
    print(scan)

# for imu
for imu in ds.Hilti2022.basement_2.imu():
    print(imu)

Pipelines

The other half of evalio is the pipelines that can be run on various datasets. All pipelines and their parameters can be shown via,

evalio ls pipelines

For example, to run KissICP on a dataset,

evalio run -o results -d hilti_2022/basement_2 -p kiss

This will run the pipeline on the dataset and save the results to the results folder. The results can then be used to compute statistics on the trajectory,

evalio stats results

More complex experiments can be run, including varying pipeline parameters, via specifying a config file,

output_dir: ./results/

datasets:
  # Run on all of hilti trajectories
  - hilti_2022/*
  # Run on first 1000 scans of multi campus
  - name: multi_campus/ntu_day_01
    length: 1000

pipelines:
  # Run vanilla kiss with default parameters
  - kiss
  # Tweak kiss parameters
  - name: kiss_tweaked
    pipeline: kiss
    deskew: true
    # Sweep over voxel size parameter
    sweep:
      voxel_size: [0.1, 0.5, 1.0]
      

This can then be run via

evalio run -c config.yml

Contributing

Contributions are always welcome! Feel free to open an issue, pull request, etc. The documentation has a more details on developing new datasets and pipelines.

Citation

If you use evalio in your research, please cite the following paper,

@misc{potokar2025_evaluation_lidar_odometry,
      title={A Comprehensive Evaluation of LiDAR Odometry Techniques}, 
      author={Easton Potokar and Michael Kaess},
      year={2025},
      eprint={2507.16000},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2507.16000}, 
}

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

evalio-0.4.0-cp313-cp313-manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

evalio-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

evalio-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

evalio-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

evalio-0.4.0-cp311-cp311-manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

evalio-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file evalio-0.4.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.4.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 817fa3023215d431f81187aa247297dba848300865acb1093f25ae70f2b510f5
MD5 6b7e80f9e39c0b91dae171ec95186898
BLAKE2b-256 e81f05439ddedb7fe0e2a414c14d20fc61702f954c71214f842ca1c2291051ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on contagon/evalio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evalio-0.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08290ea683f30db2252a50281ae6f935221ac1f9663cc543c285b1c7039e8f3c
MD5 0851add1a7fad9e129147391db048bd4
BLAKE2b-256 ac7d7beb27341d5d228e1a37a975ee3bafdc6c8be18c824b2c2d1d71cb236f06

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on contagon/evalio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evalio-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 754a7fb2b188d09de1ec7d6779ade8524aee50dc970d1552ea842796a80bf387
MD5 1008550b21e3d893f63ace475b663e60
BLAKE2b-256 88c161edb429c4fd20bd6b36621249052a6bef1ca623f3c02e718c0299a3aacc

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on contagon/evalio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evalio-0.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b33d5c88c87c84ed638f41997e8c3b382315f3e06f93e22353d2b89f7ec7cf2e
MD5 c77954fe81ad8b490a71fe9366ecefd3
BLAKE2b-256 868b598f6a484b605a6c3d59247a276fdd5ea4d2d43c99504909cdc995c70ab7

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on contagon/evalio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evalio-0.4.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.4.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a769465b8dc6cb29be30af287a5fd55b48e3b9fc5d3569c70d31cf666d37f50
MD5 3e8b77f6d0036f0402a5f63dc1982b60
BLAKE2b-256 cd8d077f2fe1435180f9a4fc6f1589dda2f8cb1ec44cfb232336f0fbc35e45e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on contagon/evalio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evalio-0.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2607a6f082d0043cac41df9bbfda59f1c0984fbdce89293d0354d73d1751b121
MD5 6d4b152b091cbf231a2f9361d0f78c25
BLAKE2b-256 a7a13252c56b4403f0903913ba541950850025d46a2351253ad2ecd7c8c72d64

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on contagon/evalio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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