A Python package for evaluating and comparing odometry and SLAM algorithm trajectories with support for multiple formats and metrics.
evo is a Python package designed for evaluating and comparing the trajectory outputs of odometry and SLAM algorithms. It provides metrics like absolute and relative pose error, supports multiple trajectory formats, and offers tools for visualization and analysis. It solves the problem of consistently benchmarking localization and mapping systems across different datasets and algorithms.
Robotics researchers, engineers, and students working on odometry, SLAM, or autonomous systems who need to quantitatively assess algorithm performance. It's also valuable for anyone comparing different SLAM implementations or validating their own against ground truth.
Developers choose evo for its comprehensive format support, flexible and configurable CLI, faster performance compared to other Python tools, and its modular design that allows for custom extensions. It provides a unified toolkit that avoids being locked into a single dataset's evaluation protocol.
Python package for the evaluation of odometry and SLAM
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles TUM, KITTI, EuRoC MAV, and ROS/ROS2 bagfiles, enabling evaluation across diverse datasets without manual conversion, as highlighted in the Key Features.
Provides executables for absolute pose error (APE) and relative pose error (RPE), standardizing SLAM benchmarking with algorithmic options for alignment and scale adjustment.
Offers flexible plotting with map tile overlays and Rerun integration for 3D visualization, enhancing analysis depth, as shown in the demo images and Wiki.
Faster than other Python-based tools, as documented in performance.md, making it efficient for processing large trajectory datasets.
Optional dependencies like PyQt6 for enhanced GUI and contextily for map tiles add installation hurdles, especially on non-Linux systems, hinted by the xkcd comic reference.
Primary interaction is through CLI tools (e.g., evo_traj, evo_res), which can be a barrier for users preferring graphical interfaces or seamless integration into automated pipelines.
Focused on post-processing analysis, so it's not designed for online monitoring or integration into real-time SLAM systems, restricting use to offline evaluation.