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 三个指标的关系:一张图看懂
这三个指标不是孤立的。我画了一张图,帮你理清它们的关系:
从图上可以看得很清楚:曲率是路径的固有属性,向心加速度是曲率和速度共同作用的结果,而Jerk则是向心加速度变化的剧烈程度。三者层层递进,缺一不可。
2.5 实战中的权衡
你可能会问:那我是不是把速度降到最低,三个指标都满足就行了?
理论上可以,但效率就没了。AGV是用来干活的,不是用来爬的。
我个人的做法是:
- 先定曲率上限:根据AGV的最小转弯半径,确定路径曲率不超过某个值。比如差速驱动AGV,我一般限制κ ≤ 2.0 1/m。
- 再算安全速度:根据向心加速度阈值,反推每个弯道处的最大允许速度。
- 最后平滑Jerk:在速度切换时,用S形曲线或梯形曲线过渡,避免加速度突变。
小技巧:
如果你用梯形速度规划,Jerk理论上无限大(加速度瞬间跳变)。我建议改用S形速度规划,虽然计算复杂一点,但Jerk可控。代码实现上,可以用五次多项式插值,保证速度、加速度、Jerk都连续。
嗯,这一章的内容就到这里。记住这三个指标,你的AGV曲线运动就有了评价标准。下一章我们聊聊怎么在实际路径中应用这些指标,生成真正能跑的轨迹。
公众号:蓝海资料掘金营,微信deep3321