3. 运动学模型:差速驱动机器人运动学、阿克曼转向模型、速度与角速度约束
好,咱们进入第三个核心话题——运动学模型。
说白了,机器人怎么动,完全取决于它的轮子怎么摆。你写控制算法,如果连底盘怎么转弯都搞不清楚,那规划出来的路径就是空中楼阁。我个人习惯,拿到一台新机器人,第一件事就是看它的运动学模型。这决定了后面所有规划策略的边界。
3.1 差速驱动机器人运动学
差速驱动,最常见,也最直观。两个主动轮,一个万向轮。靠左右轮的速度差来实现转向。
我当年刚入行时,在AGV项目里第一次接触差速模型。当时觉得很简单,不就是左轮转快点就右拐嘛。结果一跑起来,轨迹全是锯齿状的。为什么?因为忽略了轮距和瞬时旋转中心(ICR)的关系。
差速驱动的核心公式其实就三个:
- 线速度 v:v = (v_r + v_l) / 2
- 角速度 ω:ω = (v_r - v_l) / L
- 转弯半径 R:R = v / ω
其中 v_r 和 v_l 是左右轮速度,L 是轮距。
你想想看,如果 v_r = v_l,那就是直线。如果 v_r = -v_l,那就是原地旋转。这个模型在低速下非常准,但一旦速度快了,轮胎打滑,模型就开始漂了。
关键点:差速驱动的瞬时运动是纯几何关系。它没有转向机构,所以不能像汽车那样有固定的转弯半径。它的转弯半径是连续的,从0到无穷大。
3.2 阿克曼转向模型
阿克曼模型,就是汽车模型。前轮转向,后轮驱动。这个模型比差速复杂一点,但更符合我们日常的直觉。
阿克曼转向的核心是:所有车轮的轴线必须交于一点,这个点就是瞬时旋转中心(ICR)。
我记得有一次做无人车项目,团队里有人直接用自行车模型来近似阿克曼。结果在低速泊车时还行,一上高速,轨迹偏差大到离谱。为什么?因为自行车模型忽略了内外轮转角差。
阿克曼模型的几何关系:
- 前轮转角 δ:决定了转弯半径 R = L / tan(δ)
- 内外轮转角差:δ_inner > δ_outer,差值由轮距和轴距决定
- 后轮速度 v:决定了前进速度,前轮只负责转向
这里有个坑,我踩过。阿克曼模型在低速时,转弯半径和转角是线性关系。但速度一高,轮胎侧偏角就出来了,实际转弯半径会比几何计算的大。这叫不足转向。你规划时如果没考虑这个,路径跟踪就会偏外。
我的经验:在低速(< 1m/s)场景下,直接用几何阿克曼模型就够了。但速度超过2m/s,我建议加上一个侧偏角补偿项,或者直接用动力学模型。
3.3 速度与角速度约束
模型有了,但机器人不是万能的。它有物理极限。
速度约束和角速度约束,说白了就是:你规划出来的轨迹,机器人能不能跑出来?
我见过太多人,规划时只考虑几何路径,完全不管机器人的加减速能力。结果路径是光滑的,但机器人一跑就抖,或者直接冲出边界。
常见的约束包括:
- 最大线速度 v_max:电机和地面摩擦共同决定
- 最大角速度 ω_max:差速驱动由电机转速决定,阿克曼由转向电机速度决定
- 最大加速度 a_max:电机扭矩和惯性决定
- 最大角加速度 α_max:转向机构的响应速度
举个例子,差速驱动:
v_max = min(v_r_max, v_l_max)
ω_max = (v_r_max - v_l_max) / L
# 注意:v_max 和 ω_max 不是独立的
# 它们受限于左右轮的速度极限
阿克曼模型更复杂一点:
v_max = 后轮驱动电机极限
ω_max = v_max * tan(δ_max) / L
# 但实际中,ω_max 还受转向电机速度限制
# 所以 ω_max = min(v_max * tan(δ_max) / L, ω_steer_max)
注意:速度约束和角速度约束是耦合的。你不能同时达到最大线速度和最大角速度。这在规划时必须考虑进去。我曾经在项目中忽略了这一点,结果规划出的轨迹在高速转弯时直接让电机过载。
3.4 三种模型的对比与选择
为了让你更直观地理解,我整理了一个对比表:
| 特性 | 差速驱动 | 阿克曼转向 | 全向驱动 |
|---|---|---|---|
| 转弯方式 | 差速转向 | 前轮转向 | 独立控制 |
| 最小转弯半径 | 0(原地旋转) | L / tan(δ_max) | 0 |
| 运动连续性 | 连续 | 连续但受转向限制 | 连续 |
| 控制复杂度 | 低 | 中 | 高 |
| 典型应用 | 室内AGV、扫地机 | 无人车、物流车 | 全向移动平台 |
我个人建议:如果你的场景需要频繁原地转向,选差速。如果追求高速稳定性,选阿克曼。全向驱动虽然灵活,但控制复杂,而且轮子磨损快。
3.5 知识体系结构图
下面这张图,把本章的核心逻辑串起来了。你可以把它当作一个快速索引。
嗯,这张图把三个模型和它们的约束关系都串起来了。你写规划算法时,可以对照着看,确保每一步都在物理可行域内。
总结一下:运动学模型是规划的底层约束。差速驱动灵活但高速不稳,阿克曼稳定但转弯半径受限。速度与角速度约束是耦合的,规划时必须同时考虑。我建议你在实际项目中,先根据场景选模型,再根据模型定约束,最后才写规划算法。顺序别搞反了。
可可精品资料库