VINS-Fusion 外参标定效果分析(一)

测试流程:

        在 EuRoC V1_01_easy 数据集上测试 VINS-Fusion 在线外参估计效果。使用估计前后不同的外参得到两条完整轨迹,使用 rpg_trajectory_evaluation 工具对比了两条轨迹相对 ground truth 的误差。

rpg_trajectory_evaluation 使用:

#依赖项
python -m pip install numpy matplotlib colorama

#安装
mkdir -p rpg_ws/src
cd rpg_ws/src
git clone https://github.com/uzh-rpg/rpg_trajectory_evaluation.git
cd ..
catkin_simple

#使用
source devel/setup.bash
rosrun rpg_trajectory_evaluation asl_groundtruth_to_pose.py 轨迹保存路径/vio.csv
mv 轨迹保存路径/groundtruth.txt 轨迹保存路径/stamped_traj_estimate.txt
rosrun rpg_trajectory_evaluation analyze_trajectory_single.py 轨迹保存路径

另外,rpg_trajectory_evaluation 默认基于 sim3 对齐,对应纯单目视觉的情况,创建文件可以指定 align_type 和 align_num_frames。

        align_type:

                · sim3:相似变换(用于视觉单目情况)

                · se3:刚体变换(用于视觉双目情况)

                · posyaw:平移加上围绕重力的旋转(用于视觉惯性情况)

                · none:不对齐轨迹

        align_num_frames:

                将在轨迹对齐中使用的位姿数(从头开始)。-1 表示将使用所有位姿。

外参收敛过程:

        下图中 t 表示单位为 m 的平移外参,r 表示单位为 ° 的旋转向量形式的旋转外参。如下所示,外参的旋转部分和平移部分都基本收敛。

VINS-Fusion 外参标定效果分析(一)_第1张图片

外参估计前后的轨迹误差:

Rotation Error:

VINS-Fusion 外参标定效果分析(一)_第2张图片

使用官方外参

VINS-Fusion 外参标定效果分析(一)_第3张图片

使用估计得到的外参

Translation Error:

VINS-Fusion 外参标定效果分析(一)_第4张图片

使用官方外参

VINS-Fusion 外参标定效果分析(一)_第5张图片

使用估计得到的外参

Scale Error:

VINS-Fusion 外参标定效果分析(一)_第6张图片

使用官方外参

VINS-Fusion 外参标定效果分析(一)_第7张图片

使用估计得到的外参

侧面视角下的轨迹:

VINS-Fusion 外参标定效果分析(一)_第8张图片

使用官方外参

VINS-Fusion 外参标定效果分析(一)_第9张图片

使用估计得到的外参

总结:

现象:

        VIN-Fusion 在线估计得到的外参与官方外参有较大的差别,且使用估计得到的外参可以使轨迹整体精度明显提高。

原因:

        官方外参是在相机内参为 pinhole 模型下标定出来的,与 VIN-Fusion 自己标定出来的 mei 模型的相机内参不匹配,因此重新估计外参可以使精度有明显提升。

你可能感兴趣的:(SLAM,c++,github,python)