EVO使用方法詳解


@

evo_ape 計算絕對位姿誤差

絕對位姿誤差,常被用作絕對軌跡誤差,比較估計軌跡和參考軌跡並計算整個軌跡的統計數據,適用於測試軌跡的全局一致性。

命令語法:命令 格式 參考軌跡 估計軌跡 [可選項]
其中格式包括euroc、tum等數據格式,可選項有對齊命令、畫圖、保存結果等。
常用命令示例:

evo_ape euroc MH_data3.csv pose_graphloop.txt -r full -va --plot --plot_mode xyz --save_plot ./VINSplot --save_results ./VINS.zip

命令的含義為:計算考慮平移和旋轉部分誤差的ape,進行平移和旋轉對齊,以詳細模式顯示,保存畫圖並保存計算結果。
命令運行后得到結果如下圖所示
在這里插入圖片描述

-r表示ape所基於的姿態關系

-r/–pose_relation可選參數 含義
full 表示同時考慮旋轉和平移誤差得到的ape,無單位(unit-less)
trans_part 考慮平移部分得到的ape,單位為m
rot_part 考慮旋轉部分得到的ape,無單位(unit-less)
angle_deg 考慮旋轉角得到的ape,單位°(deg)
angle_rad 考慮旋轉角得到的ape,單位弧度(rad)

不添加-r/–pose_relation和可選項,則默認為trans_part。

-v表示verbose mode,詳細模式

-a表示采用SE(3) Umeyama對齊,其余可選項如下表所示。

-s表示尺度對其

不加表示默認尺度對齊參數為1.0,即不進行尺度對齊。
命令 含義
–align/-a 采用SE(3) Umeyama對齊,只處理平移和旋轉
–align --correct_scale/-as 采用Sim(3) Umeyama對齊,同時處理平移旋轉和尺度
–correct_scale/-s 僅對齊尺度

采用不同對齊命令效果圖
在這里插入圖片描述

–plot表示畫圖

–plot_mode選擇畫圖模式,二維圖或者三維圖,可選參數為[xy, xz, yx, yz, zx, zy, xyz],默認為xyz。保存畫圖結果可以自己手動在窗體上保存,也可以通過–save_plot實現,–save_plot后接保存路徑,如./VINSplot, 表示存儲在當前路徑下的名稱為VINSplot的文件中,保存文件的類型可以通過evo_config設置。常見的可以保存成png,pdf等,詳見evo_config部分。

– save_results表示存儲結果,

后面跟隨存儲路徑以及壓縮文件名稱,存儲后得到zip壓縮文件。
作圖時修改圖像參數請見evo_config。

幫助

可通過 evo_ape +數據格式 + --help查看更多參數的含義以及如何使用。例如
evo_ape euroc --help

evo_rpe 計算相對位姿誤差

相對位姿誤差不進行絕對位姿的比較,相對位姿誤差比較運動(姿態增量)。相對位姿誤差可以給出局部精度,例如slam系統每米的平移或者旋轉漂移量。
命令語法:命令 格式 參考軌跡 估計軌跡 [可選項]
其中格式包括euroc、tum等數據格式,可選項有對齊命令、畫圖、保存結果等。
常用命令示例:

evo_rpe euroc MH_data3.csv pose_graphloop.txt -r angle_deg --delta 1 --delta_unit m -va --plot --plot_mode xyz --save_plot ./VINSplot --save_results ./VINS.zip

命令的含義為 求每米考慮旋轉角的rpe,以詳細模式顯示並畫圖。
命令運行后得到結果如下圖所示
在這里插入圖片描述

-r表示rpe所基於的姿態關系

-r/–pose_relation可選參數 含義
full 表示同時考慮旋轉和平移誤差得到的ape,無單位(unit-less)
trans_part 考慮平移部分得到的ape,單位為m
rot_part 考慮旋轉部分得到的ape,無單位(unit-less)
angle_deg 考慮旋轉角得到的ape,單位°(deg)
angle_rad 考慮旋轉角得到的ape,單位弧度(rad)

不添加-r/–pose_relation和可選項,則默認為trans_part。

–d/–delta表示相對位姿之間的增量

–u/–delta_unit表示增量的單位

可選參數為[f, d, r, m],分別表示[frames, deg, rad, meters]。–d/–delta -u/–delta_unit合起來表示衡量局部精度的單位,如每米,每弧度,每百米等。其中–delta_unit為f時,–delta的參數必須為整形,其余情況下可以為浮點型。–delta 默認為1,–delta_unit默認為f。

其他

-v --plot --plot_mode xyz --save_results results/VINS.zip --save_plot等同evo_ape中所講。

