天天看點

從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:

從零開始做自動駕駛定位(二):軌迹精度評估

一、EVO工具的使用

1.evo簡介

 evo [1] 是一個很好的測評工具,它可以根據時間戳将軌迹進行對齊,同時可以将不同尺度的軌迹按照你指定的标準軌迹進行拉伸對齊,并可以算出均方差等評定參數,用于測評slam算法性能。支援的格式有:

  • “TUM” 軌迹檔案;
  • “KITTI“ 位姿檔案;
  • “EuRoC MAV” (.csv groundtruth and TUM trajectory file);
  • ROS bagfile with 

    geometry_msgs/PoseStamped

    geometry_msgs/TransformStamped

    geometry_msgs/PoseWithCovarianceStamped

     or 

    nav_msgs/Odometry

     topics or TF messages; 
  • 關于具體格式相關,見 [2]。

2.evo安裝

evo共有兩種安裝方式 [1][3]:

  • 2.1 二進制快捷安裝 :直接安裝最新的穩定發行版:
    pip install evo --upgrade --no-binary evo
               
  • 2.2 源碼編譯安裝

    1)下載下傳evo,也可以在home中直接下載下傳  

git clone https://github.com/MichaelGrupp/evo.git
           

    2)進入evo檔案夾,編譯安裝

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

3.evo工具使用

3.1 指令行接口

度量名額(具體原裡參見高博十四講第二版4.4.2小節):

  • evo_ape

     - 絕對位姿誤差
  • evo_rpe

     - 相對位姿誤差

工具:

  • evo_traj

     - 用于分析、繪制或者導出一個或多個軌迹;
  • evo_res

     - 用于對比一個或者多個從

    evo_ape

     或者 

    evo_rpe生成的結果檔案;

  • evo_fig

     - (experimental) tool for re-opening serialized plots (saved with 

    --serialize_plot

    )
  • evo_config

     - 用于操作全局設定和配置檔案

更多的參數細節詳見 [4]。

3.2 具體的工作舉例

注意:下面的測試檔案在evo的github源碼裡(詳見官網 [1])

1) 多軌迹繪制

cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz
           
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:

2) 軌迹誤差度量

mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/ORB.zip
evo_ape kitti KITTI_00_gt.txt KITTI_00_SPTAM.txt -va --plot --plot_mode xz --save_results results/SPTAM.zip
           
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:

3) 多個軌迹誤差分析

evo_res results/*.zip -p --save_table results/table.csv
           
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:
從零開始做自動駕駛定位(二):軌迹精度評估從零開始做自動駕駛定位(二):軌迹精度評估一、EVO工具的使用參考資料:

值得一提的是還有另一個比較類似的工具:rpg_trajectory_evaluation,具體的使用參考官網 [5],功能似乎沒有evo那麼強,不過這個工具對應了論文 [6],該論文詳細的闡述了估計誤差度量的推導及優缺點(尤其單目),有興趣的可以看一看。

參考資料:

[1] evo : https://github.com/MichaelGrupp/evo

[2] evo Formats :  https://github.com/MichaelGrupp/evo/wiki/Formats

[3] 測評工具evo安裝與使用 : https://blog.csdn.net/weixin_44386661/article/details/103080551

[4] evo/Home  more detailed documentation and examples : https://github.com/MichaelGrupp/evo/wiki

[5] rpg_trajectory_evaluation : https://github.com/uzh-rpg/rpg_trajectory_evaluation

[6] Z. Zhang and D. Scaramuzza, "A Tutorial on Quantitative Trajectory Evaluation for Visual(-Inertial) Odometry," 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Madrid, 2018, pp. 7244-7251, doi: 10.1109/IROS.2018.8593941.

繼續閱讀