在计算机图形学和机器人学中,SLERP 是一种用于在两个单位四元数之间进行平滑插值的技术,常用于动画和路径规划。

数学定义

给定两个单位四元数 ,参数 ,SLERP 定义为:

其中 是两个四元数之间的夹角。当 接近零时,SLERP 退化为线性插值(LERP + 归一化)以避免数值不稳定。

几何意义

SLERP 在四维超球面 上沿大圆弧进行等速运动,对应到三维旋转空间中就是在两个旋转之间走最短路径(测地线),且角速度恒定。这与简单的线性插值后归一化(NLERP)不同,NLERP 的角速度在端点处快、中间慢,不够均匀。

实际使用注意

  • 双重覆盖:四元数 表示同一旋转。插值前应检查 ,若是则取反其中一个,确保走最短弧
  • 小角度:当 时,使用线性插值近似,避免 导致的除零
  • 多段插值:对多个旋转关键帧做分段 SLERP 只能保证 连续。若需要更平滑的过渡,可使用 SQUAD(Spherical Quadrangle)等高阶插值方法

应用场景

  • 机器人路径规划:在 末端执行器 的姿态规划中,使用 SLERP 在关键位姿之间生成平滑的旋转轨迹
  • 骨骼动画:游戏引擎和动画系统中对关节旋转进行插值
  • 相机运动:视频制作和 VR 中实现平滑的视角过渡
  • 传感器数据对齐:在 多传感器融合 中,对异步到达的姿态数据进行时间插值