首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SCARA机械臂的运动学模型及求解

SCARA机械臂的运动学模型及求解

作者头像
索旭东
发布2026-02-04 14:54:47
发布2026-02-04 14:54:47
1030
举报
文章被收录于专栏:具身小站具身小站

一、 DH参数介绍

DH的全称是 Denavit–Hartenberg 参数,以两位研究者(Jacques Denavit 和 Richard Hartenberg)在1955年提出该方法而命名。

它的参数一套用于描述机器人相邻连杆之间几何关系的标准化方法,其核心作用是建立机器人的运动学模型,将关节空间(每个关节的转动/移动量)映射到末端执行器的笛卡尔空间位置和姿态。

可以把DH参数看作是描述两个“邻居”连杆关系的“四要素身份证”,对于由一系列连杆和关节组成的串联机器人,每两个相邻连杆之间都可以用这四个参数来唯一定义它们的相对位置和方向,四个参数如下:

参数

参数名称

物理意义

a

连杆长度Link Length

沿 X轴 方向,从 Z(i-1) 轴到 Z(i) 轴的距离。

α

连杆扭角Link Twist

绕 X轴 旋转,从 Z(i-1) 轴到 Z(i) 轴的夹角。

d

连杆偏距Link Offset

沿 Z轴 方向,从 X(i-1) 轴到 X(i) 轴的距离。

θ

关节角Joint Angle

绕 Z轴 旋转,从 X(i-1) 轴到 X(i) 轴的夹角。

关键点:

  • aα 描述了连杆本身的固有几何特征(长度和弯曲程度),对于平移关节和旋转关节来说,通常是常量
  • dθ 描述了相邻连杆的相对位置,其中一个是变量,取决于关节类型:
    • 如果关节i是旋转关节,则 θᵢ是变量dᵢ是常量。
    • 如果关节i是平移关节,则 dᵢ是变量θᵢ是常量。

二、 DH建模流程

DH参数的主要用途是构建正运动学模型,这是机器人控制和编程的基础,工作流程如下:

  1. 建模:为机器人的每个连杆建立坐标系,并确定相邻坐标系之间的4个DH参数。
  2. 计算变换矩阵:利用这四个参数,可以计算出一个标准的 4x4 齐次变换矩阵,它完整描述了从“连杆i-1的坐标系”到“连杆i的坐标系”的变换(包含旋转和平移)。变换矩阵公式是固定的,由 a, α, d, θ四个参数计算得出。
  3. 串联变换:从机器人的基座(连杆0)到末端执行器(连杆n),将所有相邻连杆的变换矩阵连乘起来。T₀ⁿ = T₀¹ * T₁² * ... * Tⁿ⁻¹ⁿ
  4. 得到正运动学方程:最终结果 T₀ⁿ是一个矩阵,告诉你末端执行器相对于机器人基座位置 (x, y, z)姿态(旋转矩阵),这个矩阵是各个关节变量(θᵢdᵢ)的函数。

想象一个简单的2自由度平面机械臂(两个旋转关节):

  • 基座关节:连接地面和第一个连杆
  • 肘关节:连接第一个和第二个连杆
  • 末端:在第二个连杆的末端

DH建模过程如下:

  1. 在基座、肘关节、末端分别建立坐标系(Z轴沿关节旋转轴,X轴沿连杆垂直方向)。
  2. 确定两组DH参数(a1, α1, d1, θ1a2, α2, d2, θ2)。
    • a1, a2就是两个连杆的长度。
    • dα通常为0(因为在一个平面内)。
    • θ1, θ2就是两个关节的旋转角度(变量)。
  3. 计算出变换矩阵 T₀¹(θ1)T₁²(θ2)
  4. 连乘得到 T₀² = T₀¹ * T₁²。这个矩阵的右上角3x1向量 [x; y; z]就是末端位置,它等于:
    • x = a1*cos(θ1) + a2*cos(θ1+θ2)
    • y = a1*sin(θ1) + a2*sin(θ1+θ2)
    • z = 0

这就完成了平面机械臂正运动学方程建模

三、SCARA运动学模型

3.1 标准4自由度SCARA的DH参数表:

关节

θ (关节角)

d (连杆偏距)

a (连杆长度)

α (扭转角)

1

θ₁

d₁

a₁

2

θ₂

0

a₂

180°

3

0

d₃

0

4

θ₄

d₄

0

3.2 变换矩阵

代码语言:javascript
复制
T₀⁴ = T₀¹(θ₁) · T₁²(θ₂) · T₂³(d₃) · T₃⁴(θ₄)
代码语言:javascript
复制
T₀¹ = [cosθ₁  -sinθ₁   0   a₁cosθ₁]
       [sinθ₁   cosθ₁   0   a₁sinθ₁]
       [0       0       1      d₁  ]
       [0       0       0      1   ]
T₁² = [cosθ₂   sinθ₂   0   a₂cosθ₂]
       [sinθ₂  -cosθ₂   0   a₂sinθ₂]
       [0       0      -1      0   ]
       [0       0       0      1   ]
T₂³ = [1       0       0       0  ]
       [0       1       0       0  ]
       [0       0       1       d₃ ]
       [0       0       0       1  ]
T₃⁴ = [cosθ₄  -sinθ₄   0       0  ]
       [sinθ₄   cosθ₄   0       0  ]
       [0       0       1       d₄ ]
       [0       0       0       1  ]

3.3 运动学求解末端姿态

代码语言:javascript
复制
末端位置
x = a₁cosθ₁ + a₂cos(θ₁+θ₂)
y = a₁sinθ₁ + a₂sin(θ₁+θ₂)
z = d₁ - d₃  (注意:d₃为正值时末端下降)
末端角度
φ = θ₁ + θ₂ + θ₄

3.4 逆运动学求解

给定末端位姿(x, y, z, φ),求关节变量:

a. 求θ₂

代码语言:javascript
复制
c₂ = (x² + y² - a₁² - a₂²) / (2a₁a₂)
有两种解:
肘部向上:θ₂ = atan2(√(1-c₂²), c₂)
肘部向下:θ₂ = atan2(-√(1-c₂²), c₂)

b. 求θ₁

代码语言:javascript
复制
θ₁ = atan2(y, x) - atan2(a₂s₂, a₁ + a₂c₂)
其中 s₂ = sinθ₂, c₂ = cosθ₂

c. 求d₃

代码语言:javascript
复制
d₃ = d₁ - z

d. 求θ₄

代码语言:javascript
复制
θ₄ = φ - (θ₁ + θ₂)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 具身小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三、SCARA运动学模型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档