2. 运动学基础:空间坐标系与变换、欧拉角与四元数、齐次变换矩阵、运动学正解概念、运动学逆解概念
各位同学,大家好。我是你们的老朋友,一个在并联机器人控制领域摸爬滚打了十几年的工程师。今天咱们开始聊运动学基础。这部分内容,说白了就是机器人的“几何学”。你想想看,要让机器人动起来,首先得知道它每个关节在空间里到底在哪儿,对吧?
我个人习惯,在开始任何控制算法设计之前,先把运动学模型搞得清清楚楚。因为后面所有的动力学、轨迹规划、甚至是力控制,都建立在这个地基上。地基不稳,楼盖得再高也得塌。我在项目中就见过不少团队,逆解算得飞快,结果一跑起来就撞奇异点,就是因为基础概念没吃透。
2.1 空间坐标系与变换
我们先从最基础的坐标系说起。并联机器人,比如Delta、Stewart平台,它们都有多个支链。每个支链都有自己的局部坐标系,最后都要统一到世界坐标系下。
坐标系变换,核心就是两个动作:旋转和平移。
- 平移:很简单,就是沿着X、Y、Z轴移动一段距离。比如从基座中心到动平台中心,有个固定的偏移量。
- 旋转:这个稍微复杂点。一个坐标系相对于另一个坐标系,可以绕不同的轴转不同的角度。
嗯,这里要注意:变换的顺序很重要。先绕X轴转30度,再绕Y轴转60度,跟先绕Y轴转60度再绕X轴转30度,结果完全不一样。我刚开始做Delta机器人标定时,就吃过这个亏,调了半天发现末端位置总差几毫米,最后发现是旋转顺序搞反了。
核心要点:坐标系变换是刚体运动的基础。记住,旋转矩阵是正交矩阵,它的逆等于它的转置。这个性质在后续解算中会频繁用到。
2.2 欧拉角与四元数
说到旋转表示,就绕不开欧拉角和四元数。这两个东西,是每个做机器人控制的人必须掌握的。
欧拉角
欧拉角很直观,就是绕三个轴依次旋转。常见的比如ZYX顺序(也叫RPY角:Roll, Pitch, Yaw)。
- Roll (φ):绕X轴旋转,像飞机翻滚。
- Pitch (θ):绕Y轴旋转,像飞机俯仰。
- Yaw (ψ):绕Z轴旋转,像飞机偏航。
欧拉角有个致命问题——万向锁。当Pitch角接近±90度时,Roll和Yaw的旋转轴会重合,导致丢失一个自由度。我在做六自由度Stewart平台控制时,就遇到过这种情况。平台在某个姿态下突然“卡住”了,怎么给指令都不动。查了半天,发现是欧拉角表示在奇异点附近数值不稳定。
避坑指南:如果你用欧拉角做插值或控制,一定要小心万向锁。我曾经因为没处理这个,导致平台在高速运动时出现剧烈抖动。后来全部改用四元数,问题迎刃而解。
四元数
四元数就没有万向锁的问题。它用四个数表示旋转:一个实部和三个虚部。形式是 q = w + xi + yj + zk,其中 w² + x² + y² + z² = 1。
四元数的好处是:
- 无奇异点:可以平滑地表示任意旋转。
- 便于插值:用球面线性插值(SLERP)可以得到平滑的旋转轨迹。
- 计算效率高:组合旋转只需要一次乘法,比矩阵乘法快。
我个人习惯,在实时控制代码里,所有内部计算都用四元数。只在需要人机交互或可视化时,才转成欧拉角显示。
实用技巧:四元数转旋转矩阵的公式要背下来。或者,像我一样,把常用的转换函数封装好,直接调用。别每次都现场推导,容易出错。
2.3 齐次变换矩阵
齐次变换矩阵,就是把旋转和平移统一到一个4x4的矩阵里。形式如下:
| R t |
| 0 1 |
其中R是3x3的旋转矩阵,t是3x1的平移向量。最后一行是[0 0 0 1]。
为什么用齐次坐标?说白了,就是为了把旋转和平移统一成一次矩阵乘法。你想想看,如果不用齐次坐标,你要先旋转再平移,得做两次运算。用齐次矩阵,一次搞定。在实时控制中,每毫秒要算几千次变换,这点效率提升很关键。
我在做高速Delta机器人时,控制周期是250微秒。每个控制周期要计算所有支链的运动学。如果不用齐次矩阵,计算量根本扛不住。用了之后,代码简洁了,速度也上去了。
关键点:齐次变换矩阵的逆矩阵,可以通过旋转矩阵的转置和平移向量的组合快速求得。公式是:T⁻¹ = [Rᵀ, -Rᵀt; 0, 1]。这个在运动学解算中经常用到。
2.4 运动学正解概念
运动学正解,就是已知关节角度(或位移),求末端执行器的位姿(位置和姿态)。
对于串联机器人,正解很简单,就是一堆矩阵连乘。但对于并联机器人,正解就复杂多了。因为并联机器人的结构是闭环的,关节变量之间相互耦合。
举个例子,Delta机器人有三个主动臂,每个臂的角度已知。正解就是求动平台中心点的位置。这需要解一个三元二次方程组,通常有多个解,但只有一个是物理上可实现的。
我记得有一次,一个学生问我:“老师,为什么并联机器人正解比逆解难?”我告诉他:“因为并联机器人的结构决定了,你从关节空间到工作空间的映射是多对一的。逆解反而简单,因为从工作空间到关节空间,通常有解析解。”
经验之谈:在实际工程中,并联机器人的正解通常用数值迭代法求解,比如牛顿-拉夫森法。虽然计算量大一点,但通用性强。如果你追求实时性,可以预先计算好正解表,运行时查表加插值。
2.5 运动学逆解概念
运动学逆解,就是已知末端执行器的位姿,求各个关节的角度(或位移)。这是机器人控制中最常用的。
对于并联机器人,逆解通常有解析解。因为你可以把每个支链看作一个独立的串联链,从基座到动平台,几何关系是确定的。
以Delta机器人为例,逆解过程大致是:
- 已知动平台中心点位置P。
- 根据几何关系,求出每个支链上端(主动臂末端)的位置。
- 通过解三角形,求出主动臂的角度。
这个过程计算量很小,一个控制周期内可以轻松完成。我在实际项目中,逆解的计算时间通常控制在几微秒以内。
注意:逆解虽然快,但要注意奇异点。当机器人处于某些特殊姿态时,逆解可能无解或有无穷多解。比如,当Delta机器人的主动臂与从动臂共线时,就处于奇异位形。这时候控制会失效。我曾经在调试时没处理好奇异点,导致机器人差点撞到极限位置,还好有软限位保护。
2.6 本章知识体系
为了让大家更直观地理解本章的知识结构,我画了一张图。这张图展示了从基础概念到正逆解的整体逻辑。
这张图很清楚地展示了:我们从最基础的坐标系和变换出发,掌握了欧拉角和四元数这两种旋转表示方法,然后用齐次变换矩阵把它们统一起来。最后,这些工具都服务于运动学的正解和逆解计算。
好了,这一章的内容就到这里。运动学基础是后续所有章节的基石,希望大家能真正理解,而不是死记硬背公式。下一章,我们会深入Delta机器人的具体运动学建模,到时候这些基础概念都会用上。