第一章 课程导论与数学基础:机器人运动学与动力学概述、协同调优的必要性、齐次变换矩阵与旋转矩阵复习、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参数法建模 协同调优:模型对齐 → 参数标定 → 联合调试

从这张图你可以看到,运动学和动力学不是孤立的。它们共享同一套数学工具——齐次变换矩阵和DH参数。而协同调优,就是在模型对齐的基础上,把参数标定和联合调试做透。

1.6 本章小结

这一章我们做了三件事:

  • 理清了概念:运动学管“几何”,动力学管“力”,两者必须协同。
  • 复习了数学:旋转矩阵和齐次变换矩阵是基本功,手推一遍没坏处。
  • 建立了模型:DH参数法是描述机器人的标准语言,选对版本很重要。

这些内容看起来基础,但它们是后续所有章节的基石。下一章开始,我们会进入逆运动学的核心算法。到时候你会发现,今天复习的数学,每一个都会用上。

课后建议: 找一台你熟悉的机器人(哪怕是仿真模型),把它的DH参数表列出来,然后手算一次正解。算完再用代码验证。这个流程走一遍,比你读十遍书都管用。