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])で交流し、議論する皆を歓迎します。