在做gmapping当中,有考虑里程计的信息,因此学习了一下里程计相关的运行模型,尤其是概率运动模型。
相关资料参考自网址:https://www.mrpt.org/tutorials/programming/odometry-and-motion-models/probabilistic_motion_models/
一、简介
粒子滤波器中,每一个时间步骤都会使用提议分布进行采样,采用概率与运动模型是提议分布的一种常用方法。
(我的理解是,重采样的粒子分布情况,依据里程计给出的位置,予以一定的修正进行采样)。
二、高斯概率运动模型
现在假设,机器人在2D平面上运动,里程计是增量形式反馈数据,那么里程计每一次增量值如下形式:
(非原创图)
这三个变量在坐标图中显示为:
设机器人之前的pose是,现在的地址是
,那么增量公式为:
(这里,我自己一直是使用增量之后的角度,进行正弦余弦计算的,似乎有误差!!!)
那么现在,就是在增量的基础上进行新位置的高斯分布采样,假设前一个坐标是确定的,假设为(0 0 0),则新的坐标为:
这个公式说明,采用前一个坐标的位置和里程计增量计算出高斯的期望值坐标,而协方差需要评估一下三个里程计增量的方差值,我们假设三个值相互独立,高斯值 由非完美的里程计采样和潜在的漂移影响。
我们指定为由里程计三个变量的协方差矩阵(没看明白),
建模:
默认参数为:
里程计增量C后的新坐标的协方差由该公式计算为:
J代表Jacobian of H。
三、Thrun, Fox & Burgard's book particle motion model
上面的里程计读数为,假设上一个点的坐标是(0 0 0),这意味着我们只需要对增量进行采样,不用对最终坐标采样,新的机器人坐标可以这样进行采样:
如图所示:
这里三个变量,
,
,是增加了一个零期望的高斯噪声给实际的码盘读数:
然后标准差(?)是采用下列公式进行近似计算:
四、其他分析
常见的机器人运动模型包括:速度计运动模型,里程计运动模型和惯导运动模型。概率运动模型是对机器人运动的一种概率描述。
里程计是比较常见的一种类型,里程计是一种传感器测量信息,而不是控制信息。将里程计视为测量信息,贝叶斯滤波需要包含速度作为状态变量,将增加状态空间的维度,因此,为了减少状态空间,通常将里程计数据视为控
那么定义:t-1时刻的位置xt−1=(x,y,θ)T,t时刻位姿态xt=(x′,y′,θ′)Txt=(x′,y′,θ′)T,运动控制信息ut,概率运动模型为P{xt|ut,xt−1}
其中,运动控制信息。。。
见http://www.cnblogs.com/yhlx125/p/5677135.html