MichaelGrupp/evo
Python package for the evaluation of odometry and SLAM
evo – オドメトリ & SLAM 用評価ツール (Python)
概要
- オドメトリまたはSLAMシステムによって生成された軌跡を読み込み、比較し、可視化するためのコマンドラインツールと小規模なライブラリを提供するPythonパッケージです。
- Linux, macOS, Windowsで動作し、ROS 1/ROS 2のbagファイルから直接データを読み取ることができます。
導入のメリット
- SLAM/オドメトリのパイプラインによって、出力される軌跡のフォーマットが多岐にわたります(TUM, KITTI, EuRoC, ROS topics, bag files)。
evoはこれらのフォーマットを正規化し、並べて評価できるようにします。 - 絶対ポーズ誤差(APE)や相対ポーズ誤差(RPE)などの一般的な誤差指標を実装しており、アライメント、スケール補正(単眼SLAMに有用)、軌跡の関連付けのオプションを備えています。
- 出版レベルのプロット(2D, 3D, マップタイル付き, LaTeX対応)を生成し、結果をCSV/Excel形式の表としてエクスポートできます。
- オプションの統合:
- より豊かなGUIバックエンドのための PyQt6。
- 地理的なマップタイルを追加するための contextily。
- Rerunビジュアライザへのストリーミングのための rerun-sdk。
主要コンポーネント
| ツール | 目的 |
|---|---|
evo_ape |
参照軌跡と1つ以上の推定値の間の絶対ポーズ誤差を計算します。 |
evo_rpe |
相対ポーズ誤差(一定の距離/角度におけるドリフト)を計算します。 |
evo_traj |
軌跡のプロット、分析、またはエクスポートを行います。多くの出力形式とマップオーバーレイをサポートしています。 |
evo_res |
複数の指標結果ファイルを集計し、要約統計量と比較プロットを生成します。 |
evo_config |
グローバル設定(例:プロットバックエンド)。 |
evo_ipython |
インタラクティブな探索のために、ライブラリがロードされた状態で起動するIPythonシェル。 |
インストール
# 推奨: 隔離された環境(venv, uv, pipxなど)にインストールしてください
pip install evo # PyPIから – 最新の安定リリースを取得します
# または、開発用として:
git clone https://github.com/MichaelGrupp/evo.git
cd evo
pip install --editable.
- Python 3.10+ が必要です。
- オプションの依存関係(PyQt6, contextily, rerun-sdk, ROS)は、要求された場合に自動的にインストールされますが、コア機能はそれらなしでも動作します。
典型的なワークフロー(例)
- 軌跡のプロット
グランドトゥルースに対する2つのSLAM実行の並列プロットを生成します。cd test/data evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz - 指標の実行
APEを計算し、プロットを表示し、後で集計するために詳細な出力を保存します。mkdir results evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz \ --save_results results/ORB.zip - 複数の結果の比較
要約統計量、バイオリン/ボックスプロット、およびCSVテーブルを生成します。evo_res results/*.zip -p --save_table results/table.csv
拡張性
- このパッケージは、
coreライブラリ(指標の実装、軌跡の処理)とtools(CLIラッパー)に分かれています。独自のPythonコードでライブラリをインポートして、カスタムの評価パイプラインを構築したり、他の研究フレームワークと統合したりすることができます。
ドキュメント & ヘルプ
- 各コマンドの
--helpによる完全なCLIリファレンス。 - サポートされているフォーマット、プロットオプション、Rerun統合をカバーするGitHub上の詳細なWiki。
- Jupyter notebook
metrics_tutorial.ipynbがインタラクティブな使用方法を示しています。
ライセンス
- GPL-3.0以降。学術研究で
evoを使用する場合は、READMEに引用(BibTeXあり)が求められています。
要約すると、evoは成熟したテスト済みのツールボックスであり、ロボット研究者がカスタムパーサーやプロットコードを書くことなく、オドメトリ/SLAMの出力を迅速にベンチマークできるようにします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト