机械臂运动学基础

对于我们人类而言,我们通过肩部关节、肘部关节和腕部关节感知到手掌的位置和姿态。对于机械臂亦是如此,我们要获取机械臂的末端工具的位置和姿态,要通过机械臂的各个关节去计算。而机械臂运动学正是在已知机械臂关节角度的情况下计算机械臂末端位置和姿态,将关节空间映射到笛卡尔空间。

一、连杆变换

机械臂是由关节将一系列连杆连接组合成运动链。机械臂各个关节电机通过连杆传递运动实现末端位姿的改变,因此我们要获取机械臂末端相对于机械臂基座的位姿,首先要建立起连杆之间的变换关系,这也是运动学的主要内容。

1.1 连杆参数描述

在这里插入图片描述

连杆 i − 1 i-1 i1绕关节轴 i − 1 i-1 i1转动从而带动关节轴 i i i运动。要描述连杆 i − 1 i-1 i1的运动,也即关节轴 i i i相对于关节轴 i − 1 i-1 i1的运动,要通过两个参数进行描述:

  • 连杆长度 a i − 1 a_{i-1} ai1:关节轴 i − 1 i-1 i1和关节轴 i i i之间的距离,即关节轴之间的公垂线长度
  • 连杆扭转角 α i − 1 \alpha_{i-1} αi1:关节轴 i − 1 i-1 i1和关节轴 i i i之间夹角,即两轴线之间的夹角。作两轴公垂线的垂面,将两轴轴线投影到该垂面上,按照右手定则将关节轴 i − 1 i-1 i1转动 α i − 1 \alpha_{i-1} αi1到关节轴 i i i

在这里插入图片描述

上述已经实现了描述公垂线与关节轴 i i i轴线的交点相对于关节轴 i i i的运动,更进一步要实现的是连杆 i i i与关节轴 i i i交点的运动,也是描述连杆 i − 1 i-1 i1和连杆 i i i之间的连接关系。同样也用两个参数描述:

  • 连杆轴距 d i d_i di:连杆 i − 1 i-1 i1和连杆 i i i沿公共轴线移动的距离
  • 关节角 θ i \theta_i θi:连杆 i − 1 i-1 i1和连杆 i i i绕公共轴线旋转的夹角

综上,机械臂的每个连杆可以用四个参数进行描述:

  • 描述相邻关节轴关系两个参数:
    • 连杆扭转角 α i − 1 \alpha_{i-1} αi1:关节轴 i − 1 i-1 i1绕公共垂线旋转到达关节轴 i i i的角度
    • 连杆长度 a i − 1 a_{i-1} ai1:关节轴 i − 1 i-1 i1沿公垂线移动到关节轴 i i i的距离
  • 描述相邻连杆关系的两个参数:
    • 关节角 θ i \theta_i θi:连杆 i − 1 i-1 i1绕关节轴 i i i旋转到达连杆 i i i的角度
    • 连杆轴距 d i d_i di:连杆 i − 1 i-1 i1沿公共轴线到达连杆 i i i移动的距离

1.2 连杆坐标系定义

为了描述连杆之间的相对位置关系,建立数学表达式,进行连杆坐标系定义和建立。

在这里插入图片描述

建立坐标系的过程:

  • 固定在关节轴 i i i上的坐标系命名为坐标系 { i } \{ i \} {i}
  • 坐标系 { i } \{ i \} {i} Z Z Z轴与关节轴 i i i的轴线重合
  • 建立关节轴 i i i和关节轴 i + 1 i+1 i+1的公共垂线 a i a_i ai
  • 坐标系 { i } \{ i \} {i}的原点为公共垂线 a i a_i ai与关节轴 i i i轴线的交点
  • 坐标系 { i } \{ i \} {i} X X X轴与公共垂线 a i a_i ai重合
  • 根据右手定则确定坐标系 { i } \{ i \} {i} Y Y Y

机械臂基座和末端坐标系定义:

  • 固定在基座和末端的坐标系可以任意设定方向,但是要以问题简化为主
  • 例如固定在基座的参考坐标系 { 0 } \{ 0 \} {0} Z 0 Z_0 Z0轴与关节轴1方向一致
  • 例如关节 n n n的坐标系 { n } \{ n \} {n}与坐标系 { n − 1 } \{ n-1 \} {n1} X X X轴一致

连杆参数的坐标系下定义:

  • 连杆扭转角 α i − 1 \alpha_{i-1} αi1:绕 X i − 1 X_{i-1} Xi1轴,从 Z i − 1 Z_{i-1} Zi1轴旋转到 Z i Z_i Zi轴的角度
  • 连杆长度 a i − 1 a_{i-1} ai1:沿 X i − 1 X_{i-1} Xi1轴,从 Z i − 1 Z_{i-1} Zi1轴移动到 Z i Z_i Zi轴的距离
  • 关节角 θ i \theta_i θi:沿 Z i − 1 Z_{i-1} Zi1轴,从 X i − 1 X_{i-1} Xi1轴旋转到 X i X_i Xi轴的角度
  • 连杆轴距 d i d_i di:沿 Z i − 1 Z_{i-1} Zi1轴,从 X i − 1 X_{i-1} Xi1轴移动到 X i X_i Xi轴的距离

上述四个参数组成机械臂DH参数。

二、运动学

2.1 相邻连杆变换

在这里插入图片描述

