数学基础(上):向量与坐标变换基础
Stewart平台的运动学分析,无论是正解还是逆解,本质上都是在回答两个问题:“动平台上的点在哪里?”和“动平台相对于静平台是如何摆放的?”。要精确回答这两个问题,我们离不开两样数学工具——向量与坐标变换。向量帮助我们描述位置、位移和力的方向;坐标变换则帮助我们建立静平台坐标系与动平台坐标系之间的桥梁。本章将系统梳理点、向量、点积、叉积、模长、单位向量等基本概念,并深入讲解三维空间中的平移与旋转表示方法,为后续推导Stewart平台的运动学方程打下坚实的数学地基。
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就是驱动杆需要达到的长度。在实际控制中,我们还需要将杆长转换为伺服电机或液压缸的伸缩量,这涉及机械传动比,但数学基础就是模长计算。
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轴在静坐标系中的方向余弦向量,是旋转矩阵的第三列。通过类似方法,我们可以逐步恢复出完整的旋转矩阵。
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平台运动学问题的有力武器。