Skip to main content

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 dl 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}, 
}

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.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

evalio-0.6.0-cp314-cp314-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

evalio-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

evalio-0.6.0-cp313-cp313-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

evalio-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

evalio-0.6.0-cp312-cp312-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

evalio-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

evalio-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file evalio-0.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 009c190e5a497d107986e653e1c99006e7bb0480a11045d0b9d5ce852f729740
MD5 21bd0cf1aba438ec0ec856974be9f408
BLAKE2b-256 05d49bed61f5fb18552820c58d5243a5d48945e0e16002c1c9f9fb80ac129bb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: on_main.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.6.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a30d802e36177217c5ecd3e07ceac049c9e97c282a3027d532eca40edb5b2fdb
MD5 74307aea44628783e4289aa5e3472461
BLAKE2b-256 f457bfd2900ec3c1edd756c689c035ae73cce666d3ddeaed69444ab6b2af3cb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.6.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: on_main.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.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d005086bc74d8c7381bf7eaa146308554df1198fc40523a69ecad603606daf9
MD5 c5a9d95ec602681de9292dbb90dc3e18
BLAKE2b-256 f73293d97c07868c9801f5f56cc5118a031c52c532604e4fea6905ed1b8d9e26

See more details on using hashes here.

Provenance

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

Publisher: on_main.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.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c70595dbe9a801b1a2d501d3cc8ebc8f9bf9fd26cb27c74e59cd2a045935dab
MD5 3453b00830c230e764391d03e58c4216
BLAKE2b-256 e0fb7dd26db7dff1eb2fabba10dfb25ecc6752343de9f7ef20fddbbac9fbc51f

See more details on using hashes here.

Provenance

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

Publisher: on_main.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.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f19096be08528c2ec825a470e9dc7e2af3cb69bf8c0a3922607faa6c85fc986
MD5 86f7462e087fd076538d2e9945eb68a7
BLAKE2b-256 2e17a71f07dcd9f8a3ff80f79235222e3ae9ac2f13f0e1ce90b617c881a47195

See more details on using hashes here.

Provenance

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

Publisher: on_main.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.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d2e9c2acae1ab7fb4b27494be34fccc63418211899e9f8e7768ce3c170c715b6
MD5 f8a3d8a9c28f043435adf64f1291894c
BLAKE2b-256 cf0528e17f08eef3b6597a6f49db189703e98bae8971d06b365f15669ac35087

See more details on using hashes here.

Provenance

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

Publisher: on_main.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.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f970a1aad9d0f78b0acac195efd6620d60ef61fdd956db088afcf7567b907f7
MD5 76c2828760e13e3fb5868da5097b67a3
BLAKE2b-256 5e840a9f58601a381dbc055775f82361e6a56f34aca5e4631353981477ce7caf

See more details on using hashes here.

Provenance

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

Publisher: on_main.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.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24db457933de3fc911593fa57a7b501e426405d2e933fe8775d488f11b8708f9
MD5 9f675b8317fcdcd8210ced929a7b8457
BLAKE2b-256 25ae52a4e23dd00e9b7bb9bba6d05bda3f59a79541b7271ff4f741befe33b19b

See more details on using hashes here.

Provenance

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

Publisher: on_main.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 Sentry Error logging StatusPage Status page