我是靠谱客的博主 温暖手链,这篇文章主要介绍KITTI里程计数据集 | 跑VINS-Fusion计算外参1、使用KITTI数据集跑VINS,数据集制作参考,本文使用的是2011_09_26_0056。使用双目 +IMU,及之后融合激光雷达2、计算外参py脚本。也可以直接用MATLAB、Sophus等3、最后跑vins结果:总结:目前bag跑kitti效果不是很好,按理说计算外参没有问题,另外一个可能原因是IMU数据与相机不是很同步,现在分享给大家,希望可以做个参考。

1、使用KITTI数据集跑VINS,数据集制作参考,本文使用的是2011_09_26_0056。使用双目 +IMU,及之后融合激光雷达

在这里插入图片描述
在这里插入图片描述

  • 根据kitti数据集给出的标定参数,计算IMU-to-Cam0,IMU-to-Cam1。
  • 本文使用的是未同步的imu数据和同步的相机激光雷达数据。
    在这里插入图片描述

2、计算外参py脚本。也可以直接用MATLAB、Sophus等

T i c 0 = T i v ∗ T v c 0 ; T i c 1 = T i c 0 ∗ T c 0 c 1 T_{ic_0} = T_{iv} * T_{vc_0}; T_{ic_1} = T_{ic_0} *T_{c_0c_1} Tic0=TivTvc0Tic1=Tic0Tc0c1

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from numpy import * import numpy as np T_vi = np.mat( [[9.999976e-01, 7.553071e-04, -2.035826e-03, -8.086759e-01], [-7.854027e-04, 9.998898e-01, -1.482298e-02, 3.195559e-01], [2.024406e-03, 1.482454e-02, 9.998881e-01, -7.997231e-01], [0, 0, 0, 1]] ) T_c0v = np.mat( [[7.967514e-03, -9.999679e-01, -8.462264e-04, -1.377769e-02], [-2.771053e-03, 8.241710e-04, -9.999958e-01, -5.542117e-02], [9.999644e-01, 7.969825e-03, -2.764397e-03, -2.918589e-01], [0, 0, 0, 1]] ) T_c0c1 = np.mat( [[9.993440e-01, 1.814887e-02, -3.134011e-02, -5.370000e-01], [1.842595e-02, 9.997935e-01, 8.575221e-03, 5.964270e-03], [3.117801e-02,9.147067e-03, 9.994720e-01, -1.274584e-02], [0, 0, 0, 1]] ) T_vc1 = T_c0v.I * T_c0c1.I print("T_vc1:") print(T_vc1) T_ic0 = T_vi.I * T_c0v.I T_ic1 = T_vi.I * T_vc1 print("T_ic0 is") print(mat(T_ic0)) print("T_ic1 is") print(mat(T_ic1))
  • 最后结果IMU to Cam 外参结果:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
body_T_cam0: !!opencv-matrix rows: 4 cols: 4 dt: d data: [ 0.00875116, -0.00479609, 0.99995027, 1.10224312, -0.99986428, -0.01400249, 0.00868325, -0.31907194, 0.01396015, -0.99989044, -0.00491798, 0.74606588, 0., 0., 0., 1. ] body_T_cam1: !!opencv-matrix rows: 4 cols: 4 dt: d data: [-0.02218873, -0.01354233, 0.99989895, 1.1031531, -0.99989259, 0.00435299, -0.02270281, -0.85632959, 0.03227481, -1.00072563, 0.00467743, 0.76942567, 0., 0., 0., 1. ]
  • bag的相机内参(Kitti中未校正的):
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Cam00 %YAML:1.0 --- model_type: PINHOLE camera_name: camera image_width: 1242 image_height: 375 distortion_parameters: k1: -3.728755e-01 k2: 2.037299e-01 p1: 1.383707e-03 p2: -7.233722e-02 projection_parameters: fx: 9.842439e+02 fy: 9.808141e+02 cx: 6.900e+02 cy: 2.331966e+02 # Cam01 %YAML:1.0 --- model_type: PINHOLE camera_name: camera image_width: 1242 image_height: 375 distortion_parameters: k1: -3.644661e-01 k2: 1.790019e-01 p1: -6.298563e-04 p2: -5.314062e-02 projection_parameters: fx: 9.895267e+02 fy: 9.878386e+02 cx: 7.020e+02 cy: 2.45559e+02
  • Fusion自带的相机内参(Kitti中校正的):
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
%YAML:1.0 --- model_type: PINHOLE camera_name: camera image_width: 1241 image_height: 376 distortion_parameters: k1: 0 k2: 0 p1: 0 p2: 0 projection_parameters: fx: 7.188560e+02 fy: 7.188560e+02 cx: 6.071928e+02 cy: 1.852157e+02

3、最后跑vins结果:

双目,kitti_gps_test跑syn数据,VINS-Fusion自带参数(kitti中校正的rect):

在这里插入图片描述

单目+IMU,rosbag,bag的内外参:

  • 结果
    在这里插入图片描述

双目,rosbag,bag里的内外参数:

在这里插入图片描述

双目,rosbag,VINS-Fusion提供的内外参:

在这里插入图片描述

双目+IMU,rosbag,bag的内外参,飘的厉害,目前没找到原因(2020.6.17):

在这里插入图片描述

总结:目前bag跑kitti效果不是很好,按理说计算外参没有问题,另外一个可能原因是IMU数据与相机不是很同步

最后

以上就是温暖手链最近收集整理的关于KITTI里程计数据集 | 跑VINS-Fusion计算外参1、使用KITTI数据集跑VINS,数据集制作参考,本文使用的是2011_09_26_0056。使用双目 +IMU,及之后融合激光雷达2、计算外参py脚本。也可以直接用MATLAB、Sophus等3、最后跑vins结果:总结:目前bag跑kitti效果不是很好,按理说计算外参没有问题,另外一个可能原因是IMU数据与相机不是很同步的全部内容,更多相关KITTI里程计数据集内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(110)

评论列表共有 0 条评论

立即
投稿
返回
顶部