2. 运动学基础:刚体运动描述、齐次变换矩阵、DH参数法

各位同学,咱们今天聊点硬核的。运动学基础,说白了就是搞清楚机器人怎么动。你想想看,一个机械臂要抓杯子,它得知道自己的手在哪儿、杯子在哪儿,中间怎么转、怎么挪。这背后就是刚体运动描述、齐次变换矩阵和DH参数法这三板斧。

我个人习惯,讲运动学前先问一句:你凭什么知道一个物体在空间里的位置和姿态?嗯,这就是刚体运动描述要解决的事。

2.1 刚体运动描述:位置与姿态

刚体,就是不会变形的物体。机器人的连杆、关节,我们都可以近似看成刚体。描述一个刚体在空间中的状态,需要两样东西:位置姿态

  • 位置:用三维坐标 (x, y, z) 表示。比如机械臂末端在空间中的点。
  • 姿态:用旋转矩阵 R 表示。它告诉你这个刚体朝哪个方向。

我在项目中遇到过一个问题:两个工程师分别用不同的坐标系描述同一个零件,结果装配时对不上。说白了,就是姿态描述没统一。所以,我们通常用一个 4×4 的齐次变换矩阵 把位置和姿态打包在一起。

核心公式: 齐次变换矩阵 T = [R p; 0 1]

其中 R 是 3×3 旋转矩阵,p 是 3×1 位置向量。最后一行是 [0 0 0 1],用来保证矩阵乘法能处理平移和旋转的复合。

2.2 齐次变换矩阵:把旋转和平移统一起来

为什么非要用 4×4 矩阵?直接用 3×3 旋转矩阵加一个 3×1 平移向量不行吗?

行,但计算起来很麻烦。你想想看,如果我要把机械臂从基座到末端做一连串的旋转和平移,用 3×3 矩阵你得先旋转再平移,每一步都要单独处理。而齐次变换矩阵把旋转和平移塞进一个矩阵里,连续变换就是矩阵乘法,简单粗暴。

我记得有一次调试一个六轴机器人,需要把工具坐标系从法兰盘转换到末端。用齐次变换矩阵,一行代码就搞定了。要是用传统方法,我得写一堆三角函数,还容易出错。

避坑指南: 我曾经犯过一个低级错误——把旋转矩阵和平移向量的顺序搞反了。记住:齐次变换矩阵是先旋转后平移,即 T = [R, p; 0, 1]。如果你先平移后旋转,结果完全不一样。

齐次变换矩阵的逆矩阵也很常用。比如你知道了末端相对于基座的变换,想反过来求基座相对于末端的变换,直接求逆就行。公式是:

T_inv = [R^T  -R^T * p; 0  1]

嗯,这里要注意,逆矩阵不是简单的转置,平移部分要带上负号再旋转回去。

2.3 DH参数法:机器人建模的标准语言

好了,现在我们知道怎么描述一个刚体了。但机器人有多个关节,每个关节之间怎么连接?这就轮到 DH参数法 登场了。

DH参数法,全称 Denavit-Hartenberg 参数法。它用四个参数来描述相邻两个连杆之间的相对位置和姿态:

参数 符号 含义
连杆长度 ai-1 沿 xi-1 轴,从 zi-1 到 zi 的距离
连杆扭角 αi-1 绕 xi-1 轴,从 zi-1 到 zi 的转角
连杆偏距 di 沿 zi 轴,从 xi-1 到 xi 的距离
关节角 θi 绕 zi 轴,从 xi-1 到 xi 的转角

你可能会问:为什么是四个参数?不是三个?因为空间中的两个轴线(zi-1 和 zi)之间的相对关系,确实需要四个自由度来描述。两个平移(a 和 d)加两个旋转(α 和 θ),刚好。

我个人习惯,建立DH参数表时,先画好连杆坐标系图。把每个关节的 z 轴画出来,然后按规则找 x 轴。这一步做扎实了,后面填参数就是填空。

注意: DH参数有两种约定——标准DH和改进DH。区别在于坐标系原点的位置和变换顺序。我建议初学者先掌握标准DH,因为大多数教材都用这个。但如果你用 ROS 的 URDF 文件,它默认用的是改进DH。别搞混了。

有了DH参数,相邻连杆的齐次变换矩阵就可以直接写出来:

T_i = Rot_x(α_{i-1}) * Trans_x(a_{i-1}) * Rot_z(θ_i) * Trans_z(d_i)

展开成矩阵形式:

T_i = [cosθ_i   -sinθ_i*cosα_{i-1}   sinθ_i*sinα_{i-1}   a_{i-1}*cosθ_i;
       sinθ_i    cosθ_i*cosα_{i-1}   -cosθ_i*sinα_{i-1}   a_{i-1}*sinθ_i;
       0         sinα_{i-1}           cosα_{i-1}           d_i;
       0         0                    0                    1]

看着复杂,其实每个元素都有明确的几何意义。我刚开始学的时候也觉得头大,后来在项目中手算过一个六轴机器人的正运动学,算完一遍就全记住了。

2.4 知识体系总览

为了让你更直观地理解这三块内容的关系,我画了一张图:

运动学基础知识体系 刚体运动描述 齐次变换矩阵 DH参数法 位置 (x,y,z) 姿态 (R矩阵) 旋转+平移 复合变换 4个参数 连杆坐标系 核心逻辑 刚体描述 → 齐次变换矩阵 → DH参数建模 → 正运动学

从这张图你可以看到,刚体运动描述是基础,齐次变换矩阵是工具,DH参数法是建模方法。三者层层递进,最终服务于机器人的正运动学计算。

我的经验: 刚开始学DH参数时,别急着背公式。先拿一个简单的两连杆机器人,手动画坐标系、填参数、算变换矩阵。算通一次,后面六轴、七轴都是同样的套路。

好了,运动学基础就讲到这里。记住:刚体描述解决“是什么”,齐次变换解决“怎么算”,DH参数解决“怎么建”。这三样东西,是后续所有运动学、动力学分析的基石。


公众号:蓝海资料掘金营,微信deep3321