1. 速度规划基础:速度规划在机器人/自动驾驶中的作用,常见速度曲线类型

大家好,我是老张。做运动控制这行十几年了,今天咱们聊聊速度规划。

速度规划,说白了就是告诉机器人或车子:你什么时候该跑多快,什么时候该停下来。听起来简单?我刚开始做项目时也这么想,结果第一次调试AGV小车,启动时直接一个急加速,货架上的零件全飞了。嗯,从那以后我再也不敢小看速度规划了。

1.1 为什么需要速度规划?

你想想看,如果让电机直接从一个速度跳到另一个速度,会发生什么?

  • 冲击力巨大——机械结构受不了,齿轮打齿、皮带断裂是常事
  • 定位不准——急停时惯性大,过冲严重,精度根本保证不了
  • 乘客体验差——自动驾驶里一脚急刹,后排乘客直接贴到前座

我在做工业机器人项目时遇到过一件事:客户反馈说机器人运行时有异响。查了半天,发现就是速度规划太粗糙,每次加减速都像被人踹了一脚。后来换成S形曲线,异响消失了,节拍还快了15%。

核心观点:速度规划的本质是在效率和舒适性之间找平衡。没有规划的速度,就像没有刹车的跑车——快是快,但不敢开。

1.2 速度规划在机器人/自动驾驶中的角色

我习惯把速度规划比作交响乐的指挥。每个关节电机、每个轮子都是乐手,指挥得让它们同时起、同时停、节奏一致。

具体来说,速度规划解决三个问题:

  1. 什么时候加速?——起步阶段,不能太猛也不能太慢
  2. 什么时候匀速?——中间段,保持效率
  3. 什么时候减速?——终点前,平稳停下

在自动驾驶里,速度规划还要考虑更多:前方有障碍物怎么办?弯道要不要减速?红绿灯怎么响应?这些都得靠速度曲线来约束。

我的经验:做速度规划时,永远要留安全余量。我曾经在AGV项目里把加减速时间算得太极限,结果地面稍微有点油渍,车轮就打滑了。从那以后,我规划的速度曲线都会留10%-15%的余量。

1.3 常见速度曲线类型

做这行这么多年,常用的速度曲线就那几种。我给大家梳理一下:

1.3.1 梯形速度曲线

这是最基础、最直观的曲线。形状就像个梯形:先匀加速、再匀速、最后匀减速。

  • 优点:计算简单,实现容易,适合对冲击要求不高的场合
  • 缺点:加速度突变,启动和停止时有冲击
  • 适用场景:传送带、简单搬运、低速AGV

我记得刚入行时,师傅教我的第一个速度规划就是梯形曲线。代码就几行,但跑起来确实有顿挫感。

// 梯形速度规划示例(伪代码)
float t_acc = 0.5;   // 加速时间
float t_const = 2.0; // 匀速时间
float t_dec = 0.5;   // 减速时间
float v_max = 1.0;   // 最大速度

if (t < t_acc) {
    v = v_max * (t / t_acc);  // 加速段
} else if (t < t_acc + t_const) {
    v = v_max;                // 匀速段
} else {
    v = v_max * (1 - (t - t_acc - t_const) / t_dec); // 减速段
}

1.3.2 S形速度曲线

梯形曲线有冲击?那就把尖角磨圆。S形曲线在加减速阶段用了正弦函数或多项式,让加速度连续变化。

  • 优点:平滑无冲击,机械寿命长,定位精度高
  • 缺点:计算量稍大,参数调起来麻烦
  • 适用场景:精密装配、高速机器人、自动驾驶

我做过一个半导体封装项目,要求定位精度0.01mm。梯形曲线根本不行,每次停止都会过冲。换成S形曲线后,精度达标了,设备噪音也降了3分贝。

注意:S形曲线虽然好,但参数设置不当反而会出问题。我曾经把加加速度(Jerk)设得太小,结果加速时间过长,节拍完全跟不上。后来总结:S形曲线的Jerk值要跟系统惯量匹配。

1.3.3 多项式速度曲线

梯形和S形都是固定形状。如果系统有特殊要求,比如必须经过某个速度点、或者要避开共振频率,那就得上多项式曲线。

  • 优点:灵活,可以定制任意形状
  • 缺点:计算复杂,参数多,调试难度大
  • 适用场景:特殊工艺、高动态响应、振动抑制

常用的多项式有三次、五次、七次。次数越高,曲线越平滑,但计算量也越大。我个人习惯用五次多项式,平衡了平滑度和计算效率。

1.4 三种曲线对比

为了方便大家选型,我整理了一张表:

特性 梯形曲线 S形曲线 多项式曲线
计算复杂度 低 中 高
平滑度 差(有冲击) 好 最好
参数数量 3个 5-7个 8个以上
适用速度 低速 中高速 全速域
调试难度 简单 中等 困难
典型应用 传送带、仓储 机器人、自动驾驶 精密加工、航天

1.5 知识体系总览

下面这张图是我自己画的,把速度规划的核心脉络理清楚了:

速度规划知识体系 速度规划 核心作用 曲线类型 应用场景 减少冲击 提高精度 保护机械 梯形曲线 S形曲线 多项式曲线 工业机器人 自动驾驶 AGV/AMR 选型原则:低速简单场景用梯形,高速高精度用S形,特殊需求用多项式 没有最好的曲线,只有最合适的曲线

1.6 选型建议

说了这么多,到底该怎么选?我给大家几个实用建议:

  • 新手入门:先从梯形曲线开始,跑通了再升级
  • 精度要求高:直接上S形,别在梯形上浪费时间
  • 特殊工况:比如要避开某个共振频率,用多项式定制
  • 算力有限:梯形曲线最省资源,单片机也能跑

我的习惯:做原型验证时先用梯形曲线,快速验证功能。等系统稳定了,再换成S形曲线优化性能。这样既保证了开发效率,又保证了最终品质。

好了,这一章就到这里。速度规划是运动控制的基石,后面的轨迹规划、联动控制都建立在这个基础上。希望大家先把这三种曲线吃透,后面我们会一步步深入。