DH参数(Denavit-Hartenberg parameters)

为什么

  • 机械臂关节通常只关于一个轴进行移动(旋转或者平移),两段手臂的坐标系之间的变换可以由原本的6变量(3位移+3旋转)简化成4变量(DH参数)
  • 关节自由度高(例如手腕可绕3个轴旋转),也可以分解成多个单轴

是什么

在这里插入图片描述
图源《Introduction to Robotics Mechanics and Control》

四个参数中,有两个表示关节轴相对前一关节轴的变化,另外两个表示关节沿轴的运动。

轴到轴的变化

设两个相邻关节的轴 i − 1 _{i-1} i1和轴 i _{i} i的公共垂线为 l l l,方向为 i − 1 {i-1} i1 i {i} i,轴的变化可以表示为俩个参数

  • 轴间距离 a i − 1 a_{i-1} ai1
  • i − 1 _{i-1} i1旋转到轴 i _i i的角度 α i − 1 \alpha_{i-1} αi1,沿着 l l l右手系旋转

关节的运动

  • 沿轴平移 d i d_i di
  • 绕轴旋转 θ i \theta_i θi

通常其中一个为常数,另一个为变量,根据不同关节类型而定

坐标系

将轴 i − 1 _{i-1} i1到轴 i _{i} i中间的连接称为 l i n k i − 1 link_{i-1} linki1,靠近轴 i _{i} i的称为前端,靠近轴 i − 1 _{i-1} i1的称为后端,则有两种坐标系建立的方式,对应不同的变换矩阵 T i i − 1 T^{i-1}_i Tii1,坐标系 i i i i − 1 i-1 i1的变换。

设在后端

垂线 l l l设为 X i − 1 X_{i-1} Xi1,轴 i − 1 _{i-1} i1设为 Z i − 1 Z_{i-1} Zi1,转换和( a i − 1 , α i − 1 , d i , θ i a_{i-1}, \alpha_{i-1},d_i,\theta_i ai1,αi1,di,θi)有关

T i i − 1 = [ c θ i − s θ i 0 a i − 1 s θ i c α i − 1 c θ i c α i − 1 − s α i − 1 − s α i − 1 d i s θ i s α i − 1 c θ i s α i − 1 c α i − 1 c α i − 1 d i 0 0 0 1 ] T^{i-1}_{i} = \left[ \begin{array}{c} c\theta_i & -s\theta_i & 0 & a_{i-1} \\ s\theta_i c\alpha_{i-1} & c\theta_i c\alpha_{i-1} & -s\alpha_{i-1} & -s\alpha_{i-1} d_i \\ s\theta_i s\alpha_{i-1} & c\theta_i s\alpha_{i-1} & c\alpha_{i-1} & c\alpha_{i-1} d_i \\ 0 & 0 & 0 & 1\\ \end{array} \right] Tii1=cθisθicαi1sθisαi10sθicθicαi1cθisαi100sαi1cαi10ai1sαi1dicαi1di1
在这里插入图片描述
图源《Introduction to Robotics Mechanics and Control》

设在前端

同样垂线 l l l设为 X i − 1 X_{i-1} Xi1,但是将轴 i _{i} i设为 Z i − 1 Z_{i-1} Zi1,转换和( a i , α i , d i , θ i a_i, \alpha_i,d_i,\theta_i ai,αi,di,θi)有关

T i i − 1 = [ c θ i − s θ i c α i s θ i s α i a i c θ i s θ i c θ i c α i − c θ i s α i a i s θ i 0 s α i c α i d i 0 0 0 1 ] T^{i-1}_{i} = \left[ \begin{array}{c} c\theta_i & -s\theta_i c\alpha_i & s\theta_i s\alpha_i & a_i c\theta_i \\ s\theta_i & c\theta_i c\alpha_i & -c\theta_i s\alpha_i & a_i s\theta_i \\ 0 & s\alpha_i & c\alpha_i & d_i \\ 0 & 0 & 0 & 1\\ \end{array} \right] Tii1=cθisθi00sθicαicθicαisαi0sθisαicθisαicαi0aicθiaisθidi1
在这里插入图片描述
图源《Robotics Vision And Control》

怎么用

参数表

求机械臂运动学正解(forward kinematics)
将多个关节串联起来,获得末端位姿

例:UR5

ur5 ros github 参数 (以设在前端的方式建立坐标)

i a i a_i ai α i \alpha_i αi d i d_i di θ i \theta_i θi
101.5707963270.089159 θ 1 \theta_1 θ1
2-0.4250000 θ 2 \theta_2 θ2
3-0.3922500 θ 3 \theta_3 θ3
401.5707963270.10915 θ 4 \theta_4 θ4
50-1.5707963270.09465 θ 5 \theta_5 θ5
6000.0823 θ 6 \theta_6 θ6

q_home_offset = [0, -1.570796327, 0, -1.570796327, 0, 0]
joint_direction = [-1, -1, 1, 1, 1, 1]

末端位姿 T 6 0 = T 1 0 T 2 1 T 3 2 T 4 3 T 5 4 T 6 5 T^{0}_{6} = T^{0}_{1}T^{1}_{2}T^{2}_{3}T^{3}_{4}T^{4}_{5}T^{5}_{6} T60=T10T21T32T43T54T65

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值