数学基础(上):向量与坐标变换基础

Stewart平台的运动学分析,无论是正解还是逆解,本质上都是在回答两个问题:“动平台上的点在哪里?”和“动平台相对于静平台是如何摆放的?”。要精确回答这两个问题,我们离不开两样数学工具——向量与坐标变换。向量帮助我们描述位置、位移和力的方向;坐标变换则帮助我们建立静平台坐标系与动平台坐标系之间的桥梁。本章将系统梳理点、向量、点积、叉积、模长、单位向量等基本概念,并深入讲解三维空间中的平移与旋转表示方法,为后续推导Stewart平台的运动学方程打下坚实的数学地基。

向量基础 点 P(x, y, z) 向量 v = P - O 模长 |v| = √(x²+y²+z²) 单位向量 v̂ = v / |v| 点积 a·b = |a||b|cosθ → 投影、夹角判断 叉积 a×b = |a||b|sinθ·n̂ → 法向量、力矩、面积 右手定则确定叉积方向 坐标变换 平移变换 P' = P + t t = [tx, ty, tz]ᵀ 平移向量 旋转变换 P' = R · P R:3×3 旋转矩阵 绕X/Y/Z轴:Rx, Ry, Rz 正交矩阵:RᵀR = I, det(R)=1 齐次变换矩阵 T = [R t; 0 1] 一次完成旋转+平移 Stewart平台应用 静平台坐标系 {B} 铰点位置:B₁, B₂, ..., B₆ 动平台坐标系 {P} 铰点位置:P₁, P₂, ..., P₆ T = (R, t) 腿长向量 Lᵢ = t + R·Pᵢ - Bᵢ 逆解:已知T求|Lᵢ| 正解:已知|Lᵢ|求T

2.1 点与向量:从几何直觉到代数表达

2.1.1 核心原理:点与向量的本质区别

在三维空间中,点(Point)是空间中的一个位置,它没有大小和方向,只有坐标值。例如,静平台上第i个铰点可以表示为 \( B_i = (x_{Bi}, y_{Bi}, z_{Bi}) \)。而向量(Vector)则是一个具有大小和方向的量,它描述的是从一点到另一点的位移或空间中的某种作用(如力、速度)。在Stewart平台中,从静平台铰点 \( B_i \) 指向动平台铰点 \( P_i \) 的向量 \( \vec{L_i} \) 恰好就是第i根驱动杆的腿长向量。

需要特别强调的是:点没有方向,向量没有固定位置。同一个向量可以平移到空间中的任何位置而不改变其含义。这一区别在坐标变换中至关重要——当我们对动平台进行旋转时,旋转的是向量方向;当我们对动平台进行平移时,移动的是点的位置。

2.1.2 操作流程:向量的基本运算

在Stewart平台的运动学推导中,最常用的向量运算包括以下几种:

  • 向量加减法:对应分量相加减。例如,腿长向量 \( \vec{L_i} = \vec{P_i} - \vec{B_i} \),其中 \( \vec{P_i} \) 是动平台铰点在静坐标系中的位置向量,\( \vec{B_i} \) 是静平台铰点位置向量。
  • 模长计算:\( |\vec{L_i}| = \sqrt{L_{ix}^2 + L_{iy}^2 + L_{iz}^2} \),这直接对应驱动杆的实际长度,是逆解的核心输出。
  • 单位向量:\( \hat{L_i} = \vec{L_i} / |\vec{L_i}| \),表示腿的方向,在计算关节角度或力分析时非常有用。

2.1.3 案例拆解:从铰点坐标到腿长向量

假设静平台铰点 \( B_1 = (100, 0, 0) \) mm,动平台铰点在静坐标系中的位置为 \( P_1 = (120, 30, 400) \) mm,则腿长向量为:

L₁ = P₁ - B₁ = (120-100, 30-0, 400-0) = (20, 30, 400) mm
|L₁| = √(20² + 30² + 400²) = √(400+900+160000) = √161300 ≈ 401.6 mm

