evo
Python package for the evaluation of odometry and SLAM
Decision gist · record as of 2026-08-14
Yes. evo is actively maintained, has no known vulnerabilities, low install friction, and broad Python version support (3.10–3.14). The GPLv3 copyleft license is a constraint only if you plan to distribute proprietary derivatives. Install it if you need to evaluate odometry or SLAM trajectories; the CLI is straightforward and the library is modular for custom analysis.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Optional PyQt6 for enhanced GUI; otherwise uses TkAgg backend.
- ROS bag file reading works without ROS installation via rosbags, but reading /tf topics requires ROS.
License · maintenance · safety
copyleft license (copyleft) — Licensed under GNU General Public License v3 (GPLv3), a copyleft license. Any derivative work or distribution must also be licensed under GPLv3 or later; proprietary use is not permitted.
last release 2026-07-18 (27 days) · last repo commit 2026-08-14 · 4,297 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 251,508 downloads/mo, #8,580 on PyPI
Alternatives
Verify before relying
pip install evo
# Plot trajectories
evo_traj kitti trajectory1.txt trajectory2.txt --ref=ground_truth.txt -p
# Calculate absolute pose error
evo_ape kitti ground_truth.txt estimated_trajectory.txt -va --plot- Whether the package's performance advantage over other Python-based tools remains current as of version 1.37.0.
- Specific memory or computational limits when processing very large trajectory datasets.
- Whether all optional dependencies (contextily, rerun-sdk) are automatically installed or require manual installation.
What it is and what it does
evo is a Python package for evaluating and benchmarking odometry and SLAM algorithm outputs. It reads trajectory data from multiple formats—TUM, KITTI, EuRoC, and ROS/ROS2 bag files—and provides a suite of CLI tools and a modular library for computing metrics (absolute and relative pose error), aligning trajectories, adjusting scale, and generating plots and statistical exports. The package is designed for researchers and roboticists who need to compare algorithm performance across standardized datasets or custom experiments.
The tool combines a command-line interface (evo_ape, evo_rpe, evo_traj, evo_res, evo_config) with a Python library for custom analysis. It depends on standard scientific Python stack components—numpy, scipy, pandas, matplotlib, seaborn—plus rosbags for ROS bag support and pillow for image handling. Installation is straightforward via pip into a virtual environment; optional PyQt6 improves the plotting GUI, and optional packages like contextily and rerun-sdk extend visualization capabilities.
Use it for
- Compute absolute and relative pose error metrics to benchmark SLAM or visual odometry algorithms against ground truth.
- Plot and compare multiple estimated trajectories side-by-side to visualize algorithm differences.
- Export trajectory statistics and error metrics to CSV or LaTeX tables for research papers.
- Process ROS bag files containing pose or odometry messages without requiring a full ROS installation.
- Align and scale-adjust monocular SLAM output to ground truth before metric calculation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
evo is actively maintained, has no known vulnerabilities, low install friction, and broad Python version support (3.10–3.14). The GPLv3 copyleft license is a constraint only if you plan to distribute proprietary derivatives. Install it if you need to evaluate odometry or SLAM trajectories; the CLI is straightforward and the library is modular for custom analysis.
Install
evo on PyPI
Before you install
Low install friction with a pure-wheel distribution. Active maintenance (last commit 2026-08-14, release 27 days ago) and broad Python support (3.10–3.14). Requires Python 3.10+; 14 runtime dependencies including numpy, pandas, scipy, and matplotlib are automatically resolved.
Requires Python 3.10 or later. Optional PyQt6 for enhanced GUI; otherwise uses TkAgg backend. ROS bag file reading works without ROS installation via rosbags, but reading /tf topics requires ROS.
License in practice
Licensed under GNU General Public License v3 (GPLv3), a copyleft license. Any derivative work or distribution must also be licensed under GPLv3 or later; proprietary use is not permitted.
Quickstart
pip install evo
# Plot trajectories
evo_traj kitti trajectory1.txt trajectory2.txt --ref=ground_truth.txt -p
# Calculate absolute pose error
evo_ape kitti ground_truth.txt estimated_trajectory.txt -va --plot
Verify before relying
- Whether the package's performance advantage over other Python-based tools remains current as of version 1.37.0.
- Specific memory or computational limits when processing very large trajectory datasets.
- Whether all optional dependencies (contextily, rerun-sdk) are automatically installed or require manual installation.
Package facts
| License | copyleft license copyleft |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 14 packagesargcompletecoloramamatplotlibnatsortnumexprnumpypackagingpandaspillowpygmentspyyamlrosbagsscipyseaborn |
| Maintenance | Actively maintained 27 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 251,508 / month, #8,580 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: GNU General Public License v3 (GPLv3)Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTopic :: Scientific/Engineering |
Evidence: evo-1.37.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “SLAM trajectory evaluation”
- evoevo evaluates and compares trajectory output from odometry and SLAM…
- strands-agents-evalsStrands Evals SDK provides a comprehensive evaluation framework for…
- agentevalsProvides evaluators and utilities to assess agent trajectories—the…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also mplib · toppra · pin · libpinocchio · python-motion-planning · agentevals · strands-agents-evals · gtsam