相机标定
针对第一章相机标定中的公式的推导详见我的另一篇博客:相机标定
Kalman Filter
推导详见博客:卡尔曼滤波核心公式推导
圆柱包围盒碰撞检测:
空间中直线间的距离
考虑空间中,AB 和 CD 是两条异面直线,A、B、C、D四个点的坐标分为 (XA,YA,ZA)(XB,YB,ZB)(XC,YC,ZC)(XD,YD,ZD)。记 AB 的方向向量为 S1 ,CD 的方向向量为 S2
则
S1=(XB−XA,YB−YA,ZB−ZA)
S2=(XD−XC,YD−YC,ZD−ZC)
记
S3=S1×S2=(=(M,N,P)(YB−YA)⋅(ZD−ZC)−(ZB−ZA)⋅(YD−YC),(ZB−ZA)⋅(XD−XC)−(XB−XA)⋅(ZD−ZC),(XB−XA)⋅(YD−YC)−(YB−YA)⋅(XD−XC))
由平面的点法式方程(点 A 和方向向量 S3)可得一个过直线 AB 且平行CD的平面 π。
π的方程为:M(x−XA)+N(y−YB)+P(z−ZB)=0,将其化为一般形式 Mx+Ny+Pz+Q=0 可得,
Q=−[M,N,P]⋅XAYAZA
于是π的方程写成矩阵形式:
[M,N,P]⋅x−XAy−YAz−ZA=0
则点 C(XC,YC,ZC) 或点 D(XD,YD,ZD)到 π 的距离即为异面直线 AB 和 CD 间的距离
d=M2+N2+P2∣MXC+NYC+PZC+Q∣=∣S1×S2∣(S1×S2)⋅(AC)=∣S1×S2∣[S1,S2,AC]
将具体坐标带入上式即得论文中公式(4-5)
两个线段共面时候的距离
平面上两条线段之间的最短距离定义:
两线段 AB 和 CD 用其端点 (A,B),(C,D) 表示
AB, CD 上距离最近的两点之间的距离d(A,B),分为三种情况讨论。
-
若两线段有交点,距离d为0
-
计算点A和点B到CD线段所在直线的距离,记为l1和l2 ;计算点C和点D到AB线段所在直线的距离,记为l3和l4。
d(A,l2), d(B,l2), d(C,l3),d(D,l4)
选择距离最小,且垂足落在对方线段内的,作为 d(A,B)
-
若四个垂足都落在对方线段外,计算四个端点两两之间的距离,取最小值作为 d(A,B)