當在命令中加上–all_pairs,則計算rpe時使用位置數據中所有的對而不是僅連續對,此時,可以通過-t/–delta_tol控制–all_pairs模式下的相對增量的容差(relative delta tolerance)。需要注意–all_pairs下不能使用–plot函數。

幫助

可通過 evo_rpe +數據格式 + --help查看更多參數的含義以及如何使用。例如
evo_rpe euroc --help

evo_config 全局設置和配置文件操作

evo_config show可以查看設置文件中的參數和參數的簡要注釋。如下圖所示。
在這里插入圖片描述evo_config set 進行參數設置
下面是幾個常用的參數,其含義以及可選項
參數 含義 可選項
plot_export_format 輸出圖像時圖像存儲格式 常用png,pdf等
plot_linewidth 作圖時線的寬度 matplotlib支持的寬度,默認1.5
plot_reference_color 圖像中參考軌跡的顏色 black,red,green等
plot_reference_linestyle 參考軌跡的線型 matplotlib支持的線型,默認–
plot_seaborn_style 圖像背景和網格 whitegrid,darkgrid,white,dark
plot_split 是否分開顯示/存儲圖像 false/true
plot_figsize 畫圖的圖像大小 默認寬高均為6,可使用其他值
table_export_format 表格數據輸出格式 常用 csv,excel,latex,json

例如命令
evo_config set plot_seaborn_style whitegrid 將畫圖背景更改成白色網格
evo_config set plot_fontfamily serif plot_fontscale 1.2 將字體改為襯線型並調為1.2倍大小
evo_config set plot_reference_linestyle - 將畫圖所使用的線型改為 -
evo_config set plot_figsize 10 9 將所畫圖的圖像大小調整為10 9(寬 高)

evo_config reset 將參數還原到默認值

evo_config generate 將命令行參數轉換成–out指定的.json文件
例如:evo_config generate --pose_relation angle_deg --delta 1 --delta_unit m --verbose --plot --out rpe_config.json
在這里插入圖片描述當需要再次使用這樣的參數配置時,可以通過 -c .json文件來實現。例如
evo_rpe euroc MH_data3.csv pose_graphloop.txt -c rpe_config.json

evo_config show --help
evo_config set --help
evo_config generate --help
evo_config reset --help
可查看evo_config中幾個工具的部分相關介紹。

evo_traj 軌跡管理的主要工具

evo_traj可以打開任意多個軌跡,查看統計信息。-v表示以詳細模式顯示,–full_check可以對軌跡進行檢查。
evo_traj euroc MH_data1.csv MH_data3.csv
在這里插入圖片描述

evo_traj euroc MH_data1.csv MH_data3.csv -v -p

在這里插入圖片描述

evo_traj euroc MH_data1.csv MH_data3.csv -v --full_check在這里插入圖片描述

如果使用的是ROS的bagfile,給出你要使用的.bag文件路徑以及topics。例如:
evo_traj bag ROS_example.bag groundtruth ORB-SLAM S-PTAM
利用–all_topics可以加載bagfile中的所有軌跡。
如果需要將軌跡對齊(-a/ --align, -s / --correct_scale, --n_to_align),則需要利–ref指定參考軌跡。例如evo_traj bag ROS_example.bag ORB-SLAM S-PTAM --ref groundtruth -s

evo_traj 將軌跡進行對齊以及畫圖操作,與前面提到的幾部分一樣。
evo_traj可以將軌跡轉換成其他格式。
–save_as_bag –save_as_kitti –save_as_tum
bag yes yes yes
euroc yes yes yes
kitti no(no timestamps) yes no(no timestamps)
tum yes yes yes

因euroc格式只對euroc數據集的groundtruth數據有意義,所以沒有–save_as_euroc。
evo_traj euroc data.csv --save_as_tum

可通過 evo_traj +數據格式 + --help查看更多參數的含義以及如何使用。例如
evo_traj euroc --help

evo_res 進行結果比較

evo_ape/evo_rpe中將結果保存為.zip文件后,可以利用evo_res對不同的結果進行比較。
例如:MH3.zip、MH3_2.zip均由evo_ape得到的,運行命令evo_res MH3.zip MH3_2.zip -v
在這里插入圖片描述

evo_res --help可查看可選參數含義。

evo其他常用命令
命令 含義
evo pkg --version 查看evo版本
evo pkg --info 查看evo的簡要介紹和描述
evo pkg --pyversion 查看python版本
evo pkg --license 查看許可證
evo pkg --location 查看evo安裝路徑
evo pkg --logfile 查看日志文件路徑
evo pkg --open_log 打開日志文件
evo pkg --clear_log 清除日志文件

補充:

--delta 100 分段統計精度
參考來源:
1.https://github.com/MichaelGrupp/evo/wiki
2.https://blog.csdn.net/dcq1609931832/article/details/102465071#commentBox


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM