第十一章 连续时间轨迹估计

Chapter 11   Continuous-Time Trajectory Estimation


11.1 动机与概述 / Motivation and Overview

中文

前两部分的所有估计方法均在离散时间框架内进行:在固定时刻 估计位姿序列。这对很多应用已经足够,但有一个根本局限:

问题:如果需要查询任意时刻 (不一定是测量时刻)的位姿怎么办?

例如,激光雷达扫描是在高频率下逐点采集的(“运动畸变”问题),若能在任意时刻插值位姿,可以对每个点单独去畸变。

连续时间轨迹估计的思路:

  1. 用**随机微分方程(SDE)**定义轨迹的先验分布——鼓励轨迹平滑。
  2. 高斯过程(GP)表示该先验,使得在任意时刻均可以封闭形式求取后验均值和协方差。
  3. 在离散测量时刻求解 MAP 估计,再用 GP 插值/外推任意查询时刻的状态。

本章的核心算法是 STEAM(Simultaneous Trajectory Estimation and Mapping)


English

All estimation methods so far operate in discrete time: poses are estimated at fixed timestamps. The fundamental limitation: what if we need the pose at an arbitrary query time not coinciding with any measurement?

Continuous-time trajectory estimation addresses this by:

  1. Defining a smooth prior via a stochastic differential equation (SDE).
  2. Representing the prior as a Gaussian process (GP) that can be evaluated at any time.
  3. Solving a discrete MAP problem at measurement times, then GP-interpolating/extrapolating at query times.

The resulting algorithm is called STEAM (Simultaneous Trajectory Estimation and Mapping).


11.1 运动先验 / Motion Prior

11.1.1 随机微分方程 / Stochastic Differential Equation

中文

理想情况下,我们希望用以下非线性 SDE 刻画轨迹先验:

第一个方程是 上的运动学方程;第二个方程表示广义角加速度由白噪声激励(在无噪声时广义速度为常数)。这称为**“加速度白噪声”(white-noise-on-acceleration)常速先验**。

难点:运动学方程非线性,无法直接用第 3 章和第 4 章的线性 GP 工具。

解决思路:引入局部变量 ,在每个支撑时刻附近将全局非线性运动转换为局部线性问题,再用线性 GP 工具处理。


English

The ideal prior SDE is:

This “white-noise-on-acceleration” model is nonlinear due to the kinematics. The solution: introduce local variables that convert the problem to a linear one locally.


11.1.2 局部随机微分方程 / Local SDEs

中文

在每个支撑时刻 ,引入局部位姿变量 ,定义为

局部变量 表示相对于 的增量位姿,只要增量不太大,李代数近似就非常精确。

在局部变量上定义线性 SDE

整理为一阶形式,设 ,Markov 状态

由于这是线性时不变 SDE,可以用第 3.4 节的结果封闭形式积分:

其中状态转移矩阵累积协方差分别为

直觉 是匀速运动的传播矩阵:位姿 = 初始位姿 + 速度 × 时间; 是随时间增长的不确定性(上左角是位置不确定性 ,右下角是速度不确定性 )。


English

Define local pose variable between times and .

On this local variable, impose the linear SDE (white noise on acceleration). In first-order Markovian form with state , this is a linear time-invariant system that can be stochastically integrated in closed form:

The transition matrix is the constant-velocity propagator; grows as in position and in velocity.


11.1.3 误差项与代价函数 / Error Terms and Cost Function

中文

将局部变量换回全局变量

其中 的左雅可比。

相邻时刻间的运动误差(用于构造代价项):

代价项:

总先验代价:

物理意义:误差的上半部分衡量”从 以当前速度匀速飞行到 “与”实际位姿变化”之间的差异;下半部分衡量速度不连续性。两个分量都被 加权——时间间隔越大,权重越小(允许更大偏差)。


English

Converting back to global variables , the motion prior error between consecutive states is:

The upper half penalizes deviation from constant-velocity motion; the lower half penalizes velocity discontinuity. The cost forms a factor-graph binary factor between and .


