六自由度协作臂两种 DH 参数建模方式

六自由度协作臂两种 DH 参数建模方式

  1. 机械臂的 DH 参数建模主要为了正向与逆向运动学计算,需要关注以下参数:① 连杆长度 a a a;② 连杆扭角 α \alpha α;③ 偏置 d d d;④ 关节角 θ \theta θ;⑤ o f f s e t offset offset

  2. DH 法简化就是不考虑 y 轴位移和旋转的 2 个自由度,仅考虑 x x x z z z 轴的位移与旋转,因此通过四个参数(上述 ① — ④)表示六自由度位姿;参数 ⑤ 主要控制机械臂的初始状态,一般 DH 建模用不到,只是 matlab 仿真时可能会需要

  3. 四个参数可以分为关节变量和固定参数,旋转关节下关节变量是关节角 θ \theta θ,移动关节下关节变量是偏置 d d d

  4. 目前主要有两种 DH 参数建模方法,其中标准DH主要适用在开式运动链的机械结构上,而对闭链机构建立坐标系会发生坐标系重合的风险从而产生歧义;改进 DH 参数建模不会产生歧义应用范围更广,在闭式运动链结构建模上(如并联、四足等)会使运动求解过程更加简单

  5. 由于选择 z z z 轴, x x x 轴和原点有很大的自由性,所以以下只是建系的一种选择,怎么建系需要根据自身情况来判断

建模

对于协作臂,如下竖直状态即为默认初始状态,对关节、连杆的序号定义如下所示

协作臂关节与连杆序号定义

SDH

1. 确定 z 轴

(1)基本原则:设置 z i z_i zi 为第 i + 1 i+1 i+1 个关节的驱动轴(感觉很抽象,但毕竟关节从 1 开始计数至 n,而为了便于定义, z z z 要从 0 开始计数至 n-1;其实这样关联也符合一种约定,即关节 i i i 被驱动时,连杆 i i i 以及其相连的坐标系 o i x i y i z i o_ix_iy_iz_i oixiyizi 会经历一个相应的运动)

(2)如果第 i + 1 i+1 i+1 个关节是转动关节(平动关节),则 z i z_i zi 是第 i + 1 i+1 i+1 个关节的转动轴(移动轴)

(3) z z z 轴方向任意,但通常平行的 z z z 轴方向尽量相同(如下图为电机旋转反方向)【之前曾考虑是不是以确保逆时针旋转为正来确定 $z $轴方向,后来想想没必要,建立 urdf 用于仿真时里面可以设置旋转的正方向,此处 DH 建模不应受到限制】

SDH 中 z 轴定义示例

2. 确定原点

(1)基本原则:除了基座原点 o 0 o_0 o0,其余原点选取为轴 z z z 公法线与轴 z z z 的交点

(2)基坐标系 o 0 x 0 y 0 z 0 o_0x_0y_0z_0 o0x0y0z0 固定不动, o 0 o_0 o0 可选择轴 z 0 z_0 z0 上任意一点

(3)会存在三种不同的情况:

  • z i − 1 z_{i-1} zi1 与 轴 z i z_i zi 异面:取两轴线公垂线与 z i z_i zi 的交点为 o i o_i oi
  • z i − 1 z_{i-1} zi1 与 轴 z i z_i zi 平行:公垂线无数,可自由选择 o i o_i oi;一般选择经过 o i − 1 o_{i-1} oi1 的公垂线与 z i z_i zi 的交点或者 z i z_i zi 与轴 z i + 1 z_{i+1} zi+1 的公垂线与 z i z_i zi 的交点 o i o_i oi
  • z i − 1 z_{i-1} zi1 与 轴 z i z_i zi 相交:选择交点为 o i o_i oi

3. 确定 x 轴

(1)基本原则:除了基坐标系的 x 0 x_0 x0 轴,其余选取轴线之间的公垂线为 x x x

(2)基坐标系的 x 0 x_0 x0 轴可任意选取

(3)依据确定原点的思路找轴线 z i − 1 z_{i-1} zi1 与 轴线 z i z_i zi 之间的公垂线,选择公垂线为 x i x_i xi 轴,方向为关节 i i i 指向关节 i + 1 i+1 i+1 的方向

(4)如果轴 z i − 1 z_{i-1} zi1 与 轴 z i z_i zi 相交无公垂线,则选择 x i x_i xi 为轴 z i − 1 z_{i-1} zi1 与 轴 z i z_i zi 构成的平面的垂线方向,正方向随意选择

(5)通常平行的 x x x 轴尽量方向相同(不相同也没事)

4. 确定 y 轴

右手定则确定

5. 补充坐标系

补充末端工具坐标系,与坐标系 o 5 x 5 y 5 z 5 o_5x_5y_5z_5 o5x5y5z5 姿态相同,只有一个偏移

6. 确定参数

SDH 参数顺序: θ \theta θ d d d α \alpha α a a a(这个顺序应该是计算这些参数的顺序,需要基于计算上个参数的变换结果,具体可参考下面的知乎链接,个人计算时似乎没感觉有这个要求)

参数定义:

  • 关节角 θ i \theta_i θi:绕 z i − 1 z_{i-1} zi1 轴(垂直于 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 轴,原点 o i − 1 o_{i-1} oi1 z i − 1 z_{i-1} zi1 z i z_i zi 的公垂线( x i x_i xi 轴)的距离,方向根据沿 z i − 1 z_{i-1} zi1 轴的具体方向确定
  • 连杆扭角 α i \alpha_i αi:绕 x i x_i xi 轴,轴 z i − 1 z_{i-1} zi1 转至轴 z i z_i zi 的角度,方向通过右手定则确定
  • 连杆长度 a i a_i ai:沿 x i x_i xi 轴(关节轴线公垂线,一定是正方向),轴 z i − 1 z_{i-1} zi1 与轴 z i z_i zi 的距离,总为正值
  • o f f s e t offset offset 主要控制机械臂的初始状态

【协作臂尺寸图】

协作臂尺寸图

【初始状态与 SDH 建模结果】

初始状态与 SDH 建模结果

协作臂通常以竖直状态为初始状态,但个人使用过程中一般以如下状态为初始状态。为了确保当前状态下关节变量 θ \theta θ 为 0,因此需要修改 o f f s e t offset offset(将当前状态下计算得到的 θ \theta θ 值赋给 o f f s e t offset offset)。通过上述方式建立的具体 SDH 如下图和下表所示

i i i θ i \theta_i θi d i d_i di α i \alpha_i αi a i a_i ai o f f s e t offset offset
10140 π 2 \frac{\pi}{2} 2π00
2000375 π 2 \frac{\pi}{2} 2π
3000345 − π 2 -\frac{\pi}{2} 2π
40122 − π 2 -\frac{\pi}{2} 2π0 − π 2 -\frac{\pi}{2} 2π
50122 − π 2 -\frac{\pi}{2} 2π0 − π 2 -\frac{\pi}{2} 2π
6093000

MDH

MDH 与 SDH 的区别在于连杆上坐标系建立的位置不同:SDH 方法将连杆的坐标系固定在连杆的后端,而 MDH 方法将连杆的坐标系固定在连杆的前端

1. 确定 z 轴

(1)基本原则:设置 z i z_i zi 为第 i 个关节的驱动轴

(2)如果第 i i i 个关节是转动关节(平动关节),则 z i z_i zi 是第 i i i 个关节的转动轴(移动轴)

(3) z z z 轴方向任意,但通常平行的 z z z 轴方向尽量相同(如下图为电机旋转反方向)

MDH 中 z 轴定义示例

2. 确定原点

(1)基本原则:除了末端坐标系原点 o 6 o_6 o6,选取轴 z z z 公法线与轴 z z z 的交点

(2)会存在三种不同的情况:

  • z i z_i zi 与 轴 z i + 1 z_{i+1} zi+1 异面:取两轴线公垂线与 z i z_i zi 的交点为 o i o_i oi
  • z i z_i zi 与 轴 z i + 1 z_{i+1} zi+1 平行:公垂线无数,可自由选择 o i o_i oi;一般选择经过 o i − 1 o_{i-1} oi1 的公垂线与 z i z_i zi 的交点或者经过 o i + 1 o_{i+1} oi+1 的公垂线与 z i z_i zi 的交点为原点 o i o_i oi
  • z i z_i zi 与 轴 z i + 1 z_{i+1} zi+1 相交:选择交点为 o i o_i oi

(3) o 6 o_6 o6 可选择轴 z 6 z_6 z6 上任意一点,一般会选择末端工具的末端

3. 确定 x 轴

(1)基本原则:除了末端坐标系的 x 6 x_6 x6 轴,选取轴线之间的公垂线为 x x x

(2)依据确定原点的思路找轴线 z i z_i zi 与 轴线 z i + 1 z_{i+1} zi+1 之间的公垂线,选择公垂线为 x i x_i xi 轴,方向为关节 i i i 指向关节 i + 1 i+1 i+1 的方向

(3)如果轴 z i z_i zi 与 轴 z i + 1 z_{i+1} zi+1 相交无公垂线,则选择 x i x_i xi 为轴 z i z_i zi 与 轴 z i + 1 z_{i+1} zi+1 构成的平面的垂线方向,正方向随意选择

(4)末端坐标系的 x 6 x_6 x6 轴可任意选取,一般方向可与 x 5 x_5 x5 轴相同

(5)通常平行的 x x x 轴尽量方向相同(不相同也没事)

4. 确定 y 轴

右手定则确定

5. 补充坐标系

补充基坐标系,一般就是基座底部

6. 确定参数

MDH 参数顺序: α \alpha α a a a θ \theta θ d d d

参数定义:

  • 连杆扭角 α i \alpha_i αi:绕 x i x_i xi 轴,轴 z i z_i zi 转至轴 z i + 1 z_{i+1} zi+1 的角度,方向通过右手定则确定
  • 连杆长度 a i a_i ai:沿 x i x_i xi 轴(关节轴线公垂线,一定是正方向),轴 z i z_i zi 与轴 z i + 1 z_{i+1} zi+1 的距离,总为正值
  • 关节角 θ i \theta_i θi:绕 z i z_i zi 轴(垂直于 z i z_i zi 的平面内),轴 x i − 1 x_{i-1} xi1 转至轴 x i x_i xi 的角度,符号根据右手定则确定
  • 偏置 d i d_i di:沿 z i z_i zi 轴,轴 x i − 1 x_{i-1} xi1 至轴 x i x_i xi 的距离,方向根据沿 z i z_i zi 轴的具体方向确定

【初始状态与 MDH 建模结果(浅蓝色的那个坐标是坐标系1)】

初始状态与 MDH 建模结果(浅蓝色的那个坐标是坐标系1)

i i i θ i \theta_i θi d i d_i di α i − 1 \alpha_{i-1} αi1 a i − 1 a_{i-1} ai1 o f f s e t offset offset
10140000
200 π 2 \frac{\pi}{2} 2π0 π 2 \frac{\pi}{2} 2π
3000375 − π 2 -\frac{\pi}{2} 2π
401220345 − π 2 -\frac{\pi}{2} 2π
50122 − π 2 -\frac{\pi}{2} 2π0 − π 2 -\frac{\pi}{2} 2π
6093 − π 2 -\frac{\pi}{2} 2π00

参考链接

https://zhuanlan.zhihu.com/p/146588712

《机器人建模与控制》

《机器人学导论》

构建 URDF:https://weibo.com/ttarticle/p/show?id=2309404820496083452171

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值