这篇文章介绍了一种2D激光雷达与相机的标定方法。

标定板相对于相机的位姿可以由对应的标定库获得,如ArUco、Apriltag。。。
激光雷达打在标定板上点可以由直线检测获得。
下面介绍算法的流程:
首先,定义向量N,它平行于标定板平面的法向量,长度为标定板平面到相机的垂直距离。标定板相对与相机的位姿T可以表示为:T=[R0t1]
则N可以表示为:
N=−r3∗(r3T⋅t)
其中,r3为R的第三列。这个过程我的理解是首先是将t转换到标定板坐标系,为⎣⎡−r1⋅t−r2⋅t−r3⋅t⎦⎤,取其在Z轴的投影⎣⎡00−r3⋅t⎦⎤再将其转换到相机坐标系下。
之后,对激光点在激光雷达坐标系下的坐标Pf和相机坐标系下的坐标P有:Pf=ΦP+Δ,又根据向量内积性质有:N⋅P=∥N∥2,综合有:
N⋅Φ−1(Pf−Δ)=∥N∥2
对于上式文章中给出了两种解法:
线性解法:
将上式转化为:
N⋅HP^f=∥N∥2
其中,H=Φ−1⎣⎡100001−Δ⎦⎤,P^f=[X,Z,1]T
在求解H后,可以通过下式求解Φ、Δ
Φ=[H−1,−H1×H2,H2]T
Δ=−[H1,−H1×H2,H2]TH3
非线性解法:
目标方程如下:
i∑j∑(∥Ni∥Ni⋅(Φ−1(Pijf−Δ))−∥Ni∥)2
参考:https://github.com/MegviiRobot/CamLaserCalibraTool