运动学基础:从质点到机器人
做轨迹规划这些年,我最大的体会是——不懂运动学,后面全是空中楼阁。你想想看,连你的机器人怎么动起来的都搞不清楚,怎么跟动态障碍物博弈?
这一章,咱们把运动学基础打扎实。从最简单的质点,到刚体,再到实际工程里最常见的阿克曼和差速模型。嗯,都是干货。
一、质点运动学:最朴素的起点
说白了,质点就是把物体看成一个点。不考虑形状,不考虑旋转,只关心它在哪儿和怎么动。
我个人习惯用状态向量来表示:
状态 = [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、扫地机、平衡车 | 中高 |
六、知识体系结构图
下面这张图,是我自己梳理的运动学知识体系。你照着这个框架学,不会乱。
选型建议:做低速AGV选差速模型,做高速无人车选阿克曼模型,做无人机选刚体模型。别搞混了,否则后面博弈算法会出大问题。
好了,运动学基础就讲到这里。这些模型是后续所有轨迹规划和博弈算法的底层支撑。你花时间把这一章吃透,后面学起来会轻松很多。
可可精品资料库