机械臂运动学建模与分析是机器人学研究中的核心内容,它决定了机械臂如何在三维空间中进行精确运动,并实现特定任务。通过建立数学模型,我们可以描述机械臂的关节位置、姿态和末端执行器的运动方式,这对于路径规划、轨迹优化和运动控制至关重要。运动学分析主要包括正运动学(已知关节参数求末端位姿)和逆运动学(已知末端位姿求关节参数),它们广泛应用于工业自动化、医疗手术机器人、智能制造和服务机器人等领域。此外,运动学建模还是动力学分析、力控制和机器学习优化算法的基础,影响着机器人精度、稳定性及安全性。因此,深入理解机械臂的运动学模型,不仅能提高系统的控制精度,还能优化其工作效率和适应复杂环境的能力。
图1 机械臂运动学建模示意图
1.机械臂的位姿描述
在机械臂的运动学建模中,位姿(Pose)是指机械臂末端执行器在三维空间中的位置(Position)和方位(Orientation)。为了让机械臂按照预期的方式运动,我们需要采用数学模型来描述其位姿,以便进行轨迹规划、运动分析和控制算法设计。
设想一个工业机械臂,它的末端执行器(如焊接枪、夹爪等)需要到达指定的工作点,并保持正确的方向。例如,在装配生产线上,机械臂不仅需要准确定位某个零件(位置),还需要确保以正确的角度进行焊接(方向)。如果不能精确描述这些状态,就无法进行精准控制,可能导致产品缺陷或设备损坏。因此,合理地建立位姿数学模型是实现精确控制的关键。
为了描述位姿,我们通常采用三种方法:
位置描述:用笛卡尔坐标系(x,y,z)描述位置。
方位描述:用方向余弦矩阵(旋转矩阵)描述旋转方向。
位姿综合描述:用齐次变换矩阵同时描述位置和方向。
接下来,我们依次介绍这些方法
1.1 机械臂的位置描述
机械臂的位置描述用于表征其末端执行器在空间中的绝对位置。最常见的方法是使用笛卡尔坐标系(Cartesian Coordinate System),即通过 (x, y, z) 三个变量来描述机械臂末端相对于参考坐标系的空间位置。
在三维空间中,笛卡尔坐标系由三个互相垂直的坐标轴(X、Y、Z)组成:
- X 轴:通常表示水平方向前后移动。
- Y 轴:通常表示水平方向左右移动。
- Z 轴:通常表示垂直方向的上下移动。
在机器人控制中,我们通常定义一个基坐标系(Base Frame),所有机械臂的运动都相对于该坐标系进行描述。例如,在工业机器人中,基坐标系通常固定在机器人底座上,而末端执行器的位置可以表示为:
图2 位置表示
1.2 机械臂的方位描述
在实际应用中,机械臂不仅需要到达某个位置,还需要以正确的角度进行操作。例如,在焊接任务中,焊枪的角度对焊接质量影响很大。为了精确描述机械臂的旋转状态,我们引入方向余弦矩阵(Rotation Matrix, RRR)。
方向余弦矩阵的定义
方向余弦矩阵是一个 3×3 的正交矩阵,用于表示一个坐标系相对于另一个坐标系的旋转关系:
其中:
- 第一列 (r11,r21,r31):新坐标系的 X 轴 在原坐标系中的方向(单位向量)。
- 第二列 (r12,r22,r32):新坐标系的 Y 轴 在原坐标系中的方向(单位向量)。
- 第三列 (r13,r23,r33):新坐标系的 Z 轴 在原坐标系中的方向(单位向量)。
换句话说,每一列都是旋转后的坐标轴在原坐标系中的投影,确保了矩阵的几何直观性。
除了方向余弦矩阵,还有两种常见的方法描述机械臂的旋转状态:
(1)欧拉角(Euler Angles)
- 由 三个角度参数 描述旋转,通常依次绕不同坐标轴进行旋转(如 Z-Y-X 旋转)。
- 形式类似于 (α,β,γ),其中:
- α :绕 Z 轴的旋转角度。
- β :绕 Y 轴的旋转角度。
- γ:绕 X 轴的旋转角度。
- 优点:计算直观,参数少。
- 缺点:存在“万向锁”问题(某些角度下会丢失一个自由度)。
(2)四元数(Quaternions)
- 使用 四个参数 (q0,q1,q2,q3)表示旋转。
- 计算高效,避免了欧拉角的万向锁问题。
- 在计算机视觉、机器人路径规划、计算机图形学中广泛应用。
这两种方法都可以通过数学变化利用方向余弦矩阵进行表示。
1.3 机械臂的位姿描述
在机械臂的运动分析中,我们需要同时描述位置和方向,因此引入齐次变换矩阵(Homogeneous Transformation Matrix),它是一个 4×4 的矩阵,能够完整表达机械臂的位姿:
齐次变换矩阵的作用
- 统一描述位置和方位,使运动学计算更加简洁。
- 用于坐标变换,例如从基坐标系转换到关节坐标系。
- 适用于多关节机械臂,可以通过矩阵乘法计算多个关节的复合变换
2.机械臂的坐标变换
在机械臂的运动学建模中,坐标系的转换是至关重要的。为了描述机械臂在不同位置和方向下的状态,我们通常需要进行坐标变换(Coordinate Transformation)。常见的坐标变换包括平移变换、旋转变换和齐次坐标变换,它们用于描述机械臂各个关节之间的位置和方向关系。
2.1 平移坐标变换
平移变换(Translation)用于描述坐标系沿某个方向的移动,而不改变其旋转方向。例如,假设一个点在原坐标系中的位置为 P(x,y,z),如果该坐标系沿 X、Y、Z 轴分别平移 dx,dy,dz,则变换后的点 P′坐标为:
为了用矩阵描述这一变换,我们可以定义平移矩阵(Translation Matrix):
如果一个点在齐次坐标中的表示为 P=[x,y,z,1]T,则经过平移后的新坐标可以通过矩阵乘法得到:
2.2 旋转坐标变换
旋转变换(Rotation)用于描述坐标系围绕某一固定轴旋转的情况。常见的旋转变换包括绕 X 轴、Y 轴、Z 轴 的旋转,分别由旋转矩阵 Rx(θ)、Ry(θ)、Rz(θ) 来描述。
(1)绕 X 轴旋转 θ:绕 X 轴旋转角度 θ 的旋转矩阵为:
(2)绕 Y 轴旋转 θ:绕 Y 轴旋转角度 θ 的旋转矩阵为:
(3)绕 Z 轴旋转 θ:绕 Z 轴旋转角度 θ 的旋转矩阵为:
任意轴的旋转可以通过组合多个基本旋转矩阵实现,例如,先绕 X 轴旋转,再绕 Y 轴旋转,最后绕 Z 轴旋转:
2.3 齐次坐标变换
在机械臂的运动学建模中,我们通常需要同时处理旋转和平移,因此引入齐次坐标变换矩阵(Homogeneous Transformation Matrix)。该矩阵将旋转矩阵 R 和平移向量 p 结合在一起,形成一个 4×4 矩阵:
其中:
- RRR 是 3×3 的旋转矩阵,表示坐标系的旋转。
- p=(dx,dy,dz)T 是 3×1 的平移向量,表示坐标系的位移。
- 第四行始终为 (0,0,0,1),用于维持矩阵的齐次性,以便进行矩阵乘法计算。
齐次变换的性质:
1. 变换矩阵 T 可以进行矩阵乘法级联,用于描述多个坐标变换:
2. 逆变换可以通过矩阵求逆计算:
3.D-H方法介绍
本节我们将详细介绍 D-H 方法的理论基础、D-H 参量的定义、D-H 变换矩阵的推导,并举例说明如何使用 D-H 方法描述机械臂的运动学模型。
3.1 D-H方法的起源
Denavit-Hartenberg(D-H)方法是由 Jacques Denavit 和 Richard S. Hartenberg 在 1955 年提出的,用于系统化地描述 机器人连杆坐标变换。这两位学者的研究最初是为了 统一机械系统的运动描述,后来 D-H 方法成为了机器人运动学领域的标准方法,并广泛用于机械臂的建模。
在机器人学的发展过程中,建立机器人运动模型的方式较为繁杂,每个机械臂的坐标设定方法都不尽相同,使得不同机器人系统的运动学描述难以标准化。D-H 方法的提出,为串联机械臂提供了一种通用且高效的数学建模方式,使得不同机械臂的建模可以遵循同样的原则,从而大大简化了机器人系统的运动学分析过程。
在机器人运动学中,Denavit-Hartenberg(D-H)参数法是一种标准化的方法,用于描述机械臂的连杆坐标变换。D-H 方法通过四个标准参数(连杆长度、连杆偏距、连杆扭转角和关节角)将机械臂的每个关节和连杆联系起来,使得建立机械臂的数学模型变得更加系统化和统一。
3.2 D-H 方法的核心思想
D-H 方法的核心思想是:
- 给每个关节定义一个局部坐标系,这样可以将机械臂的运动分解成多个相对的关节坐标变换。
- 每个坐标系之间的变换通过 4 个标准参数描述,从而可以建立一套标准化的建模方法。
一个典型的机械臂由多个刚性连杆(Link)和关节(Joint)组成,D-H 方法通过在每个连杆上定义坐标系,并利用一组标准参数来描述相邻坐标系之间的相对变换。
3.3 D-H 参数的定义
D-H 方法使用以下四个参数来唯一确定两个相邻坐标系之间的变换:
- 连杆长度(Link Length,
):即连杆 i 的长度,表示坐标系 i−1 的 X 轴到坐标系 i 的 X 轴的距离,沿
轴测量。
- 连杆偏距(Link Offset,
):即关节 i 的偏距,表示坐标系 i 的原点沿
轴相对于坐标系 i−1 的移动距离,沿
轴测量。
- 连杆扭转角(Twist Angle,
):即相邻连杆之间的扭转角,表示坐标系 i−1 的 X 轴旋转到坐标系 i 的 X 轴所需的旋转角度,绕
轴测量。
- 关节角(Joint Angle,
):即关节 iii 的转角,表示坐标系 i−1 的 Z 轴旋转到坐标系 i 的 Z 轴所需的旋转角度,绕
轴测量。
图3 相邻连杆参数介绍图
3.4 D-H 坐标系设定规则
为了能够正确使用 D-H 方法,我们在建立机械臂坐标系时需要遵循以下 D-H 设定规则:
轴沿着关节的旋转轴方向:
- 如果是旋转关节(Revolute Joint),则
轴沿着该关节的旋转轴方向。
- 如果是移动关节(Prismatic Joint),则
轴沿着该关节的移动方向。
- 如果是旋转关节(Revolute Joint),则
轴指向下一个关节:
轴应垂直于当前关节的
轴和下一轴
,并指向下一个关节。
轴按照右手定则确定:
- 右手定则:大拇指指向
轴方向,四指指向
轴方向,中指指向
轴方向。
- 右手定则:大拇指指向
3.5 D-H 变换矩阵
为了描述相邻连杆之间的变换,D-H 方法定义了一个 标准 D-H 变换矩阵,用于描述从坐标系 i−1 变换到坐标系 i 的关系:
矩阵分解说明:
- 第一列:描述沿 X 轴方向的旋转和平移。
- 第二列:描述绕 Z 轴旋转后的投影关系。
- 第三列:描述绕 Z 轴旋转后相对 X 轴的变化。
- 第四列:描述沿 X 轴和 Z 轴的平移关系。
3.6 D-H方法的改良版本
尽管标准 D-H 方法(Denavit-Hartenberg Parameterization)已经被广泛应用,但它在某些情况下存在一定的局限性,例如坐标系设置的不唯一性、某些特殊结构的描述不够直观等。为了解决这些问题,研究人员对 D-H 方法进行了一些改进,其中 修正 D-H 方法(Modified D-H, MDH) 是最常用的一种。
1. 修正 D-H 方法(Modified D-H, MDH)
修正 D-H 方法(MDH)是由 Craig 在 1986 年的《Introduction to Robotics: Mechanics & Control》一书中提出的。它的核心思想是在标准 D-H 方法的基础上进行优化,使其在计算和分析时更加直观。
改进点
- 改变坐标轴的设定方式:
在标准 D-H 方法中,坐标系的 Z 轴 仍然与前一坐标系的 Z 轴 对齐,而 MDH 方法则直接沿着 当前关节轴 设定坐标系。 - 变换顺序不同:
- 标准 D-H 变换顺序是 绕
轴旋转
→ 沿
轴平移
→ 沿
轴平移
→ 绕
轴旋转
。
- 修正 D-H 变换顺序是 沿
轴平移
→ 绕
轴旋转
→ 沿
轴平移
→ 绕
轴旋转
。
- 标准 D-H 变换顺序是 绕
修正 D-H 方法下,相邻关节的齐次变换矩阵变为:
✔ 优点:
- 坐标轴的设定更直观,计算更简洁。
- 适用于一些复杂结构(如多自由度机器人)。
- 更加符合某些机器人软件(如 ROS)的建模方式。
✖ 缺点:
- 仍然不能很好地适用于并联机器人。
- 变换矩阵的顺序不同,可能导致一些计算不直观。
2. 其他改进方法
除了 MDH 方法外,还有一些其他的改进方式,例如:
- Product of Exponentials (PoE) 方法:
采用李群和李代数的数学工具,利用指数坐标形式来表示机器人连杆和关节之间的关系,适用于更广泛的机器人结构。 - Unit Dual Quaternion(双四元数)方法:
通过四元数来描述空间旋转和平移,减少了矩阵运算中的数值误差,提高计算精度,尤其适用于高自由度的机器人。
标准 D-H 方法已经非常成熟,适用于大多数串联机械臂。然而,在某些情况下,使用修正 D-H 方法(MDH)或其他数学工具(如 PoE、四元数)可能会带来更大的灵活性和计算精度。在 MATLAB 的 Robotics Toolbox 中,D-H 方法仍然是最常用的建模方式,因此理解它的基本概念至关重要!
部分内容参考 文章 液压凿岩机器人机械臂轨迹规划及跟踪控制研究_覃艳明。
接下来会根据实例对机械臂运动学建模进行讲解。