状态估计
“机器人不能直接感知自己的完整状态——它只能感知部分观测,然后从噪声数据中推断真实状态在哪里。”
具身智能体在物理流形 上运动,但传感器返回的是带噪声的局部观测 ,而非完整状态 。状态估计是 Spine 层的核心计算之一:在 1kHz 控制频率下,持续从噪声观测中重建系统在 上的最优状态估计 ,为 CBF 安全监控、STL 约束验证和动力学控制提供统一的状态输入。
📐 理论定位
线性卡尔曼滤波(Kalman 1960)在高斯噪声与线性系统下给出最优无偏估计;EKF(Extended Kalman Filter) 通过对非线性函数的一阶线性化处理,将这一框架推广到机器人系统的非线性动力学——机械臂 DAE、接触动力学、SE(3) 位姿更新均属此类。EKF 自 1960 年代起在航空航天(阿波罗导航计算机)和机器人领域大量应用,是工业成熟的工程工具(△ 推广自 Kalman 1960)。
EICPS 的工程贡献在于:将 EKF 置于 1kHz Spine 层,以 ZOH(零阶保持) 填补 1Hz Brain 指令之间的频率鸿沟,并集成 PINN 物理先验 补偿动力学不确定性,形成可闭环运行的跨频状态估计架构。
状态估计问题
机器人系统的状态空间模型由两个方程描述:
其中 为过程噪声, 为观测噪声, 为非线性动力学(机械臂惯性方程、接触模型), 为非线性观测模型(正向运动学、IMU 模型)。
状态向量 在 Prj167 中包含:关节角 、关节速度 、末端位姿 、接触力估计 。完整状态维度通常在 20–60 之间。
不可缺少的理由:Brain 层(1Hz)发出语义指令时,Spine 层(1kHz)无法”停下来等”——在两条 Brain 指令之间的约 1000 个控制周期内,系统持续运动,CBF 安全监控需要每毫秒知道机器人的精确状态。状态估计正是填补这一空白的计算引擎。
EKF 算法:预测–更新循环
EKF 将非线性函数 、 在当前估计点处做一阶泰勒展开(Jacobian 线性化),然后在线性化模型上运行标准卡尔曼滤波。
预测步(Predict)——利用动力学模型向前传播:
其中 为系统方程的 Jacobian, 为误差协方差矩阵。
更新步(Update)——利用传感器观测修正预测:
其中 为观测方程的 Jacobian, 为卡尔曼增益——它自动在模型预测与传感器观测之间分配信任权重: 大(模型不确定)则更信传感器, 大(传感器噪声高)则更信模型。
SE(3) 上的位姿更新:机械臂末端位姿 不是欧氏向量,不能直接做加减法。EKF 在李代数 上计算增量,再通过指数映射回 :
强行在欧氏空间对旋转矩阵做加减会破坏正交性,产生”非物理位姿”——这是 是真正黎曼流形而非 的工程后果。
跨频状态重建:ZOH 与异步融合
Brain 层(~1Hz)和 Spine 层(~1kHz)之间存在 1000:1 的频率鸿沟。Spine 层通过两种机制处理:
零阶保持(ZOH):当 Brain 无新指令时,Spine 保持最后一次收到的参考轨迹继续执行,不等待。同时 EKF 以 1kHz 继续更新 ,确保安全监控不断链。
异步传感器融合:各传感器的采样频率不同——编码器通常 1kHz,IMU 500Hz,力觉传感器 200Hz,视觉 30Hz。EKF 采用时间戳驱动更新:哪个传感器数据到达,就用哪个传感器的 和 执行更新步,其余时刻只做预测步。这保证每个传感器的时序信息都被充分利用,而不是对齐到最低采样率。
融合结果经接口 A 压缩上报 Brain:Brain 侧看到的是结构化状态摘要(位姿、速度、力矩裕量、安全余量),而非原始 1kHz 高频信号。
PINN 物理先验
EKF 的预测步依赖动力学模型 。精确建模机器人动力学(质量矩阵、摩擦系数、接触刚度)需要大量标定工作,且参数会随磨损、温度、负载变化漂移。
**PINN(Physics-Informed Neural Network)**作为动力学先验:用神经网络 近似系统动力学,但在损失函数中嵌入物理约束(能量守恒、牛顿定律、接触互补条件),确保网络输出在物理上一致。
优势:在训练数据稀少的操作边界(大负载、极端姿态)处,物理约束项提供正则化,防止网络在未见工况下外推失效——正是 Prj167 防振锤更换这类极端工况所需要的。
Prj167 中的状态估计
500kV 架空输电线路运检场景带来两类特殊挑战:
动态负载变化:防振锤更换过程中,机械臂末端负载在 0–15kg 之间大幅变化。质量矩阵 随之改变,导致 的 Jacobian 在每个控制周期都不同。EKF 需要实时更新 ;PINN 先验通过在线微调(few-shot adaptation)补偿参数漂移,使估计误差保持在 5mm / 0.5° 以内。
强电磁干扰(EMI):500kV 高压线产生的强电磁场影响编码器和 IMU 读数,表现为高频拖尾(噪声方差 突增)。Spine 层通过 Weyl 定律检验(见下节)实时监控信噪比;一旦检出异常,自动调高受影响传感器的 (降低卡尔曼增益),转而增大力觉传感器的贡献。这一自适应权重策略在强干扰区域仍可维持稳定的状态估计。
电气安全裕量估计:EKF 估计的末端位姿 直接输入 CBF 计算 。位姿估计误差 与安全裕量的关系:Spine 层在 CBF 约束中加入 保守裕量,确保即使估计有误差,实际距离也满足 。
传感器健康诊断:Weyl 定律检验
状态估计质量的上限由传感器信噪比决定。Spine 层通过Weyl 定律一致性检验持续监控传感器健康,无需额外传感器:
光滑流形上的谱系数服从幂律衰减(Weyl 定律):
高频拖尾诊断:若高频段出现能量”平台”而非预期的指数衰减,即为加性白噪声信号——其功率谱密度在全频带均匀注入(),使高频斜率 接近零。
传感器盲区诊断:Prj167 中导线可能遮挡摄像头视野,等效于在流形上”挖洞”(Dirichlet 零边界条件),导致 TDA 将盲区识别为”伪环路”( 虚假增加)。区分盲区与真实障碍的依据是持久性——盲区产生的拓扑特征随视角移动剧烈变化,真实障碍物的特征是稳定的。
诊断算法:
import numpy as np
def detect_sensor_noise(eigenvalues: np.ndarray,
spectral_coeff: np.ndarray,
alpha_thresh: float = 0.5) -> dict:
"""
Weyl 定律失效检测:高频拖尾诊断
eigenvalues: LB 算子特征值序列(升序)
spectral_coeff: 对应的谱能量 |f_hat_k|^2
"""
k_start = len(eigenvalues) // 2 # 高频区从中点开始
lam_high = np.log(eigenvalues[k_start:] + 1e-12)
energy_high = np.log(spectral_coeff[k_start:] + 1e-12)
# 对数-对数线性回归,斜率即衰减指数 α
coeffs = np.polyfit(lam_high, energy_high, 1)
alpha_fit = -coeffs[0] # 正值 = 快速衰减(健康)
return {
"alpha": float(alpha_fit),
"noisy": alpha_fit < alpha_thresh, # 斜率过小 → 噪声
"noise_floor": float(np.exp(coeffs[1])),
}
def adaptive_R_update(R_nominal: np.ndarray,
sensor_health: dict,
scale_noisy: float = 10.0) -> np.ndarray:
"""根据噪声诊断自适应调整观测噪声协方差 R"""
if sensor_health["noisy"]:
return R_nominal * scale_noisy # 降低卡尔曼增益
return R_nominal
🔢 完整实现:EKF 跨频调度器(Predict 1kHz / Update 按传感器触发)、PINN 在线微调、SE(3) 位姿更新(李代数增量)的 Python 实现见 系统部署架构。
→ 实时安全监控(CBF)(EKF 输出直接输入 CBF 的 计算)
→ 数学讲义·流形是什么 · 李群与 SE(3)
参考文献
| # | 文献 | 关联概念 |
|---|---|---|
| [1] | Kalman, R. E. (1960). A new approach to linear filtering and prediction problems. Journal of Basic Engineering, 82(1), 35–45. | 卡尔曼滤波原始论文,线性最优估计理论 |
| [2] | Gelb, A. (Ed.). (1974). Applied Optimal Estimation. MIT Press. | EKF 工程标准参考,非线性线性化处理 |
| [3] | Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press. | SE(3) 机器人学,李群位姿更新 |
| [4] | Raissi, M., Perdikaris, P., & Karniadakis, G. E. (2019). Physics-informed neural networks: A deep learning framework for solving forward and inverse problems. Journal of Computational Physics, 378, 686–707. | PINN 物理先验,动力学不确定性补偿 |