利用 Robotics Toolbox 进行机械臂运动学分析(二):建立运动学模型

机械臂运动学建模与分析是机器人学研究中的核心内容,它决定了机械臂如何在三维空间中进行精确运动,并实现特定任务。通过建立数学模型,我们可以描述机械臂的关节位置、姿态和末端执行器的运动方式,这对于路径规划、轨迹优化和运动控制至关重要。运动学分析主要包括正运动学(已知关节参数求末端位姿)和逆运动学(已知末端位姿求关节参数),它们广泛应用于工业自动化、医疗手术机器人、智能制造和服务机器人等领域。此外,运动学建模还是动力学分析、力控制和机器学习优化算法的基础,影响着机器人精度、稳定性及安全性。因此,深入理解机械臂的运动学模型,不仅能提高系统的控制精度,还能优化其工作效率和适应复杂环境的能力。

图1 机械臂运动学建模示意图

1.机械臂的位姿描述

在机械臂的运动学建模中,位姿(Pose)是指机械臂末端执行器在三维空间中的位置(Position)方位(Orientation)。为了让机械臂按照预期的方式运动,我们需要采用数学模型来描述其位姿,以便进行轨迹规划、运动分析和控制算法设计。

设想一个工业机械臂,它的末端执行器(如焊接枪、夹爪等)需要到达指定的工作点,并保持正确的方向。例如,在装配生产线上,机械臂不仅需要准确定位某个零件(位置),还需要确保以正确的角度进行焊接(方向)。如果不能精确描述这些状态,就无法进行精准控制,可能导致产品缺陷或设备损坏。因此,合理地建立位姿数学模型是实现精确控制的关键。

为了描述位姿,我们通常采用三种方法:

位置描述:用笛卡尔坐标系(x,y,z)描述位置。

方位描述:用方向余弦矩阵(旋转矩阵)描述旋转方向。

位姿综合描述:用齐次变换矩阵同时描述位置和方向。

接下来,我们依次介绍这些方法

1.1 机械臂的位置描述

机械臂的位置描述用于表征其末端执行器在空间中的绝对位置。最常见的方法是使用笛卡尔坐标系(Cartesian Coordinate System),即通过 (x, y, z) 三个变量来描述机械臂末端相对于参考坐标系的空间位置。

在三维空间中,笛卡尔坐标系由三个互相垂直的坐标轴(X、Y、Z)组成:

  • X 轴:通常表示水平方向前后移动。
  • Y 轴:通常表示水平方向左右移动。
  • Z 轴:通常表示垂直方向的上下移动。

在机器人控制中,我们通常定义一个基坐标系(Base Frame),所有机械臂的运动都相对于该坐标系进行描述。例如,在工业机器人中,基坐标系通常固定在机器人底座上,而末端执行器的位置可以表示为:

p= \begin{bmatrix} x \\ y \\ z \end{bmatrix}

图2 位置表示

1.2 机械臂的方位描述

在实际应用中,机械臂不仅需要到达某个位置,还需要以正确的角度进行操作。例如,在焊接任务中,焊枪的角度对焊接质量影响很大。为了精确描述机械臂的旋转状态,我们引入方向余弦矩阵(Rotation Matrix, RRR)

方向余弦矩阵的定义

方向余弦矩阵是一个 3×3 的正交矩阵,用于表示一个坐标系相对于另一个坐标系的旋转关系:

R= \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix}

其中:

  • 第一列 (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 的矩阵,能够完整表达机械臂的位姿:

T= \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix}= \begin{bmatrix} r_{11} & r_{12} & r_{13} & x \\ r_{21} & r_{22} & r_{23} & y \\ r_{31} & r_{32} & r_{33} & z \\ 0 & 0 & 0 & 1 \end{bmatrix}

齐次变换矩阵的作用

  • 统一描述位置和方位,使运动学计算更加简洁。
  • 用于坐标变换,例如从基坐标系转换到关节坐标系。
  • 适用于多关节机械臂,可以通过矩阵乘法计算多个关节的复合变换

2.机械臂的坐标变换

在机械臂的运动学建模中,坐标系的转换是至关重要的。为了描述机械臂在不同位置和方向下的状态,我们通常需要进行坐标变换(Coordinate Transformation)。常见的坐标变换包括平移变换旋转变换齐次坐标变换,它们用于描述机械臂各个关节之间的位置和方向关系。

2.1 平移坐标变换