这个401.6mm就是驱动杆需要达到的长度。在实际控制中,我们还需要将杆长转换为伺服电机或液压缸的伸缩量,这涉及机械传动比,但数学基础就是模长计算。

经验提醒:在编程实现时,建议将点与向量封装为不同的数据类型,避免混淆。例如在C++中可以用结构体区分 Point3D 和 Vector3D,虽然它们内部都是三个浮点数,但语义不同,运算规则也不同。

2.2 点积与叉积:向量运算的两大利器

2.2.1 核心原理:点积与叉积的几何意义

点积(Dot Product),又称内积,定义为 \( \vec{a} \cdot \vec{b} = |\vec{a}||\vec{b}|\cos\theta \),其中 \( \theta \) 是两向量之间的夹角。点积的结果是一个标量。在Stewart平台中,点积常用于判断两个向量是否垂直(点积为0)、计算投影长度、以及在力分析中计算力在某个方向上的分量。

叉积(Cross Product),又称外积,定义为 \( \vec{a} \times \vec{b} = |\vec{a}||\vec{b}|\sin\theta \cdot \hat{n} \),其中 \( \hat{n} \) 是垂直于 \( \vec{a} \) 和 \( \vec{b} \) 所在平面的单位法向量,方向由右手定则确定。叉积的结果是一个向量。在Stewart平台中,叉积用于计算力矩、求平面的法向量、以及判断空间几何关系。

2.2.2 判断方法:何时使用点积,何时使用叉积

运算类型 输入 输出 典型应用场景
点积 两个向量 标量 投影计算、夹角判断、功的计算
叉积 两个向量 向量(法向量) 力矩计算、平面法向量、面积计算

一个实用的判断标准是:如果你关心的是“有多少分量沿着某个方向”,用点积;如果你关心的是“垂直于两个向量的方向”,用叉积。

2.2.3 实战场景:利用叉积求动平台法向量

在Stewart平台的正解问题中,我们经常需要从动平台上的三个非共线点来确定平台的姿态。假设动平台上三个点 \( P_1, P_2, P_3 \) 在静坐标系中的坐标已知,则平台平面的法向量可以通过叉积求得:

v₁ = P₂ - P₁
v₂ = P₃ - P₁
n = v₁ × v₂   // 法向量
n̂ = n / |n|   // 单位法向量

这个单位法向量实际上就是动平台坐标系Z轴在静坐标系中的方向余弦向量,是旋转矩阵的第三列。通过类似方法,我们可以逐步恢复出完整的旋转矩阵。

风险提示:叉积不满足交换律,\( \vec{a} \times \vec{b} = -\vec{b} \times \vec{a} \)。在计算法向量时,如果点的选取顺序不同,得到的法向量方向可能相反。务必保持一致的约定,例如始终按逆时针方向取点,否则会导致后续姿态解算出现符号错误。

2.3 三维空间中的平移与旋转表示

2.3.1 核心原理:平移与旋转的数学描述

Stewart平台的动平台相对于静平台的运动,可以分解为平移和旋转两部分。平移用三维向量 \( \vec{t} = (t_x, t_y, t_z)^T \) 表示,描述动平台坐标系原点在静坐标系中的位置。旋转用3×3旋转矩阵 \( R \) 表示,描述动平台坐标系的姿态。

旋转矩阵 \( R \) 是一个正交矩阵,满足 \( R^T R = I \) 且 \( \det(R) = 1 \)。它的三个列向量分别是动平台坐标系的X、Y、Z轴在静坐标系中的方向余弦。绕X轴、Y轴、Z轴旋转的基本旋转矩阵分别为:

Rx(α) = [1    0     0;
         0  cosα -sinα;
         0  sinα  cosα]

Ry(β) = [cosβ  0  sinβ;
          0    1    0;
         -sinβ 0  cosβ]

Rz(γ) = [cosγ -sinγ 0;
         sinγ  cosγ 0;
          0    0    1]

2.3.2 操作流程:齐次变换矩阵的构建

为了将旋转和平移统一处理,我们引入齐次变换矩阵 \( T \),它是一个4×4矩阵:

