SLAM軌跡評估工具--evo安裝及使用
1. evo安裝
1.1 更新pip
# 打開終端,筆者是在python2.7基礎上更新,當然python3.5更好
pip install --user --upgrade pip
# pip安裝numpy和matplotlib,使用清華的鏡像
pip install --user --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
pip install --user --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
1.2 安裝evo
git clone https://github.com/MichaelGrupp/evo.git
cd evo
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple evo --upgrade --no-binary evo
2. evo使用
2.1 數據集轉換格式
保存/導出爲其他格式:euroc、tum、kitti數據集格式之間的互相轉換.
# euroc數據集 -> tum數據集格式文件(data.tum)
evo_traj euroc data.csv --save_as_tum
# tum數據集 -> kitti數據集格式文件(*.kitti)
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti
# tum數據集 -> ROS bag文件格式(<時間戳>.bag)
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag
相互轉換圖解:
2.2 evo命令格式
command bag bagfile-path reference-topic estimated-topic [options]
- command:指令(evo_traj、evo_ape、evo_rpe)
- bag:數據集名稱(euroc、kitti、tum)
- bagfile-path:文件所在路徑(參考和估計文件在同一文件夾下)
- reference-topic:真實值
- estimated-topic:估計值
- [options]: 其他參數選項(-a、-s、-as)
2.3 其他參數選項-[options]
- 自動對齊 --align 或者 -a
- 尺度校準 --correct_scale 或者 -s
- 自動對齊且尺度校準 --align --correct_scale 或者 -as
2.4 顯示軌跡evo_traj
- 顯示單軌跡
evo_traj euroc data.csv -p --plot_mode=xy
evo_traj tum data.tum -p --plot_mode=xy
evo_traj tum groundtruth.txt -p --plot_mode=xy
- 顯示雙軌跡(真值和估計值)
evo_traj tum CameraTrajectory.txt --ref=data.tum -p --plot_mode=xy -as
evo_traj euroc CameraTrajectory.txt --ref=data.csv -p --plot_mode=xy -as
等價於:
evo_traj tum CameraTrajectory.txt --ref=data.tum -p --plot_mode=xy --align --correct_scale
evo_traj euroc CameraTrajectory.txt --ref=data.csv -p --plot_mode=xy --align --correct_scale
2.5 絕對位姿誤差evo_ape
evo_ape tum data.tum CameraTrajectory.txt -va -p --plot_mode=xyz
evo_ape euroc data.csv CameraTrajectory.txt -va -p --plot_mode=xyz
2.6 相對位姿誤差evo_rpe
evo_rpe tum data.tum CameraTrajectory.txt -va -p --plot_mode=xyz
evo_rpe euroc data.tum CameraTrajectory.txt -va -p --plot_mode=xyz
其中:
- max: 表示最大誤差;
- mean:平均誤差;
- median:誤差中位數;
- min: 最小誤差;
- rmse:均方根誤差;
- sse: 和方差、誤差平方和;
- std: 標準差
3. 後續計劃
後續將進行深度卷積網絡的學習,以及VIO的SLAM課程學習,主要研究方向還是深度學習(圖像和點雲方向).