前面我们提到了特征提取的两种不同的方法,Spike方法和RANSAC方法,两者均可以用于室内环境中特征的提出。相比较而言,Spike方法较为简单,并且对室内环境中的活动物体不具有鲁棒性。RANSAC方法通过提取直线的方法提取环境中的特征,相对较为复杂,但对室内活动的物体具有更好的适应性。
数据关联是将不同时刻位置传感器提取到的地标信息进行关联的过程,也成为重观察过程。
举例来说,对于我们人类来说,假设我们在一个房间内看到了一把椅子,现在我们离开房间,过一段时间后,再次回到房间,如果我们再次看到了椅子,那么我们可以认为这把椅子很有可能就是我们之前看到的椅子。但是,如果我们假设房价内有两把完全一样的椅子,重复上述过程,当我们再次来到房间后,我们可能无法区分我们看到的两把椅子。但我们可以猜测,此时比如说左边的椅子仍然是之前看到的左边的椅子,而右边的椅子仍然是之前看到的右边的椅子。
在实际应用中进行数据关联时,我们可能遇到下面的问题:
1. 我们可能上一次看到了某个地标,但下一次却没有看到;
2.我们可能这次看到了地标,但之后却再也看不到这个地标;
3.我们可能错误的将现在看到的某个地标与之前看到的某个地标进行关联;
根据我们选择路标时的标准,我们可以很容易的排除上面第1和第2个问题。但对于第三个问题,如果发生了,将会对我们的导航以及地图绘制造成严重的问题。
现在我们将讨论解决上面第三个问题的方法。假设我们现在已经到了每时每刻采集处理得到的路标的方位信息,并将其其中的特征存储在一数据库中。数据库初始阶段是空的,首先我们建立的第一条规则是,除非该特征已经出现了N次,否则我们并不将其加入数据库。当得到一副新的传感器信息后,我们进行下面的计算:
1.得到一副新的传感器信息后,首先利用上面的特征提取方法提取特征;
2.将提取到的特征与数据库中已经出现N次的并且距离最近的特征关联起来;
3.通过验证环节验证上面的关联过程是正确的,如果验证通过,则表明我们再次看到了某个物体,因而其出现次数+1,否则表明我们看到了一个新的特征,在数据库中新建一个特征,并将其记作1.
上述特征关联方法被称作距离最近方法。上面最简单的计算距离的方法是欧式距离的计算,其他距离计算包括马氏距离等,虽然效果更好,但计算结果更为复杂。
验证环节通过利用EKF执行过程中,观测误差的有界性进行判断。因而,我们可以通过判断一个路标是否在现存路标的误差允许范围内来判断其是否为新的路标。路标区域可以通过图形绘制或者定义一个椭圆误差。