下面的大部分概念来源于《自主移动机器人导论》这本书
信任度表示
机器人必须有一个在地图上有关它位置信任度的方法。机器人是否辨识一个单独的特定位置作为它的当前位置,或它是否根据一组可能的位置描述它的位置?如果以单个信任度完全表达多个可能位置,那如何将这多个位置排序?这就是信任度表示方法的设计问题
信任度
一般来说机器人并不能直接测量它的真实状态,只能根据传感器数据,最佳估计它的状态。所以机器人拥有的关于它状态的知识只能由数据推测。有关机器人状态的最好猜测,叫信任度
单假设信任度和多假设信任度
单假设信任度
单假设信任度表示是移动机器人位置最直接可能的假设。给定某个环境地图,机器人关于位置的信任度表示为地图上单个独特的点。主要优点来自以下事实,给定唯一的信任度,位置没有任意性。这个表示方法的非任意性本质加速了机器人在认知水平上(例如,路径规划)的决策。机器人可以简单地假定,它的信任度是正确的,然后可以根据它唯一的位置,选择其未来的动作。
机器人的位置更新一般分为两步
1、在预测(或动作)更新期间,机器人利用本体感受式传感器估计它的方位,例如,利用编码器机器人估计它的运动。在这阶段,量程器误差随时间积分,有关机器人方位的不确定性增加
2、在感知(或测量)更新期间,机器人利用外感式传感器的信息,校正预测阶段所估计的位置。例如,用一个测距仪测量它离墙的距离,并相应地校正在预测阶段所估计的位置。在感知阶段,机器人的方位不确定性缩小
基于概率地图定位的两种不同方法:马尔可夫定位和卡尔曼滤波器定位
为了解决机器人定位问题,需要以下信息:
1、初始概率分布 在不知道机器人初始位置的情况下,初始信任度对整个姿态是均匀分布的
2、环境地图
3、数据 为了定位,机器人显然需要使用来自它本体感受式传感器和外感受式传感器数据。一般来讲,我们用z表示从外感受式传感器来的当前读数,称为观测值。u表示从本体感受式传感器来的读数或控制输入,对差分驱动机器人,u表示来自左轮右轮编码器读数
4、概率运动模型 从机器人运动学推导而来,x_t = f(x_t-1,u_t) 当前位置由前一个位置和编码器读数组成的函数f计算出
5、概率测量模型 从外感受式传感器模型推导出来
定位问题分类
位置跟踪 机器人的当前位置是根据对它以前位置的知识而更新的
全局定位 全局定位假定机器人的初始位置是不知道的
绑架机器人问题 机器人被绑架,并且被移动到其他地方的情况,类似漂移
在说定位问题之前,搞清楚移动机器人中的先验和后验,先验是在考虑任何传感器测量之前,对全空间的机器人位置的概率分布,后验概率p(x|y) 是在纳入数据之后计算的
马尔可夫定位
马尔可夫定位利用一个任意概率密度函数表示机器人的位置,跟踪机器人的信任度状态。
PS:马尔可夫定位可以认为是贝叶斯在定位上的一个应用
在两种定位方法中,预测更新都是基于全概率定理,也就是这个
感知更新 基于贝叶斯定理,也就是这个
下面是关于公式对应机器人的解释:
在读取传感器数据A之后,我们想要知道机器人占有指定位置B的概率P(B|A)。如果机器人早先在那个位置上,我们只要将观察这些测量的条件概率P(A|B),乘上在读取传感器数据之前,机器人就在那里的概率P(B)。结果除以某个规格化因子P(A)。
重要的是,P(A)不依赖于B,P(A)_-1可以写成为规格化因子η
马尔可夫假设意味着它们的输出x_t只是机器人以前位置x_t-1和它的最近动作(量程仪,通常是里程计)u_t和感知z_t的函数。然而在一般情况下,非马尔可夫情况中,系统状态依赖于所有它的经历
卡尔曼滤波定位
对卡尔曼滤波来讲,状态概率密度函数和观测模型都是高斯分布。
前面所说到的马尔可夫定位在机器人位置方面可以表示任何概率密度函数,该方法是一般的,但是由于它的通用性所以效能很差。
现在,我们换个角度考虑一下,对机器人定位来讲,关键需求不是概率密度曲线的精确赋值,而是对鲁棒定位至关重要的传感器融合问题。机器人通常包含大量的异质的传感器,各提供关于机器人定位线索。关键是,各传感器都经受它自己的失误模式
下面图中,系统有一个控制信号和作为输入的系统误差源。测量装置能够测量带有误差的某些系统状态。
卡尔曼滤波器是基于系统的知识和测量装置,产生系统状态最优估计的一个数学机制,是对系统噪声,测量误差和动态模型不确定性的描述
其中,系统被假定为是线性并具有高斯白噪声。然而对于大多数移动机器人,系统并不是线性的。卡尔曼滤波扩展到非线性系统,称为扩展卡尔曼滤波
卡尔曼滤波器定位不使用任何密度函数,而是用高斯代表机器人信任度,运动模型和测量模型。
因为高斯简单地由它的均值和协方差来定义,在预测和测量(前面的马尔可夫定位也是这两个阶段)阶段这两个参数被更新。很显然,由此带来的问题就是卡尔曼滤波器定位这样的假设限制了初始信任度以及高斯的选择。这意味着,*必须以一定的近似知道机器人的初始位置