軌跡評估工具使用總結(一) 基操evo

evo是一款用於視覺里程計和slam問題的軌跡評估工具。核心功能是能夠繪製相機的軌跡,或評估估計軌跡與真值的誤差。支持多種數據集的軌跡格式(TUM、KITTI、EuRoC MAV、ROS的bag),同時支持這些數據格式之間進行相互轉換。在此僅對其基本功能做簡要介紹。

evo工具github地址:https://github.com/MichaelGrupp/evo/wiki


一、安裝

安裝方式極其簡單,採用pip安裝:

pip install evo --upgrade --no-binary evo

或者通過github下載源碼後(https://github.com/MichaelGrupp/evo),使用源碼安裝:

pip install --editable . --upgrade --no-binary evo

安裝時會自動安裝相關依賴項。

安裝完畢後,在命令行輸入evo,若顯示了相關信息,則表明安裝成功。若提示"command not found"也不用驚慌,很多人遇到這種問題,重啓電腦即可找到evo相應指令。

二、繪製軌跡

1. 基礎指令

evo繪製軌跡的指令爲:evo_traj,後跟必要參數有:數據的格式(tum/kitti/bag/euroc等)+ 軌跡文件。軌跡文件可以有多個,例如:

evo_traj tum traj1.txt traj2.txt

這個指令只是顯示軌跡的基本信息,若要繪製軌跡,則增加可選參數 -p 或 --plot

evo_traj tum traj1.txt –p

2. 軌跡對齊

我們時常需要將估計軌跡與真實軌跡同時繪製,可採用指令:

evo_traj tum realTraj.txt estTraj.txt -p

然而存儲時軌跡多爲相對位置變化,所以繪製出的軌跡在初始位置上存在一定的位置和角度偏移,出現以下情況。

(如圖所示,左圖爲繪製的兩條曲線,通過調整可以發現兩個曲線形狀大體相同,但沒有對齊,從而具有較大的誤差)

 

這時我們採用對齊指令將兩條軌跡進行對齊。爲此我們需要通過--ref參數指定參考軌跡,並增加參數-a(或--align)進行對齊(旋轉與平移)

evo_traj tum estTraj.txt --ref realTraj.txt -p -a

3. 軌跡尺度縮放

單目相機會存在尺度的不確定性,evo_traj 支持使用-s(或 --correct_scale)參數進行Sim(3)上的對齊(旋轉、平移與尺度縮放)

 

(圖片從左到右:兩條未對齊曲線、曲線對齊後繪製結果、曲線通過尺度縮放後結果)


三、軌跡評估

evo可以評估兩條軌跡的誤差,主要有兩個命令:

evo_ape:計算絕對位姿誤差(absolute pose error),用於整體評估整條軌跡的全局一致性

evo_rpe:計算相對位姿誤差(relative pose error),用於評價軌跡局部的準確性

這兩個指令也支持evo_traj的可選參數,軌跡對齊-a與尺度縮放-s。完整指令如下:

evo_ape tum realTraj.txt estTraj.txt -a –s

此時將顯示軌跡誤差相關結果。

 

若增加可選參數-p,可以繪製誤差相關曲線

 

注意:在進行評估時,若經過了縮放,在命令行中應將真實軌跡(參考軌跡)放在估計軌跡(計算軌跡)前方,避免在縮放時參考軌跡錯誤而造成誤差被錯誤縮放。

四、格式互相轉換

五、進階學習

這裏只介紹了evo的基本操作,除此之外evo可以進行數據格式轉化、曲線顏色配置、軌跡導出等多種功能,詳細請參考evo在github上的wiki:

https://github.com/MichaelGrupp/evo/wiki

同時,可以在命令行通過-h參數查看當前evo指令的參數及相關說明。例如:

evo_traj tum –h

注意一定要輸入完整的evo指令(evo_traj, evo_ape等),與必選參數,即數據格式(tum/kitti/euroc/bag)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章