4、坐标系定义:世界坐标系、机器人坐标系、轮子坐标系之间的转换关系

全向轮底盘的运动控制,本质上是一个坐标变换问题。无论是遥控手柄给出的速度指令,还是导航算法规划出的路径点,最终都要转化为四个麦克纳姆轮各自的转速。这一转化过程跨越了三个层次:世界坐标系描述机器人在空间中的位置与姿态,机器人坐标系描述底盘自身的运动状态,轮子坐标系则描述每个轮毂电机的旋转速度。理解三者之间的数学映射关系,是正确配置底盘参数、调试运动控制算法、排查异常抖动或漂移问题的前提。本章将系统梳理这三个坐标系的定义方式、转换矩阵的推导过程,以及在实际工程中常见的坐标系配置误区。

世界坐标系 X_W / Y_W / θ_W 固定于地面/场地 原点:场地角点或起点 机器人坐标系 X_R / Y_R / θ_R 固连于底盘中心 X_R指向车头方向 轮子坐标系 ω₁ / ω₂ / ω₃ / ω₄ 每个轮毂电机独立 单位:rad/s 或 rpm 旋转矩阵 R(θ) 平移 + 旋转 运动学逆解 4×3 雅可比矩阵 坐标变换链路 世界速度 (Vx_W, Vy_W, ω_W) → 机器人速度 (Vx_R, Vy_R, ω_R) → 轮子转速 (ω₁~ω₄) 正向:轮子转速 → 机器人速度 → 世界速度(用于里程计推算) 逆向:世界速度 → 机器人速度 → 轮子转速(用于运动控制) 关键参数:轮距 L、轴距 W、轮子半径 r、安装角度(麦克纳姆轮为 45°)

上图展示了三个坐标系之间的整体转换链路。世界坐标系是全局参考,机器人坐标系是运动控制的中间层,轮子坐标系是最终执行层。下面分别对每个坐标系进行精确定义,并推导它们之间的转换矩阵。

4.1 世界坐标系与机器人坐标系的定义

世界坐标系(World Frame),记为 {W},是一个固定于地面的惯性参考系。通常以机器人启动位置或场地某个角点为原点,X轴指向场地长边方向,Y轴指向场地宽边方向,Z轴垂直地面向上(在平面运动分析中忽略Z轴)。世界坐标系不随机器人运动而改变,是导航地图、路径规划、定位系统(如激光雷达SLAM、视觉定位)的基准。

机器人坐标系(Robot Frame),记为 {R},是一个固连于机器人底盘的动坐标系。原点位于底盘几何中心(通常也是旋转中心),X轴指向机器人正前方,Y轴指向左侧(遵循右手定则),Z轴垂直向上。机器人坐标系随底盘平移和旋转,是运动控制算法直接使用的坐标系。

两者之间的转换关系为:

设世界坐标系下机器人位置为 (x_W, y_W, θ_W)
其中 θ_W 为机器人航向角(X_R 与 X_W 的夹角,逆时针为正)

从世界速度到机器人速度的转换:
[Vx_R]   [cosθ_W   sinθ_W   0]   [Vx_W]
[Vy_R] = [-sinθ_W   cosθ_W   0] × [Vy_W]
[ω_R ]   [  0        0       1]   [ω_W ]

从机器人速度到世界速度的转换(逆矩阵):
[Vx_W]   [cosθ_W  -sinθ_W   0]   [Vx_R]
[Vy_W] = [sinθ_W   cosθ_W   0] × [Vy_R]
[ω_W ]   [  0        0       1]   [ω_R ]

注意:这里的旋转矩阵是正交矩阵,其逆矩阵等于转置矩阵。在实际代码中,通常使用 std::cos 和 std::sin 函数计算,并注意角度单位(弧度 vs 角度)。

4.2 机器人坐标系到轮子坐标系的运动学分解

