运动学基础:从质点到机器人

做轨迹规划这些年,我最大的体会是——不懂运动学,后面全是空中楼阁。你想想看,连你的机器人怎么动起来的都搞不清楚,怎么跟动态障碍物博弈?

这一章,咱们把运动学基础打扎实。从最简单的质点,到刚体,再到实际工程里最常见的阿克曼和差速模型。嗯,都是干货。

一、质点运动学:最朴素的起点

说白了,质点就是把物体看成一个点。不考虑形状,不考虑旋转,只关心它在哪儿和怎么动。

我个人习惯用状态向量来表示:

状态 = [x, y, vx, vy]   # 二维平面
或者
状态 = [x, y, θ, v]      # 带朝向和速度

核心公式就两个:

  • 位置更新:x(t+Δt) = x(t) + vx * Δt
  • 速度更新:vx(t+Δt) = vx(t) + ax * Δt

我在项目中遇到过一个问题:用质点模型做路径预测,结果在弯道处误差特别大。为什么?因为忽略了车辆的转向特性。所以记住——质点模型只适合直道或低速场景。

避坑指南:我曾经用质点模型做高速避障,结果预测轨迹和实际差了2米多。后来换成刚体模型才解决问题。别偷懒,该用刚体就用刚体。

二、刚体运动学:加上旋转

刚体比质点多了一个维度——朝向角 θ。你想想看,一辆车不光要走到某个位置,还得车头朝对方向才能停进去。

刚体运动学状态通常写成:

状态 = [x, y, θ, v, ω]   # ω 是角速度

运动方程:

  • dx/dt = v * cos(θ)
  • dy/dt = v * sin(θ)
  • dθ/dt = ω

这个模型在低速、大曲率场景下特别好用。比如自动泊车,用刚体模型做轨迹规划,效果比质点模型好太多。

我的经验:刚体模型有个隐含假设——车辆可以原地旋转。但实际车辆不行。所以刚体模型更适合描述无人机、全向轮机器人。

三、阿克曼模型:汽车转向的真相

这才是真正的车辆运动学。阿克曼转向结构,说白了就是前轮转向、后轮驱动。前轮转角决定了转弯半径。

状态量:

状态 = [x, y, θ, v, δ]   # δ 是前轮转角

运动方程:

dx/dt = v * cos(θ)
dy/dt = v * sin(θ)
dθ/dt = v * tan(δ) / L   # L 是轴距
dδ/dt = ω_steer          # 转向角速度

这里有个关键点:转弯半径 R = L / tan(δ)。前轮转角越大,转弯半径越小。

注意:阿克曼模型假设车轮纯滚动、无侧滑。实际轮胎有侧偏角,高速时误差会变大。我建议在速度 < 5m/s 时放心用,再高就要考虑动力学了。

我记得有一次做园区无人车,用阿克曼模型规划路径,结果在急弯处老是偏离。后来发现是轴距参数标定不准。嗯,标定这事儿,真不能马虎。

四、差速模型:原地转向的利器

差速模型常见于两轮平衡车、扫地机器人、AGV。它的特点是:左右轮独立驱动,通过速度差实现转向。

状态量:

状态 = [x, y, θ, v, ω]

运动方程:

dx/dt = v * cos(θ)
dy/dt = v * sin(θ)
dθ/dt = ω

其中:
v = (v_right + v_left) / 2
ω = (v_right - v_left) / W   # W 是轮距

差速模型最大的优势是可以原地旋转(v=0, ω≠0)。这在狭窄空间里特别有用。

实战经验:我做仓储AGV时,差速模型配合纯追踪算法,在1.2米宽的通道里能完成90度转弯。但要注意——差速模型在高速时容易打滑,因为左右轮速度差会导致轮胎滑移。

五、四种模型对比

模型 状态维度 能否原地旋转 适用场景 精度等级
质点模型 2~4 否 直道、低速、简单预测 低
刚体模型 4~5 是(假设) 无人机、全向轮、低速泊车 中
阿克曼模型 5 否 汽车、轮式机器人、园区物流 高
差速模型 4~5 是 AGV、扫地机、平衡车 中高

六、知识体系结构图

下面这张图,是我自己梳理的运动学知识体系。你照着这个框架学,不会乱。

运动学基础 质点运动学 刚体运动学 阿克曼模型 差速模型 位置、速度、加速度 直线运动、抛物线 位置 + 朝向角 θ 线速度 + 角速度 前轮转角 δ 转弯半径 R = L/tan(δ) 左右轮独立驱动 原地旋转能力 选择模型的关键:速度、转向能力、计算资源
选型建议:做低速AGV选差速模型,做高速无人车选阿克曼模型,做无人机选刚体模型。别搞混了,否则后面博弈算法会出大问题。

好了,运动学基础就讲到这里。这些模型是后续所有轨迹规划和博弈算法的底层支撑。你花时间把这一章吃透,后面学起来会轻松很多。

可可精品资料库