evo测评vins-mono
一 evo安装
可以参考官方文档,或者:
Sudo apt install python-pip
Pip install evo --upgrade --no-binary evo --user
需要注意,本文使用的是Euroc数据集的MH_01_easy,平时我们运行vins-mono时用的是MH_01_easy.bag,而在evo中我们需要用到ASL Dataset Format,请事先下载好。
二 vins-mono代码修改
vins-mono自动保存的数据格式不符合tum格式,所以我们需要对vins-mono的源代码做一些修改:
- …/VINS-Mono/vins_estimator/src/utility/visualization.cpp中的pubOdometry()函数:
ofstream foutC(VINS_RESULT_PATH, ios::app);
foutC.setf(ios::fixed, ios::floatfield);
foutC.precision(0);
foutC << header.stamp.toSec() * 1e9 << ",";
foutC.precision(5);
foutC << estimator.Ps[WINDOW_SIZE].x() << ","
<< estimator.Ps[WINDOW_SIZE].y() << ","
<< estimator.Ps[WINDOW_SIZE].z() << ","
<< tmp_Q.w() << ","
<< tmp_Q.x() << ","
<< tmp_Q.y() << ","
<< tmp_Q.z() << ","
<< estimator.Vs[WINDOW_SIZE].x() << ","
<< estimator.Vs[WINDOW_SIZE].y()