zoukankan      html  css  js  c++  java
  • 机器人学——3.1-机械臂DH参数

    运动学是力学的一个分支,它在不考虑质量和作用力的前提下研究一个刚体,或者由多个刚体组成系统的运动。一个串联机械臂是由多个连杆和运动副组成的运动链。通过运动副的连接,一个连杆能相对于另一个连杆做相对运动。运动链的一端,即机械手的基座,通常上是固定不动的,而运动链另一端上一般有夹持工具或者末端执行器,可以在空间中自由运动。

    一个串联机械臂的整个链路是由一组被称为连杆的刚体组成的,这些连杆由关节(运动副)连接起来。每个关节有一个平移(滑动或移动副)或者转动(转动副)的自由度。关节的运动改变了其邻接连杆的相对角度和位置。通常大部分机器人的关节都是回转的。

    一个机器人的关节结构可以用一串字符来描述,例如 Puma560 为“RRRRRR”,斯坦福臂为“RRPRRR”,其中每个字符代表相应关节的类型,R是转动副,P为移动副。迪拉维特(Denavit)和哈滕贝格(Hartenberg)于1955年提出了一种用于描述这种串联式链路上连杆和关节几何关系的系统方法,这就是如今熟知的 D-H 参数法。

    NN 个关节(编号从 11NN)的机械臂具有 N+1N+1 个连杆(编号从 00NN)。连杆 00 是机械臂的基座,连杆 NN 则固接末端执行器或者工具。关节 jj 将连杆 j1j-1 连接到连杆上,因此关节 jj 带动连杆 $j。连杆被看作一个刚体,它确定了其相邻两个关节轴线的空间关系。一个连杆由长度 aja_j和扭转角 αjalpha_j,两个参数来描述。同样,一个关节也由两个参数来描述,其中连杆偏移 djd_j 是指沿着关节轴线从一个连杆坐标系到另一个连杆坐标系的距离,而关节角 θj heta_j,则是指一个连杆相对于另一个连杆关于关节轴线的转动角度。
    在这里插入图片描述
    如图所示。{j}{j} 坐标系固接于连杆 jj 的远端或末梢。关节 jj 的轴线即为该坐标系的 zz 轴。这些连杆和关节的参数即我们所熟知的 D-H 参数,总结于下表中。

    参数 符号 物理含义 定义
    关节角 θj heta_j xj1x_{j-1} 轴和 xjx_j 轴之间关于 zj1z_{j-1} 轴的角度 转动关节变量
    连杆偏移 djd_j 沿着 zj1z_{j-1} 轴,j1j-1 坐标系原点到 xjx_j 轴的距离 移动关节变量
    连杆长度 aja_j 沿着 xjx_j 轴,zj1z_{j-1} 轴和 zjz_j 轴之间的距离;对于相交轴,它与 z^j1×z^jhat{z}_{j-1} imeshat{z}_j 平行 常量
    连杆扭转角 αjalpha_j zj1z_{j-1} 轴和 zjz_j 轴之间关于 xjx_{j} 轴的角度 常量
    关节类型 σjsigma_j σ=0sigma=0为转动副,σ=1sigma=1为移动副 常量

    按照约定,第一个关节,即关节 11,连接连杆 00 和连杆 11。连杆 00 为机器人的基座。通常来说第一个连杆有 d1=α1=0d_1=alpha_1=0,然而我们可以设定 d1>0d_1>0 用来表示肩关节的高度超出基座。在一个制造系统中,基座通常是固定在环境中的,然而它有可能安装在一个移动的基座上,例如一架航天飞机、一个水下机器人或者一辆卡车。

    最后一个关节,即关节 NN,连接连杆 N1N-1 和连杆 NN。连杆 NN 是机器人的工具,它的相关参数 dNd_NaNa_N 分别代表了工具的长度及其 xx 轴的偏移量。如图所示,这个工具通常指向 zz 轴。

    从连杆坐标系 {j1}{j-1} 到坐标系 {j}{j} 的变换被定义为基本旋转和平移,其形式如下:
    j1Aj(θj,dj,aj,αj)=TRz(θj)Tz(dj)Tx(aj)TRx(αj) ^{j-1}A_j( heta_j,d_j,a_j,alpha_j)=T_{Rz}( heta_j)T_z(d_j)T_x(a_j)T_{Rx}(alpha_j) 展开如下
    j1Aj=(cosθjsinθjcosαjsinθjsinαjajcosθjsinθjcosθjcosαjcosθjsinαjajsinθj0sinαjcosαjdj0001) ^{j-1}A_j=left( egin{matrix} cos heta _j& -sin heta _jcos alpha _j& sin heta _jsin alpha _j& a_jcos heta _j\ sin heta _j& cos heta _jcos alpha _j& -cos heta _jsin alpha _j& a_jsin heta _j\ 0& sin alpha _j& cos alpha _j& d_j\ 0& 0& 0& 1\ end{matrix} ight)
    参数 aja_jαjalpha_j,始终是常量。对于转动关节 θj heta_j 是关节变量且 djd_j 是常量,然而对于移动关节 djd_j 是变量,θj heta_j 是常量,且 αj=0alpha_j=0。在很多公式中,我们将使用如下的广义关节坐标:
    qj={θj,σj=0dj,σj=1 q_j=left{ egin{array}{l} heta _j,quadsigma_j=0转动关节\[1em] d_j,quadsigma_j=1移动关节\ end{array} ight. 对于一个 NN 轴的机器人,其广义关节坐标为 qCqinmathcal{C},其中 CRNmathcal{C}subsetmathbb{R}^N 被称为关节空间或者位形空间。一般情况下,一个全旋转关节机器人 CSNmathcal{C}subsetmathbb{S}^N 的关节坐标被称为关节角度。这种关节坐标同时也被称为机械臂姿态,它不同于属于笛卡儿姿态 ξSE(3)xiin SE(3) 的末端执行器的姿态。

    我们使用机器人工具箱中的Link对象来描述一个机器人连杆,其创建如下:

    
    >> L = Link([0, 0.1, 0.2, pi/2, 0])
    L = 
     theta=q, d=0.1, a=0.2, alpha=1.571, offset=0 (R,stdDH)
    

    其中,输入向量的元素按顺序分别是 θj heta_jdjd_jaja_jαjalpha_j。而可选的第 55 个元素 σjsigma_j 则表明该关节是转动的 σj=0sigma_j=0 还是移动的 σj=1sigma_j=1 ,如果未指定该值则默认为转动关节。
    Link对象的显示值不仅给出了其运动学参数,还表示了其他的一些状态,例如它是一个转动关节(标签“R”),以及使用了标准的 D-H 参数表达(标签“stdDH”)。

    尽管赋给了 θ heta 一个值,但并没有显示出来——这个值在运动学参数系列中仅仅作为一个占位者。θ heta 将被关节变量 qq 所取代,因此它的值在Link对象中被忽略掉了。这个值将由Link对象进行管理。

    q=0.5q=0.5 时,连杆变换矩阵如下:

    >> L.A(0.5)
    ans =
        0.8776   -0.0000    0.4794    0.1755
        0.4794    0.0000   -0.8776    0.0959
             0    1.0000    0.0000    0.1000
             0         0         0    1.0000
    

    这是一个 4×44×4 的齐次变换矩阵。我们可以对不同连杆参数的值进行读取或更改。例如:

    >> L.RP
    ans =
        'R'
    

    它表明这个连杆是一个转动型的。而

    >> L.a
    ans =
        0.2000
    

    它返回运动参数 aa 的值。最后,一个连杆还能包含一个偏移量:

    >> L.offset = 0.5;
    >> L.A(0)
    ans =
        0.8776   -0.0000    0.4794    0.1755
        0.4794    0.0000   -0.8776    0.0959
             0    1.0000    0.0000    0.1000
             0         0         0    1.0000
    

    该值将在计算连杆变换之前加到关节变量中。

  • 相关阅读:
    (转)移动端实现垂直居中的几种方法
    FloatingActionButton 完全解析
    android 开源编辑器
    如何使用PullToRefresh
    Android 使用代码主动去调用控件的点击事件(模拟人手去触摸控件)
    Gradle 下载
    android studio 中移除module和恢复module
    android studio 使用jar包,arr包和怎么使用githup开源项目中的aar包或module
    DrawerLayout 和 NavigationView 的使用
    android studio 集成微信登录
  • 原文地址:https://www.cnblogs.com/thewaytotheway/p/12847240.html
Copyright © 2011-2022 走看看