您的位置:首页 > 其它

【hector slam】IV. 2D SLAM(A.Map Access 双线性线性插补)

2016-05-27 00:32 477 查看

IV. 2D SLAM

A. Map Access

It should be noted that the sample points/grid cells of the map are

situated on a regular grid with distance 1 (in map coordinates) from

each other, which simplifies the presented equations for the gradient

approximation.——A Flexible and Scalable SLAM System with Full 3D

Motion Estimation

论文中提到采样点位于距离1的规则格网之中(地图坐标),他们是相互分离的,是离散分布的。那么这些采样点之间的点的值我们要如何得到呢?

论文中使用的方法是双线性线性插值

要解释双线性线性插补,先要解释线性插值:

1.线性插值

已知点A的坐标 (x0, y0) 与点B的坐标 (x1, y1),现在要得到 [x0, x1] 区间内一点C的值,C的横坐标为 x。

那么我们就有:

y−y0x−x0=y1−y0x1−x0

y=(x−x0)(y1−y0)x1−x0+y0

由于 x 值已知,所以可以从公式得到 y 的值



这是C点在A,B线上的情况。但如果C不在A,B线上我们就需要使用双线性插值。就比如论文中提到的。



fig.2 a

Given a continuous map coordinate Pm, the occupancy value M(Pm) as well

as the gradient ∇M(Pm) = ∂M/∂x (Pm), ∂M/∂y (Pm)can be approximated

by using the four closest integer coordinates P00..11 as depicted in

Fig. 2(a). Linear interpolation along the x- and y-axis then yields

这里说想得到M(Pm)的值以及他的偏导∇M(Pm) = ∂M/∂x (Pm), ∂M/∂y (Pm)

2.双线性插值

双线性插值,就是两个方向的线性插值加起来。我们刚才已经了解了线性插值,把他分别在x轴和y轴都做一遍,就是双线性插值了。

论文想得到未知函数M在点 Pm 的值,我们已知函数M在P00,P01,P10和P11四个点的值。

首先在 x 方向进行线性插值(插I1和I0):

我们先以I0为例。因为是只在x方向的插值,所以我们只有一个输入就是横坐标,同时只有一个输出就是M(I0)。 那么就有:

M(I0)−M(P00)x−x0=M(P10)−M(P00)x1−x0

M(I0)=M(P10)−M(P00)(x−x0)x1−x0+M(P00)

=x−x0x1−x0M(P10)+x1−xx1−x0M(P00)

类似的

M(I1)=M(P11)−M(P01)(x−x0)x1−x0+M(P01)

=x−x0x1−x0M(P11)+x1−xx1−x0M(P01)

再在 y 方向进行线性插值(插Pm):

M(Pm)=M(I1)−M(I0)(y−y0)y1−y0+M(I0)

=y−y0y1−y0M(I1)+y1−yy1−y0M(I0)

然后把M(I0)和M(I1)带进去就有:



再求偏导



论文就是以此来求的这些离散点的值以及他们的偏导的。这里就完成了前面说的前端的线上采集并预处理的过程。后面就要做优化以及建图了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: