4. 梯形速度规划:从数学模型到工程实践
各位工程师朋友,今天我们来聊聊梯形速度规划。说实话,这是工业机器人轨迹规划里最基础、也最常用的方法之一。我在调试第一台六轴机器人时,用的就是梯形速度曲线——简单、可靠,而且效果立竿见影。
4.1 梯形速度曲线的数学模型
梯形速度曲线,说白了就是让机器人先加速、再匀速、最后减速。你想想看,这就像开车:红灯变绿,你踩油门加速;路况好了,保持匀速;快到路口了,提前减速。很自然的逻辑,对吧?
它的数学表达其实不复杂。我们把整个运动过程分成三段:
- 加速段:速度从0线性增加到最大速度 \( v_{max} \)
- 匀速段:保持最大速度运行
- 减速段:速度从最大速度线性减到0
对应的加速度曲线就是:正加速度 → 零加速度 → 负加速度。嗯,这里要注意,加速度的突变是梯形规划的一个硬伤,后面我们会聊到。
核心公式:
设总位移为 \( S \),最大速度为 \( v_{max} \),加速度为 \( a \),则:
- 加速段时间:\( t_a = \frac{v_{max}}{a} \)
- 加速段位移:\( s_a = \frac{1}{2} a t_a^2 \)
- 匀速段时间:\( t_c = \frac{S - 2s_a}{v_{max}} \)
- 减速段参数与加速段对称
4.2 三段参数的工程计算
我在项目中遇到过一个问题:明明算好了参数,机器人跑起来却抖得厉害。后来发现,是加速段和减速段的参数没匹配好。这里我给大家一个实用的计算流程。
第一步:判断能否达到最大速度
如果总位移太小,可能还没加速到 \( v_{max} \) 就得开始减速了。这种情况我们叫「三角形速度曲线」——只有加速和减速,没有匀速段。
判断条件很简单:
if (S < v_max^2 / a) {
// 三角形曲线
t_a = sqrt(S / a);
v_peak = a * t_a;
} else {
// 梯形曲线
t_a = v_max / a;
t_c = (S - a * t_a^2) / v_max;
}
第二步:计算各段位置和速度
我个人习惯用分段函数来描述位置轨迹:
| 时间段 | 速度 | 位置 |
|---|---|---|
| \( 0 \leq t < t_a \) | \( v(t) = a t \) | \( s(t) = \frac{1}{2} a t^2 \) |
| \( t_a \leq t < t_a + t_c \) | \( v(t) = v_{max} \) | \( s(t) = s_a + v_{max}(t - t_a) \) |
| \( t_a + t_c \leq t \leq T \) | \( v(t) = v_{max} - a(t - t_a - t_c) \) | \( s(t) = s_a + s_c + v_{max}(t - t_a - t_c) - \frac{1}{2} a (t - t_a - t_c)^2 \) |
工程小技巧: 实际编程时,我建议用「时间归一化」的方法。把总时间T归一化到[0,1]区间,这样计算更稳定,也方便后续插值。
4.3 梯形规划的痛点:加速度突变
好了,梯形规划看起来挺完美的,对吧?但实际用起来,问题就来了。
我曾经调试一个码垛机器人,梯形速度规划跑起来,每到加减速切换点,机械臂就「咯噔」一下。一开始我以为是机械间隙,后来用示波器看电机电流——好家伙,加速度突变导致电流尖峰,直接冲击减速机。
为什么会这样?因为梯形规划的加速度是阶跃变化的:
- 启动瞬间:加速度从0跳变到a
- 加速结束:加速度从a跳变到0
- 减速开始:加速度从0跳变到-a
- 停止瞬间:加速度从-a跳变到0
这种突变在数学上叫「加速度不连续」。你想想看,加速度的导数——我们叫「加加速度」(Jerk)——是无穷大。这对机械系统来说,就是冲击和振动。
注意: 加速度突变不仅影响机械寿命,还会导致轨迹精度下降。特别是在高速高精度场景下,比如芯片贴装、激光切割,梯形规划基本不够用。
4.4 为什么需要S形速度曲线?
既然梯形规划有这个问题,那怎么解决?答案就是:让加速度也平滑变化。
S形速度曲线,说白了就是把加速度的阶跃变成斜坡。它把原来的三段变成了七段:
- 加加速段:加速度从0线性增加到a
- 匀加速段:保持加速度a
- 减加速段:加速度从a线性减到0
- 匀速段:速度保持最大
- 加减速段:加速度从0线性减到-a
- 匀减速段:保持加速度-a
- 减减速段:加速度从-a线性增到0
你看,这样加速度就是连续的,加加速度(Jerk)变成了有限值。机械系统受到的冲击就小多了。
我记得有一次做半导体晶圆搬运项目,客户要求定位精度±0.01mm,而且不能有振动。梯形规划试了三次都过不了,换成S形曲线后,一次通过。嗯,从那以后,我对S形曲线就特别信任。
梯形 vs S形 对比:
- 梯形:计算简单,执行效率高,适合低速、大负载场景
- S形:运动平滑,冲击小,适合高速、高精度场景
- 代价:S形计算量更大,参数更多(多了加加速度Jerk)
4.5 实际选型建议
说了这么多,到底什么时候用梯形,什么时候用S形?我给大家一个参考:
- 搬运码垛:负载大、速度慢,梯形规划完全够用,别折腾S形
- 焊接涂胶:要求轨迹平滑,建议用S形,至少加加速度要可控
- 高速分拣:必须用S形,否则机械臂寿命会大打折扣
- 精密装配:S形是标配,有时候还得用更高阶的规划
最后说一句:梯形规划不是过时了,而是要看场景。我见过很多老师傅,梯形规划用了一辈子,照样调出好设备。关键是理解它的优缺点,知道什么时候该换方案。
下一章,我们会深入S形速度曲线的数学模型,把七段参数的计算方法掰开揉碎了讲。到时候你会发现,S形其实也没那么复杂。