到目前为止,我们已经介绍了不少的滤波算法了,接下来将要介绍状态方程(运动模型)和测量方程(预测模型)了,首先介绍运动模型吧!

在传统的机器人学当中,运动都是被以确定的形式来进行处理的,但是在概率机器人当中,由于控制噪声或者由于未建模的外源性影响,控制系统输出是不确定的(其实在控制理论当中一般都是给出一个范围)。因此在概率机器人当中,控制结果被作为一个后验概率来描述。从理论上来说,合适的概率模型目标,可能就是机器人驱动和感知过程中存在的特定不确定性和类型建立的精确模型!

本章将要介绍在平面上移动的移动机器人的两种基本概率运动模型。一个是通过平移速度和角速度来表示在固定是时间间隔 上执行的控制 。在实现该模型的时候,平移速度和角速度都是带有噪声的(可以理解为极坐标表示),但是仅凭这两个带有噪声的参数还不是完全有效的概率模型,因为机器人还有一个旋转,就是偏离航向的描述,也就是在极坐标并不能完全描述清楚机器人的位姿。因此实际还需要加入第三个带噪声的参数,旋转。所以这种概率模型是考虑了三种带有噪声的参数:角速度,平移速度和姿态旋转。

第二个模型是基于里程计的运动模型。它将机器人的里程计作为输入,里程计的测量由三个参数表达:一个初始旋转,然后一个平移和一个最终的旋转。在概率机器人当中,假定这三个参数都受到噪声的影响。

通常而言,基于里程计的模型比速度模型精度更高,因为绝大多数机器人通过计算轮子运动所得出的距离是具有一定误差的,而这个误差一般都比直接测量运动距离所产生的误差大。

速度运动模型

速度运动模型是基于控制旋转和平移速度来控制机器人。这里用 vt 表示t时刻的平移速度,用 ωt 表示旋转速度。因此控制:

规定,逆时针旋转(向左旋转), ωt 为正, vt 向前运动为正。

接下来介绍速度运动模型的采样算法。对于粒子滤波而言,它足够从运动模型p(xt|xt-1,ut)采样,而不是计算具体的分布。算法如下:

同样的,这个相对量也可以被分为三个部分,平移量 δtrans ,整体的旋转量 δrot1 和位姿旋转量 δrot2

同时与之相对应的,也有采样算法。当用粒子滤波用于定位的时候,就会用到这样的采样算法。采样算法将初始姿态 xt-1 和里程计读数 ut 作为输入,输出一个服从p(xt|xt-1,ut)随机的 xt 

考虑地图的运动模型

以上运动我们都没有考虑地图,但是很多情况下都是在给定地图的情况下进行的,这样机器人能够获取的信息也就更多,同时约束也增加了。在考虑地图之后,用p(xt|xt-1,ut,m)来表示一个机器人的运动模型,这里m指地图。如果地图携带了关于位姿估计的信号,那么:

理论上而言,当地图携带有关于位姿的信息的情况下,考虑地图的运动模型应该比没有考虑地图的模型具有更高的准确率。基于地图的运动模型计算指的是:被放置在地图m所表示环境里的机器人在位姿 xt-1 处执行了动作 ut 到达位姿 xt 的可能性。但是比较幸运的是,如果运动距离比较小,可以得到一种近似的模型:

p(xt) 通常也是均匀分的,所以也将其纳入到归一化因子当中去。这个推导比较简单,具体如下:

这里假设 xt 是已经包含了之前所有信息的,那么可以用 p(m|xt)去近似 p(m|xt,ut,xt-1),这样就可以得到:

这里注意到p(m)是一个常量,所以可以把它放进归一化因子里面,这样就可以得到:

这里给出基于地图的运动模型算法:

再给出采样的运动模型算法:

采样算法都是基于之前的运动模型的,这里采样算法返回的是一个加权样本。