麦克纳姆轮底盘的每个轮子由独立的电机驱动,轮子坐标系就是每个轮毂电机的旋转轴坐标系。对于标准的四轮麦克纳姆轮底盘(轮子呈矩形布置),从机器人速度到四个轮子转速的映射关系由底盘几何参数和轮子安装方向决定。

设底盘参数:

  • L:前后轮距(轴距),即前后轮中心之间的距离
  • W:左右轮距(轮距),即左右轮中心之间的距离
  • r:轮子半径(含辊子,通常取等效半径)
  • 轮子编号:FL(左前)、FR(右前)、RL(左后)、RR(右后)

麦克纳姆轮的关键特性是辊子与轮子轴线成 45° 角,且左轮和右轮的辊子方向相反(左轮辊子轴线指向左前,右轮辊子轴线指向右前)。这使得每个轮子既能产生沿轮子滚动方向的力,也能产生垂直于滚动方向的侧向力,从而实现全向运动。

运动学逆解公式(从机器人速度到轮子转速):

ω_FL = (1/r) × (Vx_R - Vy_R - (L + W) × ω_R)
ω_FR = (1/r) × (Vx_R + Vy_R + (L + W) × ω_R)
ω_RL = (1/r) × (Vx_R + Vy_R - (L + W) × ω_R)
ω_RR = (1/r) × (Vx_R - Vy_R + (L + W) × ω_R)

其中:
Vx_R:机器人坐标系下的前进速度(m/s)
Vy_R:机器人坐标系下的横向速度(m/s,向左为正)
ω_R:机器人自转角速度(rad/s,逆时针为正)
ω_FL 等:各轮转速(rad/s,正值为轮子向前滚动)

注意:上述公式假设轮子编号和正方向定义如上。不同厂商的底盘可能定义不同,需要根据实际硬件调整符号。更通用的形式是使用雅可比矩阵:

[ω_FL]   [1  -1  -(L+W)]   [Vx_R]
[ω_FR] = [1   1   (L+W)] × [Vy_R]
[ω_RL]   [1   1  -(L+W)]   [ω_R ]
[ω_RR]   [1  -1  (L+W)]

这个 4×3 矩阵就是麦克纳姆轮底盘的雅可比矩阵(忽略 1/r 系数)。正向运动学(从轮子转速推算机器人速度)则使用该矩阵的伪逆,通常通过最小二乘法求解。

4.3 坐标转换的工程实现与参数标定

在实际工程中,坐标转换不仅仅是数学公式,还涉及参数标定、单位统一和误差处理。以下是标准操作流程:

  1. 确定底盘几何参数:使用游标卡尺或激光测距仪测量 L 和 W 的精确值。注意测量的是轮子与地面接触点的中心距离,而非轮子外沿距离。
  2. 确定轮子半径 r:麦克纳姆轮的等效半径需要考虑辊子压缩变形,通常取理论半径的 0.95~0.98 倍。可以通过让机器人直线行驶 1 米,记录编码器脉冲数来反推实际半径。
  3. 验证坐标系方向:在机器人坐标系中,X 轴正方向必须与底盘车头方向一致。如果安装的电机方向相反,需要在代码中取反。
  4. 编写转换模块:建议将坐标转换封装为独立函数,输入为世界速度或机器人速度,输出为四个轮子的目标转速(rpm 或 rad/s)。
  5. 测试与校准:让机器人分别执行纯平移(X方向、Y方向)和纯旋转,观察实际运动轨迹是否与预期一致。如果出现斜向漂移,说明 L/W 比例或符号有误。
经验提醒:在调试初期,建议先用极低速度(如 0.1 m/s)测试单一方向运动。例如只给 Vx_R 赋值,观察机器人是否沿 X_R 方向直线前进。如果出现横向偏移,检查 Vy_R 的符号是否被错误地加入了公式。

4.4 案例拆解:从世界坐标路径到轮速指令

假设一个巡检机器人需要从世界坐标点 A(1.0, 2.0) 移动到点 B(3.0, 4.0),当前机器人位姿为 (x=1.0, y=2.0, θ=30°)。底盘参数:L=0.4m,W=0.3m,r=0.05m。

步骤1:计算世界坐标系下的目标速度

假设运动控制周期为 100ms,期望在 2 秒内完成移动。则平均速度:

Vx_W = (3.0 - 1.0) / 2.0 = 1.0 m/s
Vy_W = (4.0 - 2.0) / 2.0 = 1.0 m/s
ω_W = 0(不旋转)

步骤2:转换到机器人坐标系

θ = 30° = π/6 rad
cosθ = 0.866, sinθ = 0.5

Vx_R = 0.866 × 1.0 + 0.5 × 1.0 = 1.366 m/s
Vy_R = -0.5 × 1.0 + 0.866 × 1.0 = 0.366 m/s
ω_R = 0

步骤3:计算轮子转速

L+W = 0.4 + 0.3 = 0.7

ω_FL = (1/0.05) × (1.366 - 0.366 - 0) = 20 × 1.0 = 20 rad/s
ω_FR = (1/0.05) × (1.366 + 0.366 + 0) = 20 × 1.732 = 34.64 rad/s
ω_RL = (1/0.05) × (1.366 + 0.366 - 0) = 20 × 1.732 = 34.64 rad/s
ω_RR = (1/0.05) × (1.366 - 0.366 + 0) = 20 × 1.0 = 20 rad/s

步骤4:转换为电机指令

如果电机驱动器接受 rpm 指令,则:

rpm = rad/s × 60 / (2π) ≈ rad/s × 9.55
FL: 20 × 9.55 ≈ 191 rpm
FR: 34.64 × 9.55 ≈ 331 rpm
RL: 34.64 × 9.55 ≈ 331 rpm
RR: 20 × 9.55 ≈ 191 rpm

结果分析:由于机器人需要同时向前和向右移动(在世界坐标系下),而机器人自身有 30° 航向角,因此左右轮转速不同。右侧轮子转速高于左侧,这是因为机器人需要产生一个向左的横向速度分量来抵消世界坐标系下的 Y 方向运动。

风险提示:上述计算假设轮子与地面无滑动。实际中,麦克纳姆轮的辊子与地面接触存在微小滑动,导致实际运动速度略低于理论值。建议在速度闭环中加入积分校正,或使用里程计反馈进行实时补偿。

4.5 常见误区与总结复盘

误区类型 具体表现 后果 解决方案
坐标系方向混淆 将机器人坐标系的 Y 轴正方向定义为右方 横向运动方向相反,底盘斜向漂移 严格遵循右手定则,X 向前,Y 向左
轮子编号错误 FL 与 FR 的公式互换 旋转运动时底盘打转或抖动 在轮子上做标记,逐一测试每个轮子的正转方向
L 和 W 测量不准确 使用轮子外沿距离代替中心距离 旋转半径偏差,圆弧轨迹不闭合 测量轮子与地面接触点的中心距离
忽略轮子半径修正 直接使用理论半径 实际速度偏慢,里程计累积误差 通过编码器标定实际等效半径
角度单位混用 三角函数中使用角度而非弧度 转换结果完全错误 统一使用弧度,或在调用三角函数前转换

总结复盘:坐标系转换是麦克纳姆轮底盘控制的核心数学基础。世界坐标系提供全局参考,机器人坐标系是运动控制的中间层,轮子坐标系是执行层。三者之间的转换关系可以通过旋转矩阵和雅可比矩阵精确描述。在实际工程中,除了掌握公式推导,更重要的是做好参数标定、方向验证和单位统一。建议在代码中增加坐标转换的单元测试,例如输入已知速度,验证输出轮速是否满足预期,再通过实际运动测试闭环验证。

核心要点:坐标转换的正确性直接决定底盘运动精度。每次修改底盘机械结构(如更换轮子、调整轮距)后,都必须重新标定 L、W、r 参数。在调试阶段,使用低速、单轴运动测试可以快速定位坐标系配置错误。