PART 05 · CHAPTER 25

状态估计:从有噪声的测量推断真实状态

一句话理解

状态估计把不完整、延迟且带噪声的传感器读数,与运动模型结合成机器人当前最可信的内部世界。

约 1,917 字约 5 分钟4 个来源3 幅教学图

为什么“读传感器”仍不等于“知道状态”

编码器读到关节位置,却不能直接给出关节速度;IMU 的角速度很快,但积分后会漂移;相机能提供相对位姿,却可能遮挡并带几十毫秒延迟;轮速计在地面打滑时会系统性出错。状态估计的任务是明确描述不确定性,并随新证据更新判断。

概率方法把状态写成条件分布 \(p(\mathbf x_k\mid\mathbf z_{1:k},\mathbf u_{1:k})\),意为在截至时刻 \(k\) 的全部测量和输入条件下,状态可能在哪里。贝叶斯滤波分两步。预测利用运动模型:

\[p(\mathbf x_k\mid\mathbf z_{1:k-1})= \int p(\mathbf x_k\mid\mathbf x_{k-1},\mathbf u_k) p(\mathbf x_{k-1}\mid\mathbf z_{1:k-1})d\mathbf x_{k-1}.\]

更新利用新测量:

\[p(\mathbf x_k\mid\mathbf z_{1:k})\propto p(\mathbf z_k\mid\mathbf x_k) p(\mathbf x_k\mid\mathbf z_{1:k-1}).\]

直觉上,预测把昨天的判断沿运动模型推到今天,同时增加不确定性;更新拿今天的测量重新收紧分布。符号 \(\propto\) 表示右边还要归一化,使总概率为 1。

卡尔曼滤波:高斯世界里的最优线性融合

在线性、高斯噪声假设下,系统写为

FIGURE 01贝叶斯滤波的预测与更新预测:模型 + 过程噪声更新:似然 × 先验每次运动扩大不确定性每条可靠观测重新收紧它。测量估计是一段持续积累证据的过程。
图 1 每次运动扩大不确定性,每条可靠观测重新收紧它。
\[\mathbf x_k=\mathbf A\mathbf x_{k-1}+\mathbf B\mathbf u_k+\mathbf w_k, \qquad \mathbf z_k=\mathbf H\mathbf x_k+\mathbf v_k,\]

其中 \(\mathbf w_k\sim\mathcal N(0,\mathbf Q)\) 是过程噪声,\(\mathbf v_k\sim\mathcal N(0,\mathbf R)\) 是测量噪声。滤波器用均值 \(\hat{\mathbf x}\) 和协方差 \(\mathbf P\) 表示估计。预测阶段为

\[\hat{\mathbf x}_{k|k-1}=\mathbf A\hat{\mathbf x}_{k-1|k-1}+\mathbf B\mathbf u_k,\]
\[\mathbf P_{k|k-1}=\mathbf A\mathbf P_{k-1|k-1}\mathbf A^T+\mathbf Q.\]

收到测量后,创新为 \(\mathbf y_k=\mathbf z_k-\mathbf H\hat{\mathbf x}_{k|k-1}\),卡尔曼增益为

\[\mathbf K_k=\mathbf P_{k|k-1}\mathbf H^T \bigl(\mathbf H\mathbf P_{k|k-1}\mathbf H^T+\mathbf R\bigr)^{-1}.\]

随后

\[\hat{\mathbf x}_{k|k}=\hat{\mathbf x}_{k|k-1}+\mathbf K_k\mathbf y_k.\]

\(\mathbf Q\) 越大,滤波器越不信运动模型;\(\mathbf R\) 越大,越不信传感器。它们代表噪声统计,随意把它们当作“平滑旋钮”会破坏一致性。调得过小会让滤波器过度自信,真实误差已经很大,协方差却很小,后续测量也拉不回来。

机器人系统是非线性的。扩展卡尔曼滤波(EKF)在当前估计附近用雅可比做局部线性化;无迹卡尔曼滤波(UKF)传播一组确定性采样点;粒子滤波用许多带权样本表达多峰分布。机器人可能位于两条外观相似的走廊时,多峰分布很自然,单一高斯会把两个可能位置“平均”到墙中间,粒子滤波更合适。

FIGURE 02卡尔曼增益的信任权衡测量卡尔曼增益的信任权衡输入处理噪声协方差表达证据可信度。
图 2 卡尔曼增益由双方不确定性共同决定。

滤波只使用当前及过去测量,适合在线控制;平滑还使用未来测量重新估计历史状态,离线精度通常更高。固定延迟平滑保留最近一段时间窗口,在可控延迟下利用晚到测量。因子图把运动、传感器和先验写成连接状态变量的因子,通过最大后验优化求一段最一致的轨迹;视觉惯性里程计和 SLAM 经常采用这种形式。选择时要明确允许多大延迟、历史窗口多长和何时边缘化旧状态。

可观测性与偏置

有滤波器并不保证状态能被估出来。可观测性问:从一段输入和输出,能否区分不同初始状态。静止的 IMU 无法仅靠自身区分某些姿态与加速度组合;单目相机在没有已知尺度时无法直接恢复绝对尺度;轮式机器人长直线运动可能难以校准部分外参。

传感器偏置尤其危险。陀螺仪测量可写为

\[\boldsymbol\omega_m=\boldsymbol\omega+\mathbf b_g+\mathbf n_g,\]

\(\mathbf b_g\) 是缓慢变化的偏置,\(\mathbf n_g\) 是快速噪声。若把偏置当成零均值噪声,积分误差会持续积累。常见做法是把偏置也纳入状态向量,让视觉、重力方向或静止约束逐步校正它。

FIGURE 03时间延迟造成的空间误差测量估计时间延迟造成的空间误差机械自动化阶段 5融合首先要统一时钟和时间戳。
图 3 时间错位会被误看成空间标定误差。

时间戳、延迟与离群值

融合算法的输入必须在同一时间基准上。相机图像在 \(t\) 时刻曝光,神经网络在 \(t+80\text{ ms}\) 才输出结果;若估计器把结果当成当前测量,快速运动时会产生明显位置偏差。解决方式包括硬件同步、时间戳校准、状态缓冲和延迟更新。

离群测量也不能被高斯模型无条件接受。常用创新马氏距离

\[d^2=\mathbf y^T\mathbf S^{-1}\mathbf y, \quad \mathbf S=\mathbf H\mathbf P\mathbf H^T+\mathbf R\]

判断测量与当前估计是否相容。\(d^2\) 太大时可拒绝、降权或进入重新定位流程。连续拒绝同一传感器也可能说明模型错了,系统应上报健康状态,不能悄悄长期忽略。

工程例子:轮速计与 IMU 融合后仍然漂移

差速底盘使用左右轮编码器估算里程,IMU 提供角速度。短时间内融合能让转向更平稳;在光滑地面急加速时,轮子打滑,轮速计高估位移;IMU 又无法直接提供稳定的平面绝对位置,所以系统仍会漂移。增加相机或激光定位可以提供外部位置约束。

若融合后转弯总有固定偏差,应检查轮径、轮距、IMU 零偏和坐标轴;若偏差只在急转时出现,应检查打滑、饱和和时间同步;若估计突然跳变,应检查重定位离群值。把所有问题归因于“滤波参数没调好”会掩盖传感器和标定故障。

深入阅读