跳到主内容
快讯直播
AI智模界
AI 词典

卡尔曼滤波:机器人定位里的预测与校正

卡尔曼滤波(Kalman Filter, KF)是一种在线递归算法:在带噪声的线性高斯系统(linear Gaussian system)里,用“预测—更新”两步循环,把运动模型和传感器测量融合成对状态的最优估计。

想象你在高速上开车,想知道自己精确位置。车速表告诉你大概走了多远,但有误差;GPS 每隔几秒给一个点,也有噪声。你不会只信任何一个,而是先按车速推算当前位置,这就是预测(predict);再拿到 GPS 后,根据“车速推算有多准”和“GPS 有多准”折中修正,这就是更新(update)。卡尔曼滤波做的就是这件事,并且每一步都带着不确定性。

它把状态(比如位置、速度)和不确定性都表示成高斯分布:均值是估计值,协方差(covariance)是“有多不确定”。预测步用运动模型往前推,协方差通常会变大,因为越推越不确定。更新步拿到测量后,计算卡尔曼增益(Kalman gain),像调权重:测量噪声大,就多信预测;预测很虚,就多信测量。修正后协方差变小,估计更稳。然后进入下一轮。

“最优”有前提:系统近似线性,噪声近似高斯。满足时,卡尔曼滤波在最小均方误差意义下是最优的;不满足时,它仍常是最佳线性估计。它还是递归的:不用保存全部历史,只留上一刻的估计和协方差,所以适合实时跑。

和相邻概念的区别可以看表:

方法核心思路适合场景局限
卡尔曼滤波递归预测-更新,融合模型与测量线性高斯、实时状态估计非线性非高斯需扩展
滑动平均(moving average)/低通滤波(low-pass filter)对测量做平滑去抖动、简单滤波不建模运动,有滞后
扩展卡尔曼滤波(EKF)/无迹卡尔曼滤波(UKF)对非线性做线性化或采样非线性但近似高斯调参、可能局部最优
粒子滤波(particle filter)用大量粒子表示概率分布强非线性、多峰计算量大

对从业者,机器人定位(robot localization)里几乎无处不在:轮式里程计、惯性测量单元(IMU)、激光雷达、摄像头的数据融合,常靠卡尔曼滤波或其变体。自动驾驶的目标跟踪、无人机姿态估计也类似。对普通人,手机导航、扫地机器人、游戏手柄稳定,背后都有它的影子。遇到状态估计问题,先问“是否近似线性高斯”;是,卡尔曼滤波就是可靠基线;不是,再考虑扩展卡尔曼滤波(EKF)、无迹卡尔曼滤波(UKF)或粒子滤波(particle filter)。模型和噪声参数怎么定,往往比公式本身更影响效果。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。