11.1.4 线性化误差项 / Linearized Error Terms

中文

为了在 GN 框架中使用,对误差项线性化。对位姿施加左扰动,对速度施加加性扰动:

联合扰动 (维度 )。

线性化后的误差:

其中雅可比块为():

其中

将所有误差和雅可比堆叠,得到运动先验代价的二次近似:

形式与第 9/10 章完全一致( 是块三对角矩阵, 包含所有位姿和速度扰动)。


English

Perturbing poses via the Lie exponential and velocities additively, the linearized motion error is:

where is the joint perturbation (pose + velocity). The stacked quadratic form matches the structure of the discrete-time motion prior from Chapters 9-10, enabling the same Gauss-Newton framework.


11.2 STEAM:同步轨迹估计与建图 / STEAM: Simultaneous Trajectory Estimation and Mapping

11.2.1 问题描述 / Problem Setup

中文

STEAM 是连续时间版的 SLAM。待估状态包含位姿和广义速度:

与离散时间 SLAM 相比,每个时刻额外估计 广义速度),这是连续时间先验所必须的 Markov 状态。

测量模型(与 SLAM 相同):


English

The STEAM state includes both pose and generalized velocity at each measurement time:

The generalized velocity is the additional Markovian state required by the continuous-time prior. The measurement model is identical to discrete-time SLAM.


11.2.2 批量最大后验解 / Batch MAP Solution

中文

完整 MAP 代价函数:

其中 是连续时间运动先验(第 11.1 节), 是视觉测量代价。

测量雅可比(注意与离散时间 SLAM 的细微区别):

在速度扰动对应的列处填零,因为速度 不直接参与路标测量。

全系统矩阵:

求解 ,更新工作点:

迭代至收敛。


English

The MAP cost function combines the continuous-time motion prior and visual measurement terms. The block is padded with zeros in the velocity columns since does not appear in the landmark measurement. The system has the same arrowhead structure as discrete-time SLAM, with block-diagonal and block-tridiagonal.


11.2.3 利用稀疏结构 / Exploiting Sparsity

中文

连续时间运动先验不破坏箭头形稀疏结构:

与离散时间 SLAM 的区别 中每个时刻贡献 12 维(位姿 6 维 + 速度 6 维,而非仅 6 维); 矩阵有额外零列。其余稀疏利用方法(Schur/Cholesky)完全相同。


English

The structure is identical to discrete-time SLAM except each pose-slot in has dimensions (pose + velocity). remains block-diagonal; remains block-tridiagonal. The same Schur/Cholesky strategies apply.


11.3 插值与外推 / Interpolation and Extrapolation

中文

关键优势:STEAM 求解出测量时刻的后验后,可在任意查询时刻 代价插值/外推位姿和协方差。这是连续时间方法相对于离散时间方法最重要的优势。

11.3.1 均值插值 / Interpolating the Mean

中文

假设 ,只需两个相邻时刻 即可插值(Markov 性质)。

利用第 3.4 节的 GP 插值公式,后验插值方程化简为:

其中插值核为:

局部状态 包含局部位姿 和局部速度 ,转换回全局变量:

计算代价 ,与轨迹长度无关(仅用两个相邻时刻)。


English

Given the Markov property, interpolation at only requires the two bracketing states. The posterior interpolation equations reduce to:

with interpolation kernels and computed from the GP transition and covariance functions. Converting to global variables gives and . Cost: per query.


11.3.2 协方差插值 / Interpolating the Covariance

中文

插值协方差需要更多工作。总体思路:

  1. 提取主 MAP 解给出的 处的边缘协方差 等(利用 的箭头形结构高效提取)。
  2. 构造一个包含 三个时刻的小型估计问题(图 11.6):
    • 加入,再从 的新运动先验(两段);
    • 减去 的原始运动先验(一段)。
  3. 对三时刻联合逆协方差 边缘化掉 处的状态,即可得到 处的协方差

最终结果(经 SMW 恒等式化简后):

计算代价 上平滑变化。


English

