2. 曲线运动评价指标:曲率、向心加速度、加加速度(Jerk)对AGV稳定性的影响

各位工程师朋友,咱们接着聊。上一章我们把差速驱动AGV的运动学模型理清了,知道了怎么算速度、怎么转方向。但问题来了——你算出来的轨迹,AGV真的能稳稳当当跑下来吗?

我见过太多项目,仿真里跑得飞起,一上实车就抖得像筛糠。为什么?因为光有运动学方程还不够,你得知道什么样的曲线运动是「好」的,什么样的会要了AGV的命。

这一章,我们就来聊聊评价曲线运动的三个核心指标:曲率、向心加速度、加加速度(Jerk)。说白了,就是给AGV的运动质量打个分。

2.1 曲率:弯有多急

先问个问题:同样是转弯,半径10米和半径0.5米,哪个更难跑?

答案显而易见。曲率就是用来量化这个「弯的急缓程度」的。数学上,曲率κ是半径的倒数:

κ = 1 / R

R是转弯半径,单位米。曲率单位是1/m。

举个例子:

  • 半径10米的大弯,κ = 0.1 1/m,很平缓
  • 半径0.5米的急弯,κ = 2.0 1/m,非常急

我个人习惯把曲率分成三个等级:

曲率范围 (1/m) 等级 对AGV的影响
κ < 0.2 低曲率 基本无感,随便跑
0.2 ≤ κ < 1.0 中曲率 需要减速,否则侧滑
κ ≥ 1.0 高曲率 必须大幅降速,甚至原地旋转

嗯,这里要注意:曲率是路径本身的属性,跟速度无关。但它是后面两个指标的基础。

2.2 向心加速度:侧滑的元凶

曲率只告诉你弯有多急,但没告诉你AGV跑多快。向心加速度a_c就是把速度和曲率结合起来:

a_c = v² × κ

v是AGV的线速度,单位m/s。a_c单位是m/s²。

你看,速度是平方关系。速度翻倍,向心加速度变成四倍。我在项目中遇到过一台AGV,路径曲率只有0.3 1/m,不算大。但操作员把速度设到了2.5 m/s,结果一转弯,货直接甩出去了。

为什么?算一下:a_c = 2.5² × 0.3 = 1.875 m/s²。这已经接近0.2g了,对于普通AGV来说,侧滑风险很大。

经验阈值:

  • 室内平地AGV:a_c ≤ 0.5 m/s² 比较安全
  • 重载AGV:a_c ≤ 0.3 m/s²
  • 有液体或松散货物的:a_c ≤ 0.2 m/s²

所以,当你设计曲线运动时,不要只看路径好不好看,一定要算向心加速度。我建议在代码里加一个实时监控:

def check_lateral_accel(v, curvature, limit=0.5):
    a_c = v**2 * curvature
    if a_c > limit:
        print(f"警告:向心加速度 {a_c:.2f} m/s² 超限!")
        # 自动降速
        v_safe = sqrt(limit / curvature)
        return v_safe
    return v

2.3 加加速度(Jerk):抖动的根源

向心加速度管住了侧滑,但AGV还是会抖。为什么?因为加速度变化太猛了。

加加速度Jerk,就是加速度的变化率:

J = da/dt

单位是m/s³。说白了,就是「加速度变化得有多快」。

你想想看,如果AGV从直道进入弯道,向心加速度从0瞬间跳到0.5 m/s²,那车体就会「咯噔」一下。这就是Jerk过大。

我曾经调试一台AGV,路径规划得完美,曲率连续,向心加速度也没超。但AGV跑起来就是一顿一顿的,像有人在后边踹它。查了半天,发现是加速度变化太快,Jerk峰值到了8 m/s³。

避坑指南:

我曾经以为只要管好加速度就行,Jerk无所谓。结果那台AGV的电机驱动器频繁报过流故障。后来才明白,Jerk太大,电机需要瞬间输出巨大扭矩,电流冲击非常严重。

Jerk对AGV的影响有三点:

  • 机械冲击:齿轮、皮带、联轴器寿命缩短
  • 货物倾倒:尤其是堆叠货物,Jerk大了直接倒
  • 定位精度:抖动导致编码器读数震荡,最终停不准

一般建议Jerk控制在2~3 m/s³以内。对于高精度场合,最好不超过1 m/s³。

2.4 三个指标的关系:一张图看懂

这三个指标不是孤立的。我画了一张图,帮你理清它们的关系:

曲线运动评价指标关系图 路径曲率 κ 向心加速度 a_c 加加速度 Jerk a_c = v² × κ J = da_c/dt 最终目标:平稳、安全、精准的曲线运动 路径属性 动力学响应 舒适性/机械冲击

从图上可以看得很清楚:曲率是路径的固有属性,向心加速度是曲率和速度共同作用的结果,而Jerk则是向心加速度变化的剧烈程度。三者层层递进,缺一不可。

2.5 实战中的权衡

你可能会问:那我是不是把速度降到最低,三个指标都满足就行了?

理论上可以,但效率就没了。AGV是用来干活的,不是用来爬的。

我个人的做法是:

  1. 先定曲率上限:根据AGV的最小转弯半径,确定路径曲率不超过某个值。比如差速驱动AGV,我一般限制κ ≤ 2.0 1/m。
  2. 再算安全速度:根据向心加速度阈值,反推每个弯道处的最大允许速度。
  3. 最后平滑Jerk:在速度切换时,用S形曲线或梯形曲线过渡,避免加速度突变。

小技巧:

如果你用梯形速度规划,Jerk理论上无限大(加速度瞬间跳变)。我建议改用S形速度规划,虽然计算复杂一点,但Jerk可控。代码实现上,可以用五次多项式插值,保证速度、加速度、Jerk都连续。

嗯,这一章的内容就到这里。记住这三个指标,你的AGV曲线运动就有了评价标准。下一章我们聊聊怎么在实际路径中应用这些指标,生成真正能跑的轨迹。


公众号:蓝海资料掘金营,微信deep3321