T = [R  t;
     0  1]

其中 \( R \) 是3×3旋转矩阵,\( t \) 是3×1平移向量,最后一行是 \( [0, 0, 0, 1] \)。使用齐次变换矩阵,我们可以将旋转和平移合并为一次矩阵乘法:

P' = T · P

其中 \( P \) 和 \( P' \) 是齐次坐标下的点(4维向量,最后一维为1)。在Stewart平台中,动平台铰点在静坐标系中的位置可以通过以下变换得到:

P_i^B = T · P_i^P = R · P_i^P + t

这里 \( P_i^P \) 是动平台铰点在动坐标系中的坐标(通常由机械设计确定,是常数),\( P_i^B \) 是该铰点在静坐标系中的坐标。

2.3.3 案例拆解:完整的坐标变换流程

假设动平台坐标系原点在静坐标系中的位置为 \( t = (0, 0, 500) \) mm,动平台绕Z轴旋转了30°(即 \( \gamma = 30° \)),动平台上一个铰点在动坐标系中的坐标为 \( P_1^P = (80, 0, 0) \) mm。则该铰点在静坐标系中的位置计算如下:

Rz(30°) = [cos30°  -sin30°  0;
           sin30°   cos30°  0;
             0       0      1]
        = [0.866  -0.5  0;
           0.5    0.866 0;
           0      0     1]

P_1^B = Rz(30°) · P_1^P + t
      = [0.866×80 + (-0.5)×0 + 0×0;
         0.5×80 + 0.866×0 + 0×0;
         0×80 + 0×0 + 1×0] + [0; 0; 500]
      = [69.28; 40.00; 0] + [0; 0; 500]
      = [69.28; 40.00; 500] mm

这个结果告诉我们,动平台铰点在静坐标系中的XY坐标不再是(80, 0),而是旋转后的(69.28, 40.00),Z坐标则叠加了平移量500mm。这正是Stewart平台逆解中计算腿长向量的关键步骤。

核心要点总结:
  • 点与向量是两种不同的数学对象,点表示位置,向量表示位移或方向。
  • 点积输出标量,用于投影和夹角;叉积输出向量,用于法向量和力矩。
  • 旋转矩阵是正交矩阵,三个列向量构成一组标准正交基。
  • 齐次变换矩阵 \( T = [R \; t; 0 \; 1] \) 统一了旋转和平移,是Stewart平台运动学分析的核心工具。
  • 坐标变换的顺序不可交换:先旋转后平移与先平移后旋转的结果不同。

2.3.4 常见误区与复盘

误区一:混淆点与向量的坐标变换。点的变换需要完整的齐次变换(旋转+平移),而向量的变换只需要旋转部分(因为向量没有位置,平移不影响向量)。在代码实现中,如果对向量也施加了平移,会导致错误的结果。

误区二:旋转矩阵的构造顺序。Stewart平台中,动平台的姿态通常用欧拉角描述,但欧拉角的旋转顺序(如ZYX、ZYZ等)会影响最终旋转矩阵。不同的课程或文献可能采用不同的约定,务必在开始编程前明确约定并保持一致。

误区三:忽略旋转矩阵的正交性校验。由于浮点数计算误差,连续多次旋转后,旋转矩阵可能不再严格正交。在迭代求解正解时,需要定期对旋转矩阵进行正交化修正(如使用SVD分解或Gram-Schmidt正交化),否则误差会累积导致解算发散。

误区四:单位不统一。在计算腿长时,如果平移向量使用毫米,而旋转矩阵中的三角函数使用弧度,最终结果需要保持单位一致。建议在程序开头统一使用毫米和弧度,避免中途混用。

掌握了向量运算和坐标变换的基本方法,我们就拥有了描述Stewart平台运动状态的数学语言。下一层次的内容将在此基础上,进一步探讨旋转矩阵的多种参数化方法(欧拉角、四元数、轴角等),以及它们在正逆解算法中的具体应用。这些数学工具将贯穿整个课程,成为我们分析和解决Stewart平台运动学问题的有力武器。