平移变换(Translation)用于描述坐标系沿某个方向的移动,而不改变其旋转方向。例如,假设一个点在原坐标系中的位置为 P(x,y,z),如果该坐标系沿 X、Y、Z 轴分别平移 dx,dy,dz,则变换后的点 P′坐标为:

P^{\prime}= \begin{bmatrix} x^{\prime} \\ y^{\prime} \\ z^{\prime} \end{bmatrix}= \begin{bmatrix} x+d_x \\ y+d_y \\ z+d_z \end{bmatrix}

为了用矩阵描述这一变换,我们可以定义平移矩阵(Translation Matrix):

T(d_x,d_y,d_z)= \begin{bmatrix} 1 & 0 & 0 & d_x \\ 0 & 1 & 0 & d_y \\ 0 & 0 & 1 & d_z \\ 0 & 0 & 0 & 1 \end{bmatrix}

如果一个点在齐次坐标中的表示为 P=[x,y,z,1]T,则经过平移后的新坐标可以通过矩阵乘法得到:

P^{\prime}=T(d_x,d_y,d_z)\cdot P

2.2 旋转坐标变换

旋转变换(Rotation)用于描述坐标系围绕某一固定轴旋转的情况。常见的旋转变换包括绕 X 轴、Y 轴、Z 轴 的旋转,分别由旋转矩阵 Rx(θ)、Ry(θ)、Rz(θ) 来描述。

(1)绕 X 轴旋转 θ:绕 X 轴旋转角度 θ 的旋转矩阵为:

R_x(\theta)= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix}

(2)绕 Y 轴旋转 θ:绕 Y 轴旋转角度 θ 的旋转矩阵为:

R_y(\theta)= \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix}

(3)绕 Z 轴旋转 θ:绕 Z 轴旋转角度 θ 的旋转矩阵为:

R_z(\theta)= \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}

任意轴的旋转可以通过组合多个基本旋转矩阵实现,例如,先绕 X 轴旋转,再绕 Y 轴旋转,最后绕 Z 轴旋转:

R=R_z(\gamma)R_y(\beta)R_x(\alpha)

2.3 齐次坐标变换

在机械臂的运动学建模中,我们通常需要同时处理旋转和平移,因此引入齐次坐标变换矩阵(Homogeneous Transformation Matrix)。该矩阵将旋转矩阵 R 和平移向量 p 结合在一起,形成一个 4×4 矩阵

T= \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix}= \begin{bmatrix} r_{11} & r_{12} & r_{13} & d_x \\ r_{21} & r_{22} & r_{23} & d_y \\ r_{31} & r_{32} & r_{33} & d_z \\ 0 & 0 & 0 & 1 \end{bmatrix}

其中:

  • RRR3×3 的旋转矩阵,表示坐标系的旋转。
  • p=(dx,dy,dz)T 是 3×1 的平移向量,表示坐标系的位移。
  • 第四行始终为 (0,0,0,1),用于维持矩阵的齐次性,以便进行矩阵乘法计算。

齐次变换的性质

1. 变换矩阵 T 可以进行矩阵乘法级联,用于描述多个坐标变换:

T_0^n=T_0^1\cdot T_1^2\cdot T_2^3\cdots T_{n-1}^n

2. 逆变换可以通过矩阵求逆计算:

T^{-1}= \begin{bmatrix} R^T & -R^Tp \\ 0 & 1 \end{bmatrix}

3.D-H方法介绍

本节我们将详细介绍 D-H 方法的理论基础、D-H 参量的定义、D-H 变换矩阵的推导,并举例说明如何使用 D-H 方法描述机械臂的运动学模型。

3.1 D-H方法的起源

Denavit-Hartenberg(D-H)方法是由 Jacques DenavitRichard 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 方法使用以下四个参数来唯一确定两个相邻坐标系之间的变换:

  1. 连杆长度(Link Length,a_{i}​):即连杆 i 的长度,表示坐标系 i−1 的 X 轴到坐标系 i 的 X 轴的距离,沿 X_{i-1} 轴测量。
  2. 连杆偏距(Link Offset,d_{i}):即关节 i 的偏距,表示坐标系 i 的原点沿 ​Z_{i-1} 轴相对于坐标系 i−1 的移动距离,沿 Z_{i-1}​ 轴测量。
  3. 连杆扭转角(Twist Angle,\alpha_{i}):即相邻连杆之间的扭转角,表示坐标系 i−1 的 X 轴旋转到坐标系 i 的 X 轴所需的旋转角度,绕 Z_{i-1}​ 轴测量。
  4. 关节角(Joint Angle,\theta_{i}):即关节 iii 的转角,表示坐标系 i−1 的 Z 轴旋转到坐标系 i 的 Z 轴所需的旋转角度,绕 Z_{i-1}轴测量。

图3 相邻连杆参数介绍图

3.4 D-H 坐标系设定规则

为了能够正确使用 D-H 方法,我们在建立机械臂坐标系时需要遵循以下 D-H 设定规则

  • Z_i 轴沿着关节的旋转轴方向
    • 如果是旋转关节(Revolute Joint),则 Z_i​ 轴沿着该关节的旋转轴方向。
    • 如果是移动关节(Prismatic Joint),则Z_i​ 轴沿着该关节的移动方向。
  • X_i 轴指向下一个关节
    • X_i 轴应垂直于当前关节的 Z_i​ 轴和下一轴Z_{i+1},并指向下一个关节。
  • Y_i​ 轴按照右手定则确定
    • 右手定则:大拇指指向 X_i​ 轴方向,四指指向 Y_i 轴方向,中指指向 Z_i 轴方向。

3.5 D-H 变换矩阵

为了描述相邻连杆之间的变换,D-H 方法定义了一个 标准 D-H 变换矩阵,用于描述从坐标系 i−1 变换到坐标系 i 的关系:

T_i^{i-1}= \begin{bmatrix} \cos\theta_i & -\sin\theta_i\cos\alpha_i & \sin\theta_i\sin\alpha_i & a_i\cos\theta_i \\ \sin\theta_i & \cos\theta_i\cos\alpha_i & -\cos\theta_i\sin\alpha_i & a_i\sin\theta_i \\ 0 & \sin\alpha_i & \cos\alpha_i & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}

矩阵分解说明:

  • 第一列:描述沿 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 变换顺序是 Z_{i-1}​ 轴旋转 \theta_i → 沿 Z_{i-1}​ 轴平移 d_i​ → 沿 X_i 轴平移 a_i​ → 绕 X_i 轴旋转 \alpha_i
    • 修正 D-H 变换顺序是 沿 X_{i-1}​ 轴平移 a_i​ → 绕 X_{i-1}​ 轴旋转 \alpha_i → 沿 Z_i​ 轴平移 d_i​ → 绕 Z_i​ 轴旋转 \theta_i

修正 D-H 方法下,相邻关节的齐次变换矩阵变为:

T_i^{i-1}= \begin{bmatrix} \cos\theta_i & -\sin\theta_i & 0 & a_i \\ \sin\theta_i\cos\alpha_i & \cos\theta_i\cos\alpha_i & -\sin\alpha_i & -d_i\sin\alpha_i \\ \sin\theta_i\sin\alpha_i & \cos\theta_i\sin\alpha_i & \cos\alpha_i & d_i\cos\alpha_i \\ 0 & 0 & 0 & 1 \end{bmatrix}

优点

  • 坐标轴的设定更直观,计算更简洁。
  • 适用于一些复杂结构(如多自由度机器人)。
  • 更加符合某些机器人软件(如 ROS)的建模方式。

缺点

  • 仍然不能很好地适用于并联机器人。
  • 变换矩阵的顺序不同,可能导致一些计算不直观。

2. 其他改进方法

除了 MDH 方法外,还有一些其他的改进方式,例如:

  • Product of Exponentials (PoE) 方法
    采用李群和李代数的数学工具,利用指数坐标形式来表示机器人连杆和关节之间的关系,适用于更广泛的机器人结构。
  • Unit Dual Quaternion(双四元数)方法
    通过四元数来描述空间旋转和平移,减少了矩阵运算中的数值误差,提高计算精度,尤其适用于高自由度的机器人。

标准 D-H 方法已经非常成熟,适用于大多数串联机械臂。然而,在某些情况下,使用修正 D-H 方法(MDH)或其他数学工具(如 PoE、四元数)可能会带来更大的灵活性和计算精度。在 MATLAB 的 Robotics Toolbox 中,D-H 方法仍然是最常用的建模方式,因此理解它的基本概念至关重要!

部分内容参考  文章 液压凿岩机器人机械臂轨迹规划及跟踪控制研究_覃艳明

接下来会根据实例对机械臂运动学建模进行讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值