【hector slam】IV. 2D SLAM(A.Map Access 双线性线性插补)
2016-05-27 00:32
477 查看
IV. 2D SLAM
A. Map AccessIt 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)带进去就有:
再求偏导
论文就是以此来求的这些离散点的值以及他们的偏导的。这里就完成了前面说的前端的线上采集并预处理的过程。后面就要做优化以及建图了。
相关文章推荐
- 最快最简单的排序——————“桶排序”
- Runtime运行时用法1------获取类属性列表
- 51nod1693 水群
- Struts2-包的继承、result属性、全局及动态结果配置
- ServiceManager启动流程
- hdu 1061 Rightmost Digit
- foj 2044 1 M possible 二进制压缩
- python-文件操作
- LeetCode 125. Valid Palindrome(校验对称)
- LeetCode 124. Binary Tree Maximum Path Sum(二叉树最大路径和)
- attr()原格式输出文本
- LeetCode 129. Sum Root to Leaf Numbers(节点求和)
- LeetCode 128. Longest Consecutive Sequence(最长连续序列)
- LeetCode 127. Word Ladder(单词梯子)
- LeetCode 126. Word Ladder II(单词梯子)
- 理清JavaScript正则表达式--上篇
- Java源代码书写其中常见的排序
- liunx――计算机原理
- macOS下很方便得包管理器
- LeetCode 131. Palindrome Partitioning(回文分区)