3、车辆运动学基础:刚体运动、速度与加速度、曲率与转弯半径

各位同学,咱们今天聊聊车辆运动学。说实话,这是整个自动驾驶规划控制模块的「地基」。你想想看,如果连车怎么动、怎么转弯都搞不清楚,那后面的路径跟踪、轨迹规划根本无从谈起。我个人习惯把运动学看作是「几何层面的车辆行为描述」——我们不关心力、不关心轮胎摩擦,只关心位置、速度和姿态的变化。

3.1 刚体运动与车辆位姿

首先,我们把车辆看作一个刚体。什么叫刚体?说白了就是忽略形变,车身上任意两点之间的距离保持不变。这在低速场景下非常合理,比如泊车、园区低速巡航。

在二维平面中,车辆的位姿(Pose)由三个量唯一确定:

  • x:车辆后轴中心(或质心)的横坐标
  • y:纵坐标
  • θ:航向角,即车辆纵轴与x轴正方向的夹角

所以,一个完整的位姿可以写成 [x, y, θ]ᵀ。我在项目中遇到过一个问题:有同事把前轴中心作为参考点,结果计算转弯半径时总是对不上。后来统一用后轴中心,一切就顺了。嗯,这里要注意,后轴中心是运动学建模的黄金参考点。

核心要点: 车辆运动学建模中,通常以后轴中心作为参考点。因为后轮是非转向轮,其运动方向直接反映了车身的瞬时运动方向。

3.2 速度与加速度:不只是快慢

有了位姿,接下来就是速度。车辆的速度可以分解为:

  • 纵向速度 v:沿车身纵轴方向的速度
  • 横向速度:垂直于车身纵轴的速度(在运动学中通常假设为0,即无侧滑)
  • 横摆角速度 ω:航向角的变化率,即 ω = dθ/dt

你可能会问:「为什么横向速度假设为0?」其实这就是运动学模型的核心假设——车辆在运动过程中,轮胎没有侧向滑动。说白了,就是车轮滚动的方向就是轮胎指向的方向。这个假设在低速(通常 < 5 m/s)下非常准确。

加速度呢?同样分为纵向加速度 a = dv/dt 和横摆角加速度 α = dω/dt。我记得有一次调试泊车轨迹,发现跟踪误差总是收敛不了。查了半天,原来是加速度限制设得太宽松,导致规划出的轨迹曲率变化太剧烈。后来我把横摆角加速度限制在 ±0.5 rad/s² 以内,问题就解决了。

避坑指南: 我曾经在实车测试时忽略了加速度的连续性,导致车辆在切换轨迹时出现「顿挫感」。后来我强制要求轨迹的加速度必须连续(即 jerk 有限),乘坐体验明显提升。

3.3 曲率与转弯半径

接下来是重头戏——曲率。曲率 κ 描述了路径弯曲的程度,它的倒数就是转弯半径 R

κ = 1 / R

对于车辆运动学,曲率与方向盘转角直接相关。以经典的自行车模型为例:

κ = tan(δ) / L

其中:

  • δ 是前轮转角(方向盘转角经过转向机构传动比换算后得到)
  • L 是轴距

你想想看,如果轴距是 2.8 米,前轮转角是 10°(约 0.175 rad),那么曲率就是 tan(0.175) / 2.8 ≈ 0.063,对应的转弯半径约为 15.9 米。这个数值在实际泊车场景中很常见。

注意: 曲率是有正负的!通常定义左转为正曲率,右转为负曲率。在路径规划中,曲率的连续性直接影响控制器的跟踪效果。如果曲率出现跳变,车辆会「猛地打方向」,非常危险。

3.4 运动学微分方程

把上面这些整合起来,就得到了车辆运动学的微分方程:

dx/dt = v * cos(θ)
dy/dt = v * sin(θ)
dθ/dt = v * tan(δ) / L

这个方程组就是大名鼎鼎的「自行车模型」。它虽然简单,但非常实用。我在做路径跟踪控制时,90% 的场景都用这个模型。只有遇到高速紧急避障时,才会切换到动力学模型。

这里有个小技巧:在实际代码中,我们通常用离散化的形式:

x(k+1) = x(k) + v * cos(θ) * dt
y(k+1) = y(k) + v * sin(θ) * dt
θ(k+1) = θ(k) + v * tan(δ) / L * dt

dt 是控制周期,通常取 0.01s 到 0.1s 之间。我个人习惯用 0.02s,也就是 50Hz 的控制频率,既保证了精度,又不会给计算带来太大负担。

3.5 曲率与路径跟踪的关系

最后,我想聊聊曲率在实际工程中的意义。在路径跟踪中,我们经常用「预瞄距离」的概念。说白了,就是看前方一段距离内的路径曲率,然后提前打方向盘。

我曾经做过一个对比实验:

控制策略 曲率利用方式 跟踪误差(cm)
纯比例控制 仅用当前横向偏差 ±15
前馈+反馈 利用前方曲率做前馈 ±5
MPC(模型预测控制) 利用未来一段曲率序列 ±2

结果很明显:曲率信息用得越充分,跟踪精度越高。所以,我建议你在做路径跟踪时,一定要把曲率这个「先验信息」用起来,别只盯着当前的偏差。

个人经验: 在实车调试时,我习惯先用手动驾驶采集一段轨迹,然后离线分析曲率变化。如果发现曲率变化率(即曲率对弧长的导数)超过 0.1 m⁻²,说明这段路径设计得不够平滑,需要重新优化。这个阈值是我在多个项目中总结出来的,你可以参考。

好了,这一章的内容就到这里。运动学虽然基础,但它是整个自动驾驶控制理论的起点。下一章我们会引入动力学,到时候你会看到,很多运动学中的假设会被放宽,模型也会变得更复杂。但别担心,有了今天的基础,后面会轻松很多。