经典SLAM

本文介绍了SLAM技术的基本概念,探讨了机器人平台的选择及其测距单元的特性,详细讲解了SLAM过程中特征提取、数据关联及扩展卡尔曼滤波的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://mp.weixin.qq.com/s?__biz=MzA5NTIzMTUxMw==&mid=2650045213&idx=1&sn=fff37af7058932d061f1fb782422a91d&scene=1&srcid=0830nwsPHXrIVXp6mmnwWbM5&from=singlemessage&isappinstalled=0#wechat_redirect"

SLAM更像一个概念而不是一个算法

                                                  基于卡尔曼滤波的SLAM

SLAM通常包括以下几个部分: 特征提取  数据关联  状态估计  状态更新以及特征更新

                                                   机器人平台

机器人平台首先要能够移动,并且要包括一个测距单元,一般而言,机器人的定位精度不应该超过2%,转向精度不应该超过5%,一般而言,机器人可以在直角坐标系中根据自己的运动估计其自身的位置和转向

常见的测距单元包括:激光测距  图像测距  超声波测距  

激光测距精确,但是价格昂贵,不能用于水下,不能很好的解决穿过玻璃的问题

超声波测距,价格便宜,测量经度低,激光测距单位的发射角仅0.25°,基本上可以看做一条直线,而超声波的发射角达到了30°,测量经度差,但是超声波的穿透能力强,可以用在水下

视觉测距: 一般而言视觉测距用双目或者三目视觉方法进行测量,另外通过视觉可以获得相对于激光和超声波更多的信息,但是视觉容易受到光照的影响


                                               SLAM的一般过程

SLAM的通常包括几个过程,这些过程的最终目的是为了更新机器人的位置估计信息,由于通过机器人的运动估计得到的位置信息通常存在较大的误差,因此不能通过单纯的用运动估计机器人的位置信息,在使用机器人运动方程得到机器人的位置信息后,我们可以使用测距单元得到的周围的环境信息更正机器人的位置.上述的过程一般就是通过特征提起,然后在机器人运动后重新观测特征的位置实现的

当机器人运动时,其位置将会发生变化。此时,根据机器人位置传感器的观测,提取得到观测信息中的特征点,然后机器人通过EKF将目前观测到特征点的位置、机器人运动距离、机器人运动前观测到特征点的位置相互结合,对机器人当前位置和当前环境信息进行估计。


                                             机器人自身运动模型

SLAM的另外一个很重要的数据来源是机器人通过自身运动估计得到的自身位置信息。机器人自身位置数据通过对机器人轮胎运行圈数的估计可以得到机器人自身位置的一个估计,其可以被看作EKF的初始估计数据。

另外一个需要注意的是需要保证机器人自身位置数据与测距单元数据的同步性。为了保证其同步性,一般采用插值的方法对数据进行前处理。由于机器人的运动规律是连续的,因而,一般对机器人自身位置数据进行插值。相对而言,由于测距单元数据的不连续性,因而其插值基本上是不可以实现的


地标特征

可以看出,通常而言,对于不同的环境,一般我们选择不同的地标。


一般而言,地标需要满足下面的条件:

1. 地标应该可以从不同的位置和角度观察得到;

2. 地标应该是独一无二的,从而可以很容易的将底边从其他物体中分辨出来

3. 地标不应该过少,从而导致机器人需要花费额外的代价寻找地标;

4. 地标应该是静止的,因而,我们最好不要使用一个人作为地标


特征提取

特征提取的方法有很多种,其主要取决于需要提取特征以及测距单元的类型。

种典型的特征提取方法,Spike方法和RANSAC方法。

数据关联

数据关联是将不同时刻位置传感器提取到的地标信息进行关联的过程,也成为重观察过程。

在实际应用中进行数据关联时,我们可能遇到下面的问题:


1.我们可能上一次看到了某个地标,但下一次却没有看到;

2.我们可能这次看到了地标,但之后却再也看不到这个地标;

3.我们可能错误的将现在看到的某个地标与之前看到的某个地标进行关联;


根据我们选择路标时的标准,我们可以很容易的排除上面第1和第2个问题。但对于第三个问题,如果发生了,将会对我们的导航以及地图绘制造成严重的问题。


现在我们将讨论解决上面第三个问题的方法。假设我们现在已经到了每时每刻采集处理得到的路标的方位信息,并将其其中的特征存储在一数据库中。数据库初始阶段是空的,首先我们建立的第一条规则是,除非该特征已经出现了N次,否则我们并不将其加入数据库。当得到一副新的传感器信息后,我们进行下面的计算:

1.得到一副新的传感器信息后,首先利用上面的特征提取方法提取特征;

2.将提取到的特征与数据库中已经出现N次的并且距离最近的特征关联起来;

3.通过验证环节验证上面的关联过程是正确的,如果验证通过,则表明我们再次看到了某个物体,因而其出现次数+1,否则表明我们看到了一个新的特征,在数据库中新建一个特征,并将其记作1.


扩展卡尔曼滤波
在SLAM中,我们一般使用扩展卡尔曼滤波器基于机器人运动信息与传感器测量特征点信息估计机器人的状态。

在得到路标点的位置和方位,并且将路标点进行关联后,SLAM的过程分为如下三个部分:

1. 基于机器人运动信息更新机器人当前状态;

2. 基于路标信息更新估计状态;

3. 在当前状态中增加新的状态;







                                                                                            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值