《自动驾驶与机器人中的SLAM技术》之三维空间点云直线拟合


高博的新作《自动驾驶与机器人中的SLAM技术》中提出了一个点云直线拟合的问题,其中的直线方程以及最小二乘目标函数的引出有点突兀(P185-186),这里记录一下理解过程。

1 三维空间中的直线表达方式

(1)平面相交线

对于三维空间中的直线,可以通过两个平面的交线来表达,即:
{ A 1 x + B 1 y + C 1 z + D 1 = 0 A 2 x + B 2 y + C 2 z + D 2 = 0 \begin{cases} A_1x+B_1y+C_1z+D_1=0\\ A_2x+B_2y+C_2z+D_2=0\\ \end{cases} {A1x+B1y+C1z+D1=0A2x+B2y+C2z+D2=0
由上式可知,这种表达方式需要确定两个平面的参数,共计8个,显然不是一个较好的表达方式。

(2)矢量+已知点

根据直线的对称方程有:
x − x 0 m = y − y 0 n = z − z 0 p = t \frac{x-x_0}{m}=\frac{y-y_0}{n}=\frac{z-z_0}{p}=t mxx0=nyy0=pzz0=t
式中, t t t是固定比值,通过移项有:
{ x = x 0 + m t y = y 0 + n t z = z 0 + p t \begin{cases} x=x_0+mt\\ y=y_0+nt\\ z=z_0+pt \end{cases} x=x0+mty=y0+ntz=z0+pt
P ( x 0 , y 0 , z 0 ) P(x_0,y_0,z_0) P(x0,y0,z0)表示直线上已知点, d ( m , n , p ) d(m,n,p) d(m,n,p)表示直线的单位方向向量, x ˉ ( x , y , z ) \bar{x} (x,y,z) xˉ(x,y,z)表示直线上的任意一点,则直线的方程可简化为:
x ˉ = d t + P \bar{x} =dt+P xˉ=dt+P

2 三维空间中点到直线的最小二乘目标函数

在这里插入图片描述
如上图所示,对于空间中的任意一点 x ˉ k ( x , y , z ) \bar{x}_k(x,y,z) xˉk(x,y,z),设C直线上已知点 P P P到该点的向量,则 C C C与直线的方向向量的点乘表示该向量的模长在直线上的投影(对应途中的 b b b),根据勾股定理得任意空间点 x ˉ k ( x , y , z ) \bar{x}_k(x,y,z) xˉk(x,y,z)到直线的距离平方为 ( x ˉ k − P ) 2 − ( ( x ˉ k − P ) d ) 2 (\bar{x}_k-P)^2-((\bar{x}_k-P)d)^2 (xˉkP)2((xˉkP)d)2,这刚好构成了空间点到空间直线的距离残差平方项,将所有空间点的残差平方项累加便得到了求解空间直线参数的最小二乘目标函数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值