1. 从零开始:为什么我们需要正运动学模型?
大家好,我是老张,在机器人这行摸爬滚打十来年了,从实验室的机械臂到产线上的协作臂都折腾过。今天咱们不聊那些高深的理论,就从一个最实际的问题聊起:你面前摆着一个六轴机械臂,比如常见的UR5,你怎么告诉它,让它的“手”(末端执行器)精准地移动到空间中的某个位置和姿态?
这背后最核心的“地图”和“导航算法”,就是正运动学模型。你可以把它想象成机械臂的“说明书”,一本告诉你“每个关节转多少度,手会跑到哪里去”的说明书。没有这本说明书,机械臂就是一堆会动的铁疙瘩,你让它抓个杯子,它可能直接把杯子打飞。
那为什么我们今天要专门聊“基于改进DH法”来建模呢?因为这是目前工业界和学术界最主流、最实用的方法,没有之一。标准DH法(Denavit-Hartenberg)历史悠久,但它在处理某些特殊关节构型时,坐标系建立规则会变得模糊,参数定义也容易让人头晕。而改进DH法(Modified DH, 也叫Craig版本)对坐标系的绑定规则做了优化,逻辑更清晰,尤其适合像UR5这种所有关节都是旋转关节的串联机械臂,参数意义更直观,不容易出错。
我刚开始学的时候,也被那些α、a、d、θ绕得云里雾里,直到自己动手从零推导了一遍,才豁然开朗。所以,这篇文章就是带你走一遍我当年走过的路。咱们的目标很明确:手把手,从一张机械臂构型图开始,一步步推导出完整的正运动学变换矩阵,最后能用几行代码把它算出来。 只要你跟着步骤走,哪怕你是零基础,也能把这个模型建起来。
2. 建模前的准备:理解改进DH法的“游戏规则”
在开始“搭积木”(建立坐标系)之前,我们必须先搞清楚改进DH法的基本规则。这就像玩一个拼装模型,你得先看懂说明书上的符号代表什么。
改进DH法的核心是四个参数,每个都对应着相邻两个关节坐标系之间的一种变换。记住这四个参数,它们会贯穿我们整个建模过程:
- 连杆长度 aᵢ₋₁: 从坐标系 i-1 的 Z 轴,沿着它的 X 轴方向,移动到坐标系 i 的 Z 轴的距离。简单理解,就是两个“旋转轴”(Z轴)在水平方向(X轴方向)上的偏移量。它是一个长度量。
- 连杆扭转角 αᵢ₋₁: 从坐标系 i-1 的 Z 轴,绕着它的 X 轴旋转,直到与坐标系 i 的 Z 轴平行所需要的角度。你可以想象成把一根歪着的棍子(Z轴)拧正。它是一个角度量。
- 连杆偏距 dᵢ: 从坐标系 i-1 的 X 轴,沿着坐标系 i 的 Z 轴方向,移动到坐标系 i 的 X 轴的距离。简单说,就是两个坐标系在垂直方向(Z轴方向)上的错开距离。它是一个长度量。
- 关节转角 θᵢ: 从坐标系 i-1 的 X 轴,绕着坐标系 i 的 Z 轴旋转,直到与坐标系 i 的 X 轴平行所需要的角度。这就是我们最常控制的、每个关节电机的转动角度。它是一个变量,会随着机械臂运动而改变。
看到这里你可能有点懵,别急,我们马上用UR5的实物来对应。但在此之前,必须牢记改进DH法建立坐标系的铁律:
- 规则一:Z轴定方向。 每个关节坐标系的 Z 轴,必须沿着该关节的运动轴线方向。对于旋转关节(像UR5的所有关节),Z轴就是关节的旋转轴。
- 规则二:原点找交点。 坐标系 i 的原点,位于关节 i 的 Z 轴和关节 i+1 的 Z 轴的公垂线与关节 i 的 Z 轴的交点上。如果两条Z轴相交,原点就在交点处;如果平行,这个原点就可以灵活选择,通常选在使下一个参数为0的方便位置。
- 规则三:X轴指向前。 坐标系 i 的 X 轴,方向沿着从关节 i 的 Z 轴指向关节 i+1 的 Z 轴的公垂线方向。如果两Z轴相交,X轴的方向就由Zᵢ 和 Zᵢ₊₁ 的叉积决定。
- 规则四:Y轴凑右手。 X轴和Z轴确定后,Y轴自然由右手定则(X叉乘Z)确定,确保我们得到的是一个右手坐标系。
这些规则听起来刻板,但只要你对着图一步步画,就会发现它们像公式一样严谨,能保证我们每个人画出来的坐标系都是一样的,这才是建模可复现的基础。
2.1 认识我们的“模特”:UR5机械臂构型
理论说再多,不如动手画一画。我们以UR5机械臂为具体对象,它的零位构型(所有关节角度为0时的状态)如下图所示。这是一种非常经典的6自由度旋转关节串联构型,学名“腕部偏置”结构,特点是后面三个关节的轴线交于一点(腕部中心),这使得运动学求解(尤其是逆解)相对规整。
(此处应有一张清晰的UR5机械臂三维模型或线条图,标注出从基座到末端的6个旋转关节。由于无法直接贴图,请你在阅读时自行搜索“UR5构型图”或参考原始文章中的图1,脑中建立形象。)
我们来描述一下这个“模特”的身材:
- 关节1(基座旋转): 底座可以水平旋转,Z轴竖直向上。
- 关节2(大臂俯仰): 控制大臂上下摆动,Z轴垂直于纸面或屏幕(指向你或远离你)。
- 关节3(小臂俯仰): 控制小臂上下摆动,Z轴与关节2平行。
- 关节4(手腕旋转): 控制手腕绕小臂轴线旋转,Z轴沿着小臂方向。
- 关节5(手腕弯曲): 控制手腕上下弯曲,Z轴垂直于关节4的Z轴。
- 关节6(末端旋转): 末端法兰盘的旋转,Z轴与关节5的Z轴垂直相交于腕部中心点。
记住这个结构,接下来我们就要把抽象的DH规则,套用到这个具体的机械臂上,开始“贴标签”——建立坐标系。
3. 手把手建立6个关节坐标系
现在,我们进入最关键的实操环节:根据改进DH法的规则,从基座开始,依次为UR5的6个关节建立坐标系。我强烈建议你拿出一张纸和笔,或者打开任何绘图软件,跟着我一起画。画一遍,胜过读十遍。
我们约定,坐标系用 {i} 表示,其中 i=0 是基坐标系, i=6 是末端工具坐标系。
### 3.1 建立基坐标系 {0} 和坐标系 {1}
- 坐标系 {0}: 固定在机械臂基座上,是整个世界参考的起点。


3万+

被折叠的 条评论
为什么被折叠?



