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

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

evalio-0.4.2-cp314-cp314-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

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

evalio-0.4.2-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.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07d04883b1eac5bba71f48ea6df65b25d4c307c527842c9f55c39fe9fc6b6cf4
MD5 17e7a668ed24b4ddd7caa33ad5bb2d90
BLAKE2b-256 27c73a6a7bfb85bcd07130afb80729456257fbabb170b72ac0d36a89110a7d2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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.4.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d7d383d40dbaa2a7730e420d409ef839cf65b758c79d432d9925bd130585ba4
MD5 dc32bd70c098e1aeb7cbaa17fdacc494
BLAKE2b-256 1173c09f652b7dbbc0f644e736d1bc490c825a6ef36d6bf1ecc2c0eef38f86c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ddfd517329cb04208d13eaad937827350d042d1402ebafce7dad53efc364d1b
MD5 ab7d9afacb2cba75667cc14bda166c1a
BLAKE2b-256 5bd3ac86414f3ea342150bbc7af047d3097344121bd32d9d0be7e79a2b6e9fc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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.4.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62ac1112c37c265ed0d601684f9d7172a3ba50117d07bf9a3eb47f519d9400d3
MD5 187ffbe0bfb8fcbaea269f05f27ce369
BLAKE2b-256 5870dd9807db57c6a40d2fbe2dbb2c96942bfa857b7a3ff9237cee29d4059521

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e64f71362b9521ffbff9df1d3e58da800ae7d3e959209c39583d55069e81d873
MD5 cddf44c6eacf2e31a37996cf393de16b
BLAKE2b-256 30c68787f8d0eb1b528eeb9811cc816cdf368d00390980ba4d44dd60736246f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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.4.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50b5c5320313d31da3a7ad1c06414702097e744ee198dccc55ebe2713f0f10dd
MD5 abc7cb0243a54be12de6d642df6b701e
BLAKE2b-256 62cf276b54e3760e6fe0ef8cfdcd5f2e1934fbc4db13509f7c4c29d66fe33c68

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed3ea320127acde0d091fbbf389cd13106e04d0efc7c935ab18ce0bdb9aa55c4
MD5 743ea2d16de39d07c72ccda819f63477
BLAKE2b-256 c85a414b165cdb5433a31c86a3567ec3a8c2a4dcea272413088063c7e7c0bf2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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.4.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalio-0.4.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 802ec008efabc25f8670ac4da4fc99204d20cbb69b9dbd77acd9a094d8712889
MD5 0b7bd72ad4f6070efe480fdfcea77916
BLAKE2b-256 eeb9a491dfc51f04cc0cfe714f0e2747afb59954793dbd0ecb7805a20cbd0fc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for evalio-0.4.2-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 Pingdom Monitoring Sentry Error logging StatusPage Status page