第一章 课程导论与数学基础:机器人运动学与动力学概述、协同调优的必要性、齐次变换矩阵与旋转矩阵复习、DH参数法建模
1.1 为什么我们要聊“协同调优”?
各位工程师朋友,咱们开门见山。你做过机器人控制,一定遇到过这种情况:逆运动学算出来的角度明明是对的,电机一跑,末端抖得像帕金森。或者力矩控制调得挺顺,换个姿态就啸叫。
问题出在哪?
说白了,逆运动学和力矩控制这两件事,在传统开发流程里是割裂的。搞路径的人只管算角度,搞底层的人只管调PID。中间缺了一座桥。
我早年做六轴协作机器人项目时,就踩过这个坑。逆解算得飞快,力矩环响应也漂亮,但一装到产线上,抓取节拍死活提不上去。后来花了三周时间,把运动学参数和力矩前馈揉在一起调,才把问题搞定。从那时起,我就养成了一个习惯:运动学模型和动力学参数必须放在同一个框架里对齐。
这门课,就是要把这座桥搭起来。我们会从数学根上开始,一步步把逆运动学和力矩控制拧成一股绳。
核心观点: 逆运动学提供“往哪走”,力矩控制提供“怎么走”。两者协同调优,才能让机器人走得准、走得稳、走得快。
1.2 机器人运动学与动力学:先搞清楚谁管谁
在动手之前,咱们得把两个概念理清楚。很多新手工程师容易混,我建议你记住一句话:运动学管几何关系,动力学管力与运动的关系。
| 维度 | 运动学 | 动力学 |
|---|---|---|
| 研究对象 | 位置、速度、加速度(不考虑力) | 力、力矩、惯量、摩擦 |
| 核心问题 | 已知关节角求末端位姿(正解) 已知末端位姿求关节角(逆解) |
已知关节运动求驱动力矩(逆动力学) 已知驱动力矩求关节运动(正动力学) |
| 典型应用 | 轨迹规划、碰撞检测 | 力矩前馈、阻抗控制、重力补偿 |
| 我的经验 | DH参数标定不准,逆解全是错的 | 惯量参数不准,前馈反而帮倒忙 |
你想想看,如果运动学模型里连杆长度差了1毫米,逆解出来的关节角就会带偏差。这个偏差在力矩环里会被放大——因为重力补偿算出来的力矩也是错的。这就是为什么必须协同调优。
1.3 数学基础:齐次变换矩阵与旋转矩阵
好,咱们开始复习数学。这部分是基本功,但我发现很多工程师用库用惯了,手写就发怵。我建议你至少能手推一次。
1.3.1 旋转矩阵
旋转矩阵描述的是两个坐标系之间的姿态关系。绕X、Y、Z轴的基本旋转矩阵长这样:
R_x(θ) = [1 0 0;
0 cosθ -sinθ;
0 sinθ cosθ]
R_y(θ) = [ cosθ 0 sinθ;
0 1 0;
-sinθ 0 cosθ]
R_z(θ) = [cosθ -sinθ 0;
sinθ cosθ 0;
0 0 1]
嗯,这里要注意:旋转矩阵是正交矩阵,它的逆等于它的转置。这个性质在后续做坐标变换求逆解时非常有用。
避坑指南: 我曾经在写运动学正解时,把旋转顺序搞反了。先绕X再绕Y,和先绕Y再绕X,结果完全不同。一定要确认你用的库是左乘还是右乘,是固定轴还是动轴。
1.3.2 齐次变换矩阵
齐次变换矩阵把旋转和平移塞进一个4x4的矩阵里。结构很简单:
T = [R p;
0 1]
其中R是3x3旋转矩阵,p是3x1平移向量。最后一行是[0 0 0 1]。
为什么用齐次?因为你可以把多次变换连乘起来。比如从基座到末端,就是一连串的T矩阵相乘:
T_0_n = T_0_1 * T_1_2 * ... * T_{n-1}_n
这个连乘,就是运动学正解的核心。
1.4 DH参数法建模
DH参数法是描述机器人连杆之间关系的标准方法。我个人习惯用改进DH(Craig版),因为它在处理树形结构时更直观。
每个关节需要四个参数:
| 参数 | 符号 | 含义 | 我的经验 |
|---|---|---|---|
| 连杆长度 | a_{i-1} | 沿x_{i-1}轴,从z_{i-1}到z_i的距离 | 这个值一般用卡尺量,但装配公差会导致偏差 |
| 连杆扭角 | α_{i-1} | 绕x_{i-1}轴,从z_{i-1}到z_i的角度 | 扭角误差最难标定,我吃过亏 |
| 连杆偏距 | d_i | 沿z_i轴,从x_{i-1}到x_i的距离 | 对于移动关节,d_i是变量 |
| 关节角 | θ_i | 绕z_i轴,从x_{i-1}到x_i的角度 | 对于旋转关节,θ_i是变量 |
有了这四个参数,相邻连杆的变换矩阵就可以写成:
T_i = Rot(x, α_{i-1}) * Trans(x, a_{i-1}) * Rot(z, θ_i) * Trans(z, d_i)
展开后:
T_i = [cosθ_i -sinθ_i 0 a_{i-1};
sinθ_i*cosα_{i-1} cosθ_i*cosα_{i-1} -sinα_{i-1} -d_i*sinα_{i-1};
sinθ_i*sinα_{i-1} cosθ_i*sinα_{i-1} cosα_{i-1} d_i*cosα_{i-1};
0 0 0 1]
注意: 不同教材对DH参数的定义有差异。标准DH和改进DH的坐标系附着方式不同,导致a、α、d、θ的定义顺序也不同。你在看或开源代码时,一定要先确认对方用的是哪个版本。我见过两个团队因为DH版本不一致,联调时对骂了一下午。
1.5 本章知识体系总览
为了让你对本章内容有个整体印象,我画了一张框架图。它把运动学、动力学、数学工具和协同调优的关系串起来了。
从这张图你可以看到,运动学和动力学不是孤立的。它们共享同一套数学工具——齐次变换矩阵和DH参数。而协同调优,就是在模型对齐的基础上,把参数标定和联合调试做透。
1.6 本章小结
这一章我们做了三件事:
- 理清了概念:运动学管“几何”,动力学管“力”,两者必须协同。
- 复习了数学:旋转矩阵和齐次变换矩阵是基本功,手推一遍没坏处。
- 建立了模型:DH参数法是描述机器人的标准语言,选对版本很重要。
这些内容看起来基础,但它们是后续所有章节的基石。下一章开始,我们会进入逆运动学的核心算法。到时候你会发现,今天复习的数学,每一个都会用上。
课后建议: 找一台你熟悉的机器人(哪怕是仿真模型),把它的DH参数表列出来,然后手算一次正解。算完再用代码验证。这个流程走一遍,比你读十遍书都管用。