2. 并联机构运动学基础:空间坐标系与变换、位置与姿态描述、运动学正解与逆解概念
各位工程师朋友,大家好。我是老张,在机器人这行摸爬滚打了十几年。今天咱们聊的这块内容,是并联机构标定的地基——运动学基础。说白了,就是搞清楚“机器人在哪儿”、“它怎么动”这两个问题。
你想想看,如果连机器人的位置和姿态都描述不清楚,那后面的标定和误差补偿就无从谈起。我当年刚入行时,就吃过这个亏。有一次调试一台六自由度并联平台,死活标定不准,折腾了两周。最后发现,问题出在坐标系定义上——我把工具坐标系的Z轴方向搞反了。嗯,从那以后,我对运动学基础再也不敢马虎。
2.1 空间坐标系与变换
并联机构里,我们至少需要两个坐标系:一个是固定坐标系(也叫基坐标系),固定在机架上;另一个是动坐标系,固定在动平台上。这两个坐标系之间的相对关系,决定了动平台的位置和姿态。
我个人习惯,把固定坐标系记为 {B},动坐标系记为 {P}。这样在公式里一目了然。
这个矩阵长这样:
T = [ R p ]
[ 0 1 ]
其中,R 是 3×3 的旋转矩阵,描述姿态;p 是 3×1 的平移向量,描述位置。0 是 1×3 的零向量。
为什么用齐次矩阵?因为它能把旋转和平移统一成一个线性变换。你想想看,如果分开算,先旋转再平移,公式写起来很啰嗦。用齐次矩阵,一个矩阵乘法就搞定。
2.2 位置与姿态描述
位置好理解,就是动坐标系原点在固定坐标系里的坐标,用 (x, y, z) 表示。但姿态就有点绕了。
姿态描述方式主要有三种:
- 旋转矩阵: 9个元素,但有6个约束条件(正交且行列式为1)。冗余度高,但计算方便。
- 欧拉角: 3个角度,直观。但存在万向锁问题,且不同旋转顺序结果不同。
- 四元数: 4个参数,无奇异性,插值平滑。适合做轨迹规划。
我在项目中遇到过这样一个坑:用欧拉角做标定,结果在某个姿态附近,标定算法突然发散。后来一查,是万向锁导致的雅可比矩阵奇异。从那以后,我标定程序里统一用四元数做内部计算,只在显示结果时转成欧拉角给人看。
2.3 运动学正解与逆解概念
这是并联机构运动学的核心。说白了,就是两个问题:
- 正解: 已知各驱动关节的长度(或角度),求动平台的位姿。
- 逆解: 已知动平台的目标位姿,求各驱动关节的长度(或角度)。
对于串联机器人,正解容易、逆解难。但并联机器人恰恰相反——逆解简单,正解复杂。为什么会这样?
你想想看,并联机构的每条支链都是一个闭环。给定动平台位姿,每条支链的长度可以独立计算出来,这就是逆解。但反过来,给定各支链长度,要解出动平台位姿,就需要解一组非线性方程组,而且通常有多解。
我举个例子,一个简单的 3-RPS 并联机构:
逆解流程:
1. 给定动平台位姿 (x, y, z, α, β, γ)
2. 计算各支链上球铰中心点在固定坐标系中的坐标
3. 计算各支链长度 L_i = ||P_i - B_i||
4. 输出 L_1, L_2, L_3
正解流程:
1. 给定各支链长度 L_1, L_2, L_3
2. 建立约束方程组:||P_i - B_i|| = L_i
3. 用牛顿-拉夫森法迭代求解
4. 输出动平台位姿 (x, y, z, α, β, γ)
正解为什么难?因为约束方程组是非线性的,而且存在多个解。我当年做标定时,正解迭代不收敛是家常便饭。后来总结出经验:初值给得好,迭代跑得快。一般用上一时刻的位姿作为初值,或者用解析法先求一个近似解。
下面这张图,是我自己总结的并联机构运动学知识体系,帮你理清思路:
这张图把知识体系串起来了。从坐标系出发,经过变换矩阵和位姿描述,最终落到运动学的正解和逆解上。你在学习时,可以按这个脉络一步步来。
好了,这一章的内容就到这里。运动学基础是标定的前提,后面所有的误差模型、参数辨识、补偿算法,都建立在这些概念之上。希望你能把坐标系变换和正逆解的关系真正吃透。
公众号:蓝海资料掘金营,微信deep3321