坐标系 { i } \{ i \} {i}相对于坐标系 { i − 1 } \{ i-1 \} {i1}的变换可以通过四个DH参数构成的函数实现。为了更加清楚表述变换过程,建立中间坐标系坐标系 { R } \{ R \} {R}、坐标系 { Q } \{ Q \} {Q}和坐标系 { P } \{ P \} {P}。变换过程如下:

  • 坐标系 { i − 1 } \{ i-1 \} {i1} X i − 1 X_{i-1} Xi1轴旋转连杆扭转角 α i − 1 \alpha_{i-1} αi1到达坐标系 { R } \{ R \} {R}

  • 坐标系 { R } \{ R \} {R}沿着 X R X_R XR轴移动连杆长度 a i − 1 a_{i-1} ai1到达坐标系 { Q } \{ Q \} {Q}

  • 坐标系 { Q } \{ Q \} {Q} Z Q Z_Q ZQ轴旋转关节角 θ i \theta_i θi到达坐标系 { P } \{ P \} {P}

  • 坐标系 { P } \{ P \} {P}沿着 Z P Z_P ZP轴移动连杆轴距 d i d_i di到达坐标系 { i } \{ i \} {i}

因此坐标系 { i } \{ i\} {i}中定义的矢量变换为坐标系 { i − 1 } \{ i-1 \} {i1}中描述为:
i − 1 p = R i − 1 T ⋅ Q R T ⋅ P Q T ⋅ i P T ⋅ i p i − 1 p = i i − 1 T ⋅ i p i i − 1 T = R i − 1 T ⋅ Q R T ⋅ P Q T ⋅ i P T ^{i-1}\textrm{p} = _{R}^{i-1}\textrm{T} \cdot _{Q}^{R}\textrm{T} \cdot _{P}^{Q}\textrm{T} \cdot _{i}^{P}\textrm{T} \cdot ^{i}\textrm{p} \\ ^{i-1}\textrm{p} = _{i}^{i-1}\textrm{T} \cdot ^{i}\textrm{p} \\ _{i}^{i-1}\textrm{T} = _{R}^{i-1}\textrm{T} \cdot _{Q}^{R}\textrm{T} \cdot _{P}^{Q}\textrm{T} \cdot _{i}^{P}\textrm{T} i1p=Ri1TQRTPQTiPTipi1p=ii1Tipii1T=Ri1TQRTPQTiPT
将四个DH参数代入其中,可得:
i − 1 i T = R x ( α i − 1 ) D x ( a i − 1 ) R z ( θ i ) D z ( d i ) = [ 1 0 0 0 0 c o s α i − s i n α i 0 0 s i n α i c o s α i 0 0 0 0 1 ] ⋅ [ 1 0 0 a i 0 1 0 0 0 0 1 0 0 0 0 1 ] ⋅ [ c o s θ i − s i n θ i 0 0 s i n θ i c o s θ i 0 0 0 0 1 0 0 0 0 1 ] ⋅ [ 1 0 0 0 0 1 0 0 0 0 0 d i 0 0 1 1 ] [ c θ i − s θ i 0 a i − 1 s θ i c α i − 1 c θ i c α i − 1 − s α i − 1 − d i s α i − 1 s θ i s α i − 1 c θ i s α i − 1 c α i − 1 d i c α i − 1 0 0 0 1 ] _{i-1}^{i}\textrm{T} = R_x(\alpha_{i-1})D_x(a_{i-1})R_z(\theta_i)D_z(d_i) \\ = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & cos\alpha_i & -sin\alpha_i & 0\\ 0 & sin\alpha_i & cos\alpha_i & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}\cdot \begin{bmatrix} 1 & 0 & 0 & a_i\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} cos\theta_i & -sin\theta_i & 0 & 0\\ sin\theta_i & cos\theta_i & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}\cdot \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & d_i\\ 0 & 0 & 1 & 1 \end{bmatrix} \\ \begin{bmatrix} c\theta_i & -s\theta_i & 0 & a_{i-1} \\ s\theta_ic\alpha_{i-1} & c\theta_ic\alpha_{i-1} & -s\alpha_{i-1} & -d_is\alpha_{i-1} \\ s\theta_is\alpha_{i-1} & c\theta_is\alpha_{i-1} & c\alpha_{i-1} & d_ic\alpha_{i-1} \\ 0 & 0 & 0 & 1 \end{bmatrix} i1iT=Rx(αi1)Dx(ai1)Rz(θi)Dz(di)=10000cosαisinαi00sinαicosαi00001100001000010ai001cosθisinθi00sinθicosθi000010000110000100000100di1cθisθicαi1sθisαi10sθicθicαi1cθisαi100sαi1cαi10ai1disαi1dicαi11

2.2 机械臂连杆变换

在计算出机械臂所有相邻连杆的变换矩阵之后,可以通过连乘计算出任意两个坐标系的变换矩阵。机械臂坐标系 { N } \{ N \} {N}相对于坐标系 { 0 } \{ 0 \} {0}的变换矩阵为:
N 0 T = 1 0 T ⋅ 2 1 T ⋅ 3 2 T ⋅ . . . . . . N N − 1 T _{N}^{0}\textrm{T} = _{1}^{0}\textrm{T} \cdot _{2}^{1}\textrm{T} \cdot _{3}^{2}\textrm{T} \cdot ...... _{N}^{N-1}\textrm{T} N0T=10T21T32T......NN1T

参考

B站台大林沛群老师机器人课程https://www.bilibili.com/video/BV1v4411H7ez?from=search&seid=3067167301896237491&spm_id_from=333.337.0.0

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值