坐标系与运动学基础
各位同学,咱们今天聊点硬核的。坐标系和运动学,说白了就是给底盘一个「世界观」。我刚开始做底盘控制时,觉得这东西太理论了,不就是几个坐标轴嘛。直到有一次实车调试,车死活跑不直,查了三天才发现是坐标系定义反了……嗯,从那以后我再也不敢小看这章内容了。
世界坐标系与车体坐标系
先搞清楚两个坐标系的关系。世界坐标系是固定的,你可以想象成地图上的经纬度。车体坐标系是跟着车跑的,原点在车辆质心,x轴朝前,y轴朝左,z轴朝上(右手系)。
我个人习惯把世界坐标系叫「全局视角」,车体坐标系叫「自我视角」。你想想看,GPS给的是世界坐标,但底盘控制需要的是车体坐标——这中间就得做坐标变换。
坐标变换:从世界到车体
坐标变换其实就三步:平移 + 旋转。假设世界坐标系下有个点 P_w,车体坐标系原点在世界系下的位置是 O_v,车体朝向角是 θ。那么:
P_v = R(θ) * (P_w - O_v)
其中旋转矩阵 R(θ) = [cosθ sinθ 0;
-sinθ cosθ 0;
0 0 1]
我在项目中遇到过一个问题:IMU安装偏了5度,结果所有坐标变换都错了。后来加了个标定步骤,用最小二乘法拟合出安装角度偏差。嗯,这里要注意——传感器安装误差是工程里最常见的坑。
刚体运动学:线速度与角速度
底盘是个刚体,它的运动可以分解为平动和转动。平动用线速度 v 描述,转动用角速度 ω 描述。这两者之间有个重要关系:
v = ω × r
其中 r 是旋转半径。这个公式太重要了,阿克曼转向和差速转向都靠它推导。
我记得有一次做路径跟踪,控制量是 v 和 ω,但执行器只能控制轮速和转向角。怎么映射?就是靠这个公式反推。说白了,运动学就是搭了一座桥,把「想要的速度」变成「能执行的指令」。
| 物理量 | 符号 | 单位 | 说明 |
|---|---|---|---|
| 线速度 | v | m/s | 车辆质心沿前进方向的速度 |
| 角速度 | ω | rad/s | 车辆绕垂直轴的旋转速度 |
| 转弯半径 | R | m | v / ω,注意 ω=0 时 R 无穷大 |
阿克曼转向几何
阿克曼转向是汽车最经典的转向方式。它的核心思想是:所有车轮的转向中心交于一点(后轴延长线上)。这样车轮才能纯滚动,不产生侧滑。
内轮转角 δ_i 和外轮转角 δ_o 的关系:
cot(δ_o) - cot(δ_i) = L / B
其中 L 是轴距,B 是轮距
你想想看,如果内外轮转角一样,转弯时内侧轮就会打滑。我在做低速泊车时遇到过这个问题——轮胎吱吱响,就是阿克曼几何没调好。
差速转向模型
差速转向常见于履带车、AGV、双轮平衡车。它没有转向机构,靠左右轮的速度差实现转向。
模型很简单:
v = (v_r + v_l) / 2
ω = (v_r - v_l) / B
其中 v_r 是右轮速度,v_l 是左轮速度,B 是轮距
这个模型有个隐含条件:车轮与地面无滑动。实际上,差速转向必然伴随滑动,尤其是原地旋转时。我做过一个AGV项目,原地转圈时定位误差累积很快,后来加了滑动补偿才解决。
- 阿克曼转向:适合高速、低滑移,但机械结构复杂
- 差速转向:结构简单、可原地旋转,但轮胎磨损大
知识体系总览
下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一遍应该能明白坐标系、运动学、转向模型之间的关系。
好了,坐标系和运动学就聊到这儿。这些东西看着简单,但工程里处处是坑。你写代码时多想想「这个坐标是在哪个系下的」「这个速度是线速度还是角速度」,能省不少调试时间。