2. 运动学基础:位置、速度、加速度、加加速度(Jerk)与刚体运动学

各位好,我是老张。在运动控制这行摸爬滚打了十几年,今天咱们来聊聊最基础、但也最容易被忽视的东西——运动学基础。

你可能会想:“位置、速度、加速度,这不是高中物理吗?” 没错,但我要告诉你,在真正的运动控制系统中,这些概念的定义方式、它们之间的数学关系,以及那个常被忽略的“加加速度(Jerk)”,才是决定你设备能不能跑得稳、停得准的关键。

我个人习惯把运动学比作“运动的语言”。不懂这门语言,你写出来的轨迹程序就像在说胡话,电机要么抖得像筛糠,要么过冲撞限位。咱们今天就把这门语言的基础语法彻底捋清楚。

2.1 位置、速度、加速度:从离散到连续

先看最核心的三个量。在运动控制器里,它们不是抽象的物理量,而是实实在在的寄存器数值。

物理量 符号 单位 控制器中的含义
位置 \( p \) 或 \( x \) mm, deg, pulse 编码器反馈的当前坐标
速度 \( v \) mm/s, rpm 单位时间内的位置变化量
加速度 \( a \) mm/s² 单位时间内的速度变化量

它们之间的数学关系,说白了就是微积分。但在数字控制器里,我们处理的是离散采样点。

  • 位置是速度的积分:\( p(t) = p_0 + \int v(t) dt \)
  • 速度是位置的微分:\( v(t) = \frac{dp}{dt} \)
  • 加速度是速度的微分:\( a(t) = \frac{dv}{dt} = \frac{d^2p}{dt^2} \)

嗯,这里要注意。在代码里,我们通常用差分代替微分。比如计算当前速度:

// 离散域的速度计算(单位:counts/周期)
int32_t current_velocity = (current_position - last_position) / dt;

我在项目中遇到过一个问题:直接用位置差分算速度,噪声会被放大。尤其是低分辨率编码器,位置跳变几个脉冲,算出来的速度就剧烈抖动。后来我加了一阶低通滤波,才把速度信号稳住。

我的小技巧: 在计算加速度时,不要直接用速度差分,而是用位置做二阶差分。虽然数学上等价,但二阶差分配合合适的采样周期,能减少量化误差的影响。

2.2 加加速度(Jerk):被忽视的“舒适度”指标

加加速度,英文叫 Jerk,是加速度的变化率。单位是 mm/s³。

你想想看,为什么有些设备启动时“哐”一下,有些则像丝绸一样顺滑?区别就在 Jerk 上。

  • Jerk 大:加速度突变,产生冲击力,机械振动、噪音、甚至螺栓松动。
  • Jerk 小:加速度平滑过渡,运动柔和,定位更准。

数学定义很简单:

\[ j(t) = \frac{da}{dt} = \frac{d^2v}{dt^2} = \frac{d^3p}{dt^3} \]

说白了,Jerk 就是位置的“三阶导数”。

核心观点: 在高速高精度运动控制中,限制 Jerk 比限制加速度更重要。因为加速度限制只能控制“力”的大小,而 Jerk 限制控制的是“力的变化率”,这才是减少振动的根本。

我曾经调试一台高速贴片机,加速度已经设得很低了,但机器还是抖得厉害。查了半天,发现是 Jerk 没限制,加速度从 0 瞬间跳到最大值,相当于给了机械系统一个“冲击激励”。加上 S 型速度曲线(本质就是限制 Jerk)后,问题立刻解决。

避坑指南: 不要以为只有高速设备才需要关注 Jerk。低速重载设备,如果 Jerk 过大,同样会导致齿轮打齿、皮带跳齿。我曾经在一条重载输送线上吃过这个亏,后来老老实实加了 Jerk 限制。

2.3 四者关系:一张图看懂运动学链条

为了让你更直观地理解,我画了一张图。这张图展示了从位置到 Jerk 的完整微分/积分链条,以及它们在轨迹规划中的角色。

运动学量微分/积分关系图 位置 p(t) 速度 v(t) 加速度 a(t) 加加速度 j(t) 微分 微分 微分 积分 积分 积分 轨迹规划中的角色 • 位置:目标点,路径规划的基础 • 速度:决定生产效率,受电机额定转速限制 • 加速度:决定启停时间,受电机最大扭矩限制 • 加加速度:决定运动平滑度,受机械刚度限制

从这张图可以看得很清楚:微分方向是“求导”,积分方向是“规划”。我们做轨迹规划,本质上就是从 Jerk 开始,逐层积分得到位置指令。

2.4 刚体运动学简介:从点到刚体

前面讨论的都是“质点”运动。但在实际系统中,我们控制的是刚体——有尺寸、有姿态的物体。

刚体运动学比质点运动学多了一个维度:旋转。

运动类型 质点 刚体
位置描述 坐标 (x, y, z) 位置 + 姿态 (x, y, z, Rx, Ry, Rz)
速度描述 线速度 v 线速度 v + 角速度 ω
加速度描述 线加速度 a 线加速度 a + 角加速度 α
Jerk 描述 线加加速度 j 线加加速度 j + 角加加速度 ζ

刚体运动学中,最核心的概念是 齐次变换矩阵。它用一个 4x4 的矩阵,同时描述了刚体的位置和姿态。

// 齐次变换矩阵示例(绕 Z 轴旋转 θ 角度,并平移 dx, dy, dz)
// | cosθ  -sinθ  0   dx |
// | sinθ   cosθ  0   dy |
// | 0      0     1   dz |
// | 0      0     0   1  |

我个人习惯把齐次变换矩阵看作“刚体的身份证”。你给它一个输入(比如关节角度),它就能告诉你末端执行器在空间中的精确位置和朝向。

一个实用的视角: 在运动控制中,我们通常把刚体运动学分解为“平动”和“转动”两部分来处理。平动部分用我们前面讲的位置-速度-加速度-加加速度模型;转动部分则用角度-角速度-角加速度-角加加速度模型。两者在数学上是完全对称的。

嗯,这里要特别提醒一点:角速度和线速度不能直接类比。角速度的单位是 rad/s,线速度是 m/s,两者通过“旋转半径”联系起来。在轨迹规划时,如果你同时规划平动和转动,一定要考虑它们之间的耦合关系。我曾经见过一个六轴机器人程序,平动轨迹很平滑,但末端姿态在路径中间突然翻转——就是因为角速度规划没跟上线速度的变化。

2.5 本章小结:运动学是轨迹规划的“语法”

咱们这一章内容不少,我帮你捋一下核心要点:

  • 位置、速度、加速度、加加速度 构成了运动学描述的完整链条,它们之间通过微分/积分相互转换。
  • 加加速度(Jerk) 是衡量运动平滑度的关键指标,限制 Jerk 能有效减少机械振动。
  • 刚体运动学 在质点运动学的基础上增加了旋转维度,齐次变换矩阵是描述刚体状态的标准工具。
  • 在实际项目中,离散域的计算精度 和 平动与转动的耦合 是两个最常见的坑,需要特别留意。

这些概念看起来简单,但它们是后续所有轨迹规划算法(梯形、S型、多项式、样条)的基石。你想想看,如果连“位置的一阶导数是速度”这种关系都搞不清楚,后面怎么理解速度规划中的“时间最优”问题?