Covariance interpolation constructs a small three-time estimation problem: extract the marginal covariance at and from the main solution, add two new motion-prior factors connecting through , remove the original factor spanning , then marginalize out the bracketing times. The resulting formula for involves only the transition matrices and covariances between , , . Cost: per query.


11.3.3 外推 / Extrapolation

中文

在最后时刻 之后外推()更简单:沿用常速假设。

均值外推

协方差外推(SMW 化简后):

形如 EKF 的协方差传播(但适配 状态空间)。


English

Mean extrapolation (): assume constant velocity from the last state:

Covariance extrapolation (via SMW identity):

which has the same form as the EKF covariance prediction, adapted to .


11.4 讨论与扩展 / Discussion and Extensions

中文

与离散时间方法的比较

方面离散时间 SLAM (Ch10)连续时间 STEAM (Ch11)
状态空间位姿序列 位姿+速度
查询时刻仅测量时刻任意时刻 查询
平滑性无(测量驱动)GP 先验驱动
运动先验离散积分连续 SDE
实现复杂度较低较高(需处理 等)

时间戳的三种角色

连续时间方法允许将以下三类时间戳解耦:

  • 测量时刻:传感器观测发生的时刻(通常很多)
  • 估计时刻:MAP 求解的支撑节点(可以较少)
  • 查询时刻:需要知道位姿的时刻(任意多)

解耦三类时间戳为高效实现提供了很大灵活性。

与第 10.1.5 节插值方法的比较

第 10.1.5 节的插值是基于约束的(强制常速假设);本章的插值是基于惩罚的(鼓励平滑,但允许偏差,偏差由 控制)。两种方法各有优劣:约束法严格但刚性,惩罚法灵活但需要调参。

扩展

  • 白噪声加加速度(white-noise-on-jerk):更高阶 SDE,支持更复杂运动模式。
  • Singer 模型:相关加速度噪声模型,现实性更强。
  • 连续体机器人:将”时间”换为”弧长”,同一框架适用于柔性梁的状态估计(Cosserat 杆先验)。
  • 增量方法:结合 iSAM2 等增量求解器,实时处理新测量。

English

GP vs. constraint-based interpolation: The §10.1.5 interpolation enforces constant velocity as a hard constraint; STEAM uses GP smoothing as a soft prior, with smoothness controlled by . Both preserve arrowhead sparsity.

Three sets of timestamps: Continuous-time methods allow decoupling: (1) measurement times (dense), (2) estimation times (sparse support nodes), (3) query times (arbitrary). This flexibility enables efficient implementations where the estimation grid is coarser than the measurement rate.

Extensions: Higher-order SDEs (white-noise-on-jerk, Singer model) and incremental solvers (iSAM2-style updates) are natural extensions. The framework also applies to continuum robots, where arc-length replaces time and the Cosserat rod prior replaces the constant-velocity prior.


11.5 本章小结 / Chapter Summary

中文

组件功能数学工具
局部 SDE非线性 动力学 → 局部线性局部变量
GP 先验轨迹平滑
线性化误差GN 迭代所需
MAP 求解离散时刻估计同 SLAM,保留稀疏结构
GP 插值任意时刻均值
GP 协方差插值任意时刻不确定性3 时刻小估计问题,
外推预测未来状态常速外推 + 协方差传播

STEAM = 连续时间运动先验 + SE(3) MAP 优化 + GP 插值


English

ComponentRoleMath tool
Local SDENonlinear → linear localLocal vars ,
GP priorTrajectory smoothness,
Linearized errorsGN iterations, ()
MAP solveDiscrete-time estimatesSame as SLAM, sparse structure preserved
GP interpolationQuery mean at , ,
Covariance interp.Query uncertainty at 3-time sub-problem,
ExtrapolationPredict future statesConstant velocity + covariance propagation

STEAM = continuous-time GP prior + MAP optimization + GP interpolation/extrapolation


附录将提供本书使用的矩阵代数速查。/ The appendix provides a matrix algebra and calculus reference used throughout the book.