SLAM軌道評価ツールEVO


私が使用している環境はubunut1604 + ROS(Kinect)バージョンです

1 EVO環境のインストール

1.1バイナリのインストール

ソースコードのインストール方法を推奨します。、まず依存関係をインストールします。

sudo pip install --upgrade pip
sudo pip install --user --upgrade
 
sudo apt-get install libfreetype6-dev gfortran
pip install matplotlib
pip install scipy

evoをインストールします。

git clone https://github.com/MichaelGrupp/evo.git
cd evo
pip install . --upgrade
pip install numpy --upgrade --user

次の条件は、インストールが成功したことを示しています
ここに画像の説明を挿入

2使い方

EVOは、絶対および相対エラー評価コマンドとグラフィカル分析ツール(
当面はそのまま呼び出す)を提供します。evo_ape -absolute pose error(絶対エラー)
evo_rpe -relative pose error(相対エラー)

ツール:
evo_traj -1つ以上のトラジェクトリを分析、プロット、またはエクスポートするためのツール(1つまたは複数の曲を分析するために使用
evo_res -evo_apeまたはevo_rpeからの1つまたは複数の結果ファイルを比較するためのツール
evo_fig-(実験的)シリアル化を再開するためのツールプロット(--serialize_plotで保存)
evo_config-グローバル設定と構成ファイル操作のためのツール

ここで、EUROCデータ、TUMデータセット、およびKITTIデータセットで使用される四元数の順序は同じではないことに注意してください。したがって、コマンドを使用するときは、それを区別するためにパラメーターを追加する必要があります。アルゴリズムによって出力された軌道ファイルは、自分で保存する必要があります。これに注意してください。
evoソースコードでは、evo / test / dataディレクトリの下にテスト用のデータセットがあります。

2.1 TUMデータセットでの使用

2.1.1軌道の絶対誤差を計算する(evo_ape)

アルゴリズムによって出力された曲線と真の値の間の絶対姿勢エラーを評価します(絶対姿勢エラー)

mkdir results
evo_ape tum fr2_desk_groundtruth.txt  fr2_desk_ORB.txt -va --plot --plot_mode xz --save_results results/ORB_fr2_desk.zip

コマンドを実行した後、RMSEおよびその他のエラー値をターミナルに出力します
ここに画像の説明を挿入

2.1.2複数の曲線を描く(evo_traj)

2つのアルゴリズム(rgbdslam-v2およびorb-slam)の出力曲線を図に描きます。ここで、-refパラメーターは指定された真の軌道値です。

evo_traj tum freiburg1_xyz-ORB_kf_mono.txt freiburg1_xyz-rgbdslam.txt  --ref=freiburg1_xyz-groundtruth.txt -va --plot --plot_mode xy

画像インターフェイスで、曲線の色などのパラメータを変更できます。
ここに画像の説明を挿入

2.1.3複数の曲線を分析する(evo_res)

2.1.1のコマンドを使用して、fr1_xyzおよびfr2_deskシーケンスにZipファイルを生成するとします(これらのzipファイルは両方とも結果ディレクトリの下にあります)。この時点で、evo_resコマンドを使用して、これら2つのシーケンスに対するアルゴリズムのパフォーマンスを分析します

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

つまり、結果ディレクトリの下にあるすべてのzipファイルを分析します。
ここに画像の説明を挿入

2.3 KITTIデータセットでの使用

2.2.1軌道の絶対誤差を計算する

ここでxxx.ziという名前の圧縮ファイルが生成され、複数の曲線の描画に使用されます。

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

ここに画像の説明を挿入

2.2.2複数の曲線を描く

描画するカーブファイルを同じフォルダテストに配置し、

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

その中で、KITTI_00_ORB.txtは最初のアルゴリズムがシーケンスで実行されるファイルを表しKITTI_00_SPTAM.txt *は2番目のアルゴリズムがシーケンスで実行されるファイルを表します。*** – ref = KITTI_00_gt.txt ***は指定された実際のグラウンドトゥルースを示します軌道ファイル、***-p --plot_mode = xz ***は、XOZ平面に軌道を描画するためのコマンドパラメーターです。
ここに画像の説明を挿入

2.2.3複数の曲線を分析する

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

ここに画像の説明を挿入

2.3 EUROCデータセットでの使用

2.3.1軌道の絶対誤差を計算する

アルゴリズムによって出力された曲線と真の値の間の絶対姿勢エラーを評価します(絶対姿勢エラー)

evo_ape euroc V102_groundtruth.csv V102.txt -va --plot --plot_mode xy --save_results results/EUROC.zip

ここに画像の説明を挿入
残りの2つのコマンドは前の操作と同じですが、コマンドのeurocと*** kitti ***を*** tum ***に置き換えてください

参照

公式チュートリアル:https://github.com/MichaelGrupp/evo
https://blog.csdn.net/A_L_A_N/article/details/88708979
https://blog.csdn.net/qq_37568167/article/details/104961523

記事が参考になれば、いいね!O(∩_∩)O

コメントエリア([email protected])で交流し、議論する皆を歓迎します。

おすすめ

転載: blog.csdn.net/crp997576280/article/details/105385240