首页 > 编程知识 正文

slam算法详解,slam算法和计算机视觉

时间:2023-05-04 02:56:23 阅读:44518 作者:1397

simultaneouslocalizationandmapping (slam )的处理方法主要分为滤波和图表优化两种。

基于过滤器的SLAM

其中,黑色的是预测(经验),红色的是观测

图例观测预测(经验)概率图1 )未观测到特征的初始经验各无位置等概率图2 )观测到特征的经验更新三扇门位置的概率更高)图3 )未观测到新特征的经验随运动模型概率平移,且

其中,z是观测,x是状态,u是运动模型。

一般算法的优点缺点扩展卡尔曼滤波器(EKF )简单易用的特征越多,计算量就越大,将单点RANSAC算法应用于EKF可以提高外点的去除速度,提高SLAM系统的鲁棒性粒子滤波器(PF )表示非不适用于Rao-Blackwellized粒子过滤器(RBPF )的构建,在集成了PF和EKF的基于图形的slam中,机器人的姿势是节点或顶点(vetex ),姿势之间的关系是边),构成一旦构成图,必须调整机器人的姿势,尽量满足这些边构成限制。

图优化SLAM可以分解为两个任务。

1 .构造图,以机器人姿态为顶点,姿态关系为边,称为前端

2 .优化图,调整机器人姿态顶点,尽量满足边的约束。 被称为后端

为了更形象地表现出来,我举两个例子说明这个问题。 其中,在第二个例子之后引入可靠度信息,可以得到更准确的结果。

实施例1基于闭环检测,如下图所示,假设机器人的初始起点为0,测量机器人向前移动,通过编码器向前移动1m,到达第二个地点。 然后又回到后面,编码器测量到它向后移动了0.8米。 但是,通过闭环检测发现它回到了原来的起点。

首先构建姿势之间的关系,也就是图的边缘。

由于线性方程中的变量小于方程的个数,为了计算最优结果,首先提出杀手锏构造最小二乘法残差平方和函数:

为了使残差平方和最小,我们对以上函数的各个变量求出偏导数,使偏导数为0。

整理后得到:

然后用矩阵求解线性方程:

调整后,为了满足这些边的条件,机器人的姿势如下

示例假设根据LandMark的下图,观测到机器人的初始起点位于0,在其前面2m处有路标。 然后机器人向前移动,用编码器测量它向前移动了1m,那时路标在其前方0.8m处被观测到。

在这张图中,路标也被认为是一个顶点。 构建边的关系如下。

变换

残差平方和:

寻求偏导:

最后整理计算了一下:

得到路标和机器人的姿势:

我们知道传感器的精度有差异。 也就是说,我们对置信度传感器的信任度应该不同。 例如,假设编码器信息正确,并且路标的距离不正确,则应当向编码器信息提供更高的权重,假设10。 重新计算残差平方和,结果如下:

寻求偏导:

转换为矩阵:

最后计算了:

将该结果与以前进行比较,可以看到这里的机器人的姿势x1接近编码器测量的结果。

基于滤波器和地图优化算法的简单比较滤波方法是基于显性渐进误差估计的串联运算,难以消除误差累积; 另一方面,图表优化方法基于不同时间度量的集合估计,寻找参与计算的各方面均衡全局最优值,误差累积增长比较慢。

详细的比较请参照以下内容。

Strasdat. 《Visual SLAM: Why Filter?》

参考链接:

3359 he yijia.blog.csdn.net/article/details/47686523

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。