← 开源
MichaelGrupp

evo

Python package for the evaluation of odometry and SLAM

AI EngineeringTest & guardPython
在 GitHub 打开
增长势头
+124 小时新增 Star+0.0%
4.34k
Star
800
Fork
+10
本周
22
贡献者
创建于 2017-09-13 · 更新于 2026-10-16 · 今日第 4707 名
主要开发者
MichaelGruppstefangachterValerioMagnago

MichaelGrupp/evo 排名第 4,707,有 4,338 个星标。

同类别比较

MichaelGrupp/evo 排名第 4,707,此处有 8 个同类条目;cmusphinx/pocketsphinx 排名第 4,706。

同类别比较
名称排名指标
modelscope/ms-agent4,696
语言:
Python
星标数:
4,413
分叉数:
532
简介:
MS-Agent: a lightweight framework to empower agentic execution of complex tasks
vijaythecoder/awesome-claude-agents4,698
星标数:
4,396
分叉数:
531
简介:
An orchestrated sub agent dev team powered by claude code
Doriandarko/maestro4,705
语言:
Python
星标数:
4,356
分叉数:
646
简介:
A framework for Claude Opus to intelligently orchestrate subagents.
cmusphinx/pocketsphinx4,706
语言:
C
星标数:
4,351
分叉数:
728
简介:
A small speech recognizer
53AI/53AIHub4,708
语言:
Go
星标数:
4,331
分叉数:
500
简介:
53AI Hub is an open-source AI portal and knowledge base for managing enterprise knowledge, AI agents, prompts, and AI tools, seamlessly integrating with Coze, Dify, FastGPT, RAGFlow. 一个AI知识库与Agent门户
google-gemini/gemini-skills4,712
语言:
Python
星标数:
4,284
分叉数:
455
简介:
Skills for the Gemini API, SDK and model/agent interactions
kunchenguid/gnhf4,722
语言:
TypeScript
星标数:
4,196
分叉数:
313
简介:
Before I go to bed, I tell my agents: good night, have fun
ai-robots-txt/ai.robots.txt4,723
语言:
Python
星标数:
4,195
分叉数:
189
简介:
A list of AI agents and robots to block.
关键参数与规格
关键参数与规格
参数值
语言Python
类别AI Engineering
子类别Test & guard
关键词Benchmarks, Robotics, Visualization
星标数4,338
分叉数800
贡献者22
创建日期2017-09-13
更新日期2026-10-16
1 天星标数1
7 天星标数10
排名4,707
上次排名2,932
排名变化-1,775
7 天星标排名3,943
上次 7 天星标排名3,941
7 天星标排名变化-2
总星标排名3,222
上次总星标排名3,219
总星标排名变化-3
国家Germany
README 摘录

Supported trajectory formats: 'TUM' trajectory files 'KITTI' pose files 'EuRoC MAV' (. csv groundtruth and TUM trajectory file) ROS and ROS2 bagfile with , , , or topics or TF messages See here for more infos about the formats. evo has several advantages over other public benchmarking tools: common tools for different formats algorithmic options for association, alignment, scale adjustment for monocular SLAM etc. flexible options for output, plotting, visualization or export (e. LaTeX plots or Excel tables) a powerful, configurable CLI that can

cover many use cases modular and libraries for custom extensions faster than other established Python-based tools (see here) **What it's not:** a 1-to-1 re-implementation of a particular evaluation protocol tailored to a specific dataset. Please use only in a proper environment (e. / , , , Pixi or a classic virtual environment). ⚠️ ☠️☠️☠️ ⚠️ Whatever you do, don't use: / anything with / or worst: From PyPi If you just want to use the executables of the latest release version, the easiest way is

to run: This will download the package and its dependencies from PyPI and install or upgrade them. If you want, you can subscribe to new releases via To upgrade to a newer version: From Source Run this in the repository's base folder: Pixi Pixi is an easy-to-use alternative if you want to have an isolated development environment. Run if you have an existing environment, or clone this repository and run to open a dev shell. Tab completion Tab

completion is supported via the argcomplete package. Dependencies **Python packages** evo has some required dependencies that are ***automatically resolved*** during installation with pip. **PyQt6 (optional)** PyQt6 will give you the enhanced GUI for plot figures from the "*qtagg*" matplotlib backend (otherwise: "*TkAgg*"). If PyQt6 is already installed when installing this package, it will be used as a default (see ). To change the plot backend afterwards, run . If you run into issues with installing tkinter, trying PyQt6 is a good idea

. **ROS (optional)** Some ROS-related features require a ROS installation, see here. We are testing this package with ROS Lyrical. Reading ROS bag files works also without a ROS installation thanks to the great rosbags package that is installed together with evo. This allows you also to read ROS 1 & 2 bags even if you don't have one of those ROS distros installed. (except for reading topics, because there we need the buffer implementation from ROS) **contextily (optional)** contextily is

required for adding map tiles to plots of geo-referenced data. **Rerun (optional)** You can send data also to the rerun viewer. See the related Wiki page for more details. Tab-completion of command line parameters is available on UNIX-like systems. **More documentation** Check out the Wiki on GitHub. ) Plot multiple trajectories Here, we plot two KITTI pose files and the ground truth using : 2. ) Run a metric on trajectories For example, here we calculate the absolute pose error

for two trajectories from ORB-SLAM and S-PTAM using ( is the reference (ground truth)) and plot and save the

常见问题

记录了多少星标和分叉?

MichaelGrupp/evo 有 4,338 个星标和 800 个分叉。

仓库排名是多少?

MichaelGrupp/evo 排名第 4,707。

记录的语言和类别是什么?

MichaelGrupp/evo 有 4,338 个星标,语言为 Python,类别为 AI Engineering。

哪个仓库排名最接近?

MichaelGrupp/evo 与 cmusphinx/pocketsphinx 比较,后者排名第 4,706,有 4,351 个星标。

README

evo

Python package for the evaluation of odometry and SLAM

Linux / macOS / Windows / ROS / ROS2

This package provides executables and a small library for handling, evaluating and comparing the trajectory output of odometry and SLAM algorithms.

Supported trajectory formats:

  • 'TUM' trajectory files
  • 'KITTI' pose files
  • 'EuRoC MAV' (.csv groundtruth and TUM trajectory file)
  • ROS and ROS2 bagfile with geometry_msgs/PoseStamped, geometry_msgs/TransformStamped, geometry_msgs/PoseWithCovarianceStamped, geometry_msgs/PointStamped or nav_msgs/Odometry topics or TF messages

See here for more infos about the formats.


Why?

evo has several advantages over other public benchmarking tools:

  • common tools for different formats
  • algorithmic options for association, alignment, scale adjustment for monocular SLAM etc.
  • flexible options for output, plotting, visualization or export (e.g. LaTeX plots or Excel tables)
  • a powerful, configurable CLI that can cover many use cases
  • modular core and tools libraries for custom extensions
  • faster than other established Python-based tools (see here)

What it's not: a 1-to-1 re-implementation of a particular evaluation protocol tailored to a specific dataset.


Installation / Upgrade

Installation is easy-peasy if you're familiar with this: https://xkcd.com/1987/#

The latest version of evo supports Python 3.11+.

Please use pip only in a proper environment (e.g. uv/uvx, pipx, venv, Pixi or a classic virtual environment).

⚠️ ☠️☠️☠️ ⚠️

Whatever you do, don't use: pip install --user / anything with --break-system-packages / or worst: sudo pip install

From PyPi

If you just want to use the executables of the latest release version, the easiest way is to run:

pip install evo

This will download the package and its dependencies from PyPI and install or upgrade them. If you want, you can subscribe to new releases via https://libraries.io/pypi/evo.

To upgrade to a newer version: pip install --upgrade evo

From Source

Run this in the repository's base folder:

pip install --editable .

Pixi

Pixi is an easy-to-use alternative if you want to have an isolated development environment. Run pixi add evo if you have an existing environment, or clone this repository and run pixi shell to open a dev shell.

Tab completion

Tab completion is supported via the argcomplete package. Run activate-global-python-argcomplete after the installation to use it.

Dependencies

Python packages

evo has some required dependencies that are automatically resolved during installation with pip. See the pyproject.toml file for all details.

PyQt6 (optional)

PyQt6 will give you the enhanced GUI for plot figures from the "qtagg" matplotlib backend (otherwise: "TkAgg"). If PyQt6 is already installed when installing this package, it will be used as a default (see evo_config show). To change the plot backend afterwards, run evo_config set plot_backend qtagg.

If you run into issues with installing tkinter, trying PyQt6 is a good idea.

ROS (optional)

Some ROS-related features require a ROS installation, see here. We are testing this package with ROS Lyrical.

Reading ROS bag files works also without a ROS installation thanks to the great rosbags package that is installed together with evo. This allows you also to read ROS 1 & 2 bags even if you don't have one of those ROS distros installed. (except for reading /tf topics, because there we need the buffer implementation from ROS)

contextily (optional)

contextily is required for adding map tiles to plots of geo-referenced data.

Rerun (optional)

You can send data also to the rerun viewer. Just pip install rerun-sdk and add --rerun to your command. See the related Wiki page for more details.


Command Line Interface

After installation with pip, the following executables can be called globally from your command-line:

Metrics:

  • evo_ape - absolute pose error
  • evo_rpe - relative pose error

Tools:

  • evo_traj - tool for analyzing, plotting or exporting one or more trajectories
  • evo_res - tool for comparing one or multiple result files from evo_ape or evo_rpe
  • evo_config - tool for global settings and config file manipulation

Call the commands with --help to see the options, e.g. evo_ape --help. Tab-completion of command line parameters is available on UNIX-like systems.

More documentation Check out the Wiki on GitHub.


Example Workflow

There are some example trajectories in the source folder in test/data.

1.) Plot multiple trajectories

Here, we plot two KITTI pose files and the ground truth using evo_traj:

cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

2.) Run a metric on trajectories

For example, here we calculate the absolute pose error for two trajectories from ORB-SLAM and S-PTAM using evo_ape (KITTI_00_gt.txt is the reference (ground truth)) and plot and save the individual results to .zip files for evo_res:

First trajectory (ORB Stereo):

mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/ORB.zip

Second trajectory (S-PTAM):

evo_ape kitti KITTI_00_gt.txt KITTI_00_SPTAM.txt -va --plot --plot_mode xz --save_results results/SPTAM.zip

3.) Process multiple results from a metric

evo_res can be used to compare multiple result files from the metrics, i.e.:

  • print infos and statistics (default)
  • plot the results
  • save the statistics in a table

Here, we use the results from above to generate a plot and a table:

evo_res results/*.zip -p --save_table results/table.csv


IPython / Jupyter Resources

For an interactive source code documentation, open the Jupyter notebook metrics_tutorial.ipynb in the notebooks folder of the repository. More infos on Jupyter notebooks: see here

If you have IPython installed, you can launch an IPython shell with a custom evo profile with the command evo_ipython.


Contributing Utilities

A few "inoffical" scripts for special use-cases are collected in the contrib/ directory of the repository. They are inofficial in the sense that they don't ship with the package distribution and thus aren't regularly tested in continuous integration.


Trouble

"😱, this piece of 💩 software doesn't do what I want!!1!1!!"

First aid:


Contributing

Patches are welcome, preferably as pull requests.

License

GPL-3.0 or later

If you use this package for your research, a footnote with the link to this repository is appreciated: github.com/MichaelGrupp/evo.

...or, for citation with BibTeX:

@misc{grupp2017evo,
  title={evo: Python package for the evaluation of odometry and SLAM.},
  author={Grupp, Michael},
  howpublished={\url{https://github.com/MichaelGrupp/evo}},
  year={2017}
}
排名相邻
同类项目