3、运动学基础:位置、速度、加速度、加加速度(Jerk)、加加加速度(Snap)的定义与关系

做轨迹优化,说白了就是在跟这几个物理量打交道。我刚开始接触这个领域时,觉得不就是高中物理那点东西吗?后来真上手做项目才发现,这里面的门道比想象中深得多。

你想想看,一个机器人从A点走到B点,如果只关心位置和速度,那轨迹可能很生硬。但如果你把Jerk和Snap也考虑进去,整个运动就会变得丝滑流畅。嗯,这就是我们这节课要聊的核心。

3.1 从位置到Snap:一步步往上推

我们先从最基础的开始。位置,就是物体在空间中的坐标。速度是位置的变化率,加速度是速度的变化率。这个大家都懂,我就不啰嗦了。

但Jerk和Snap呢?

  • Jerk(加加速度):加速度的变化率。说白了就是「加速度变化得有多快」。
  • Snap(加加加速度):Jerk的变化率。也就是「加速度变化率的变化率」。

用数学公式表达就是:

位置:    p(t)
速度:    v(t) = dp/dt
加速度:  a(t) = dv/dt = d²p/dt²
Jerk:    j(t) = da/dt = d³p/dt³
Snap:    s(t) = dj/dt = d⁴p/dt⁴

我在项目中遇到过一件事:有次调试一个六轴机械臂的轨迹,发现末端执行器在拐弯时总是抖动。查了半天,发现是Jerk太大了。加速度变化太剧烈,电机响应不过来。从那以后,我每次做轨迹规划都会把Jerk约束加上。

核心要点:位置到Snap,每求一次导,就多一阶的连续性要求。轨迹优化中,我们通常要求位置连续、速度连续、加速度连续,有时候还要Jerk连续。

3.2 为什么需要Jerk和Snap?

你可能会问:我只要位置和速度不就行了吗?为什么要搞这么复杂?

原因很简单——物理世界的惯性。

举个例子。你开过车吧?如果一脚油门踩到底,加速度瞬间从0变到最大,你会感觉被「推」了一下。这个「推」的感觉,就是Jerk太大造成的。在机器人身上,这种冲击会带来几个问题:

  • 电机电流突变,容易过载
  • 机械结构产生振动,影响精度
  • 轨迹不平滑,末端执行器抖动

我曾经调试过一个高速分拣机器人,速度要求很高。一开始只约束了加速度,结果机器人跑起来像在跳舞——每个拐弯处都剧烈抖动。后来我把Jerk约束加上,运动就变得平稳多了。

个人经验:对于大多数工业机器人,约束到Jerk就够了。但如果你在做高精度加工或者医疗机器人,Snap也得考虑进去。我建议你从Jerk开始,看效果再决定要不要加Snap。

3.3 各阶量的关系图

为了让你更直观地理解这几个量的关系,我画了一张图。你看,每个量都是前一个量的导数,就像链条一样一环扣一环。

运动学量关系图 位置 p(t) 速度 v(t) 加速度 a(t) Jerk j(t) Snap s(t) d/dt d/dt d/dt d/dt 物体位置 位置变化率 速度变化率 加速度变化率 Jerk变化率 关键理解: • 每个量都是前一个量对时间的导数 • 阶数越高,对运动的「平滑性」要求越严格 • 实际工程中,通常约束到加速度或Jerk,高精度场景才约束Snap

3.4 各阶量的单位与物理意义

搞清楚了定义,我们来看看它们的单位和实际意义。我整理了一个表格,方便你查阅:

物理量 符号 单位(SI) 物理意义 工程影响
位置 p m 物体在空间中的坐标 轨迹的几何形状
速度 v m/s 位置变化的快慢 运动效率、节拍时间
加速度 a m/s² 速度变化的快慢 电机力矩、惯性力
Jerk j m/s³ 加速度变化的快慢 冲击、振动、舒适度
Snap s m/s⁴ Jerk变化的快慢 高频振动、精度极限

注意:我曾经在项目里吃过亏——只约束了加速度,没管Jerk。结果机器人启动和停止时,电机电流尖峰特别大,差点烧了驱动器。后来我把Jerk约束加上,电流波形就平滑多了。所以,千万别小看这些高阶量。

3.5 轨迹优化中的实际应用

好了,理论讲完了,我们来看看实际中怎么用。

在轨迹优化里,我们通常把轨迹表示成时间多项式。比如一个五次多项式轨迹:

p(t) = c0 + c1*t + c2*t² + c3*t³ + c4*t⁴ + c5*t⁵

然后求导得到速度、加速度、Jerk:

v(t) = c1 + 2*c2*t + 3*c3*t² + 4*c4*t³ + 5*c5*t⁴
a(t) = 2*c2 + 6*c3*t + 12*c4*t² + 20*c5*t³
j(t) = 6*c3 + 24*c4*t + 60*c5*t²

你看,多项式的阶数越高,我们能约束的导数阶数就越多。五次多项式可以约束位置、速度、加速度三个量。七次多项式可以约束到Jerk。九次多项式可以约束到Snap。

我个人习惯是:能用低阶就不用高阶。因为高阶多项式虽然平滑,但计算量大,而且容易产生数值问题。一般场景下,五次多项式就够了。

避坑指南:我曾经为了追求极致的平滑,用了九次多项式。结果轨迹在端点附近出现了奇怪的振荡——这就是所谓的「龙格现象」。后来我改用分段低阶多项式(比如B样条),效果反而更好。

3.6 小结

这节课我们聊了位置、速度、加速度、Jerk、Snap的定义和关系。说白了,它们就是一条导数链。你约束的阶数越高,轨迹就越平滑,但计算也越复杂。

实际项目中,我建议你从加速度约束开始,如果发现运动有冲击,再加Jerk约束。Snap嘛,除非你做的是超高精度的工作,否则一般用不上。

嗯,运动学基础就聊到这里。记住一句话:轨迹优化的本质,就是在各个阶数的约束之间找到平衡。

可可精品资料库