2、车辆运动学模型:自行车模型、阿克曼转向几何、运动学方程推导

好,咱们进入正题。这一章聊的是车辆运动学模型,说白了就是研究车怎么动起来的几何关系。你想想看,一辆车在低速行驶时,轮胎的侧偏特性还没那么明显,这时候用运动学模型就够用了。我个人习惯把运动学模型当作控制设计的“第一性原理”——先把这个搞透,后面再加动力学细节就顺了。

2.1 自行车模型:把四轮简化成两轮

为什么叫自行车模型?因为把四个轮子简化成两个了。前轮和后轮各一个,想象成一辆自行车在跑。这个简化在低速场景下非常实用。

我在项目中遇到过一个问题:用四轮模型做路径跟踪,参数调得头大。后来换成自行车模型,反而效果更好。为什么?因为参数少了,鲁棒性反而上来了。

自行车模型的核心假设有三条:

  • 车辆左右对称,忽略左右轮的差异
  • 前后轮各用一个等效轮代替
  • 车辆在平面内运动,不考虑垂向跳动

嗯,这里要注意:这个模型只适用于低速(一般小于5m/s)。高速时轮胎侧偏不可忽略,就得用动力学模型了。

2.2 阿克曼转向几何:让轮子乖乖转弯

阿克曼转向几何,说白了就是解决一个问题:转弯时内侧轮和外侧轮的转角不一样。你想想看,如果四个轮子都平行转向,那转弯时轮胎会打滑,磨损严重。

阿克曼原理的核心是:所有车轮的转向中心交于一点。这个点就是瞬时转动中心。

关键公式:

内轮转角 δi 和外轮转角 δo 满足:

cot(δ_o) - cot(δ_i) = W / L

其中 W 是轮距,L 是轴距。

我记得有一次调试实车,发现转弯半径总是不对。查了半天,原来是阿克曼几何没校准好。后来用这个公式反算了一下,发现内外轮转角差了2度。调完之后,路径跟踪精度直接提升了一个量级。

实战小技巧:

在代码实现中,我建议直接用等效前轮转角 δ 来近似。因为自行车模型已经简化了,没必要再纠结内外轮差异。但如果你做的是四轮独立转向,那就得老老实实算阿克曼几何。

2.3 运动学方程推导:从几何到数学

好,现在咱们把自行车模型和阿克曼几何结合起来,推导运动学方程。这个过程其实不复杂,就是几何关系加一点微积分。

先定义几个状态量:

  • x, y:车辆后轴中心的位置
  • θ:车辆航向角(车头朝向)
  • v:后轴中心的速度(纵向速度)
  • δ:前轮转角
  • L:轴距

运动学方程长这样:

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

这三个方程,前两个是位置变化,第三个是航向角变化。你想想看,航向角变化率其实就是角速度,等于 v * tan(δ) / L。这个公式很直观:轴距越长,转弯越慢;转角越大,转弯越快。

避坑指南:

我曾经在离散化时吃过亏。直接用欧拉法离散化,步长取大了,结果仿真发散。后来改用二阶龙格库塔法才稳定。建议你离散化时步长不要超过0.01秒,尤其是高速场景。

2.4 离散化与代码实现

实际工程中,我们用的是离散形式。假设采样时间为 Δt,那么:

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

这个离散模型就是后面做MPC、LQR控制的基础。我个人习惯在代码里封装成一个函数,方便调用:

def bicycle_model(state, control, dt, L):
    x, y, theta = state
    v, delta = control
    
    x_next = x + v * cos(theta) * dt
    y_next = y + v * sin(theta) * dt
    theta_next = theta + v * tan(delta) / L * dt
    
    return [x_next, y_next, theta_next]

嗯,这里要注意:输入的控制量是 v 和 δ,但实际车辆的控制量是油门/刹车和方向盘转角。中间还需要一个映射关系,这个咱们后面再聊。

2.5 模型局限性

任何模型都有局限性,运动学模型也不例外。我总结了几点:

局限性 影响 解决方案
忽略轮胎侧偏 高速时模型不准 改用动力学模型
忽略车辆惯性 急加速/急减速时误差大 加入动力学补偿
假设纯滚动 湿滑路面失效 增加摩擦系数估计

说白了,运动学模型就是个“几何玩具”。在低速、干燥路面、小转角场景下非常好用。但如果你要做高速变道、紧急避障,那就得升级到动力学模型了。

我的建议:

做控制设计时,先用运动学模型快速验证算法。等算法跑通了,再换成动力学模型做精细化调参。这样能省不少时间。

2.6 小结

这一章咱们聊了三个核心内容:自行车模型的简化思路、阿克曼转向几何的原理、运动学方程的推导与离散化。这些都是后面做横纵向控制的基础,一定要吃透。

下一章咱们会聊动力学模型,到时候会引入轮胎模型、侧偏刚度这些概念。嗯,那才是真正考验功底的地方。

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