日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

机器人学DH参数及利用matlab符号运算推导

發布時間:2023/12/14 循环神经网络 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器人学DH参数及利用matlab符号运算推导 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

重新復習了一下機器人學DH參數,并且利用matlab符號運算進行了推導,驗證了公式。

  • 引言
    • 1.DH參數原理
    • 2.Matlab符號運算驗證

1.DH參數原理


圖中的坐標系定義

  • 坐標系i{i}izzzziz_izi?和關節軸線iii共線,指向任意規定。
  • 坐標系i{i}ixxxxix_ixi?aia_iai?重合,由關節iii指向關節i+1i+1i+1,當ai=0a_i=0ai?=0,取xi=±zi+1×zix_i=±z_{i+1}\times z_ixi?=±zi+1?×zi?
  • 坐標系i{i}iyyyyiy_iyi?按右手法則規定。
  • 坐標系i{i}i的原點oio_ioi?取在xix_ixi?ziz_izi?的交點上;當ziz_izi?zi+z_{i+}zi+?相交時,原點取再兩軸交點上,當ziz_izi?zi+z_{i+}zi+?平行時,原點取在使di+1=0d_{i+1}=0di+1?=0的地方。

利用連桿坐標系定義相應的連桿參數

  • aia_iai?=從ziz_izi?zi+1z_{i+1}zi+1?沿xix_ixi?測量的距離(公垂線長度)
  • αi\alpha_iαi?=從ziz_izi?zi+1z_{i+1}zi+1?沿xix_ixi?旋轉的角度
  • did_idi?=從xi?1x_{i-1}xi?1?xix_{i}xi?沿ziz_izi?測量的距離
  • θi\theta_iθi?=從xi?1x_{i-1}xi?1?xix_{i}xi?沿ziz_izi?旋轉的角度

坐標系{i}\{i\}{i}相對坐標系{i?1}\{i-1\}{i?1}的變換矩陣i?1Ti{}^{i-1}T_{i}i?1Ti?可以看作四個子變換矩陣的乘積:

  • xi?1x_{i-1}xi?1?軸轉αi?1\alpha_{i-1}αi?1?
    Rotx(αi?1)=[10000cosαi?1?sinαi?100sinαi?1cosαi?100001]R o t_{x}\left(\alpha_{i-1}\right)=\begin{bmatrix}1 &0&0&0\\ 0&cos\alpha_{i-1}&{-sin\alpha_{i-1}}&0\\0&{sin\alpha_{i-1}}&{cos\alpha_{i-1}}&{0}\\ {0}&{0}&{0}&{1}\end{bmatrix}Rotx?(αi?1?)=?????1000?0cosαi?1?sinαi?1?0?0?sinαi?1?cosαi?1?0?0001??????
  • 沿xi?1x_{i-1}xi?1?軸移動ai?1a_{i-1}ai?1?
    Transx(ai?1)=[100ai?1010000100001]T r a n s_{x}\left(a_{i-1}\right)=\begin{bmatrix}1 &0&0&a_{i-1}\\ 0&1&0&0\\0&0&1&{0}\\ {0}&{0}&{0}&{1}\end{bmatrix}Transx?(ai?1?)=?????1000?0100?0010?ai?1?001??????
  • 沿ziz_{i}zi?軸移動θi\theta_{i}θi?
    Rotz(θi)=[cosθi?sinθi00sinθicosθi0000100001]R o t_{z}\left(\theta_{i}\right)=\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}Rotz?(θi?)=?????cosθi?sinθi?00??sinθi?cosθi?00?0010?0001??????
  • 沿ziz_{i}zi?軸移動did_{i}di?
    Transz(di)=[10000100001di0001]T r a n s_{z}\left(d_{i}\right)=\begin{bmatrix}1 &0&0&0\\ 0&1&0&0\\0&0&1&d_i\\ {0}&{0}&{0}&{1}\end{bmatrix}Transz?(di?)=?????1000?0100?0010?00di?1??????
  • 這些變換都是相對運動坐標系描述的,滿足從左到右的原則,可以得到最終變換公式如下:

    ii?1T=Rotx(αi)Transx(ai)Rotz(θi)Transz(di)_{i}^{i-1}T=R o t_{x}\left(\alpha_{i}\right)T r a n s_{x}\left(a_{i}\right)R o t_{z}\left(\theta_{i}\right)T r a n s_{z}\left(d_{i}\right)ii?1?T=Rotx?(αi?)Transx?(ai?)Rotz?(θi?)Transz?(di?)
    通常規定ai≥0a_i\ge0ai?0,因為它代表連桿長度,而αi,di,θi\alpha_i, d_i, \theta_iαi?,di?,θi?可正可負。

    ii?1T=[cosθi?sinθi0ai?1sinθicosαi?1cosθicosαi?1?sinαi?1?disinαi?1sinθisinαi?1cosθisinαi?1cosαi?1dicosαi?10001]_{i}^{i-1}T=\begin{bmatrix}{cos\theta_{i}}&{-sin\theta_{i}}&0&{a _{i-1}}\\ {sin\theta_{i}cos\alpha_{i-1}}&{cos\theta_{i}cos\alpha_{i-1}}&{-sin\alpha_{i-1}}&{-d_isin\alpha_{i-1}}\\{sin\theta_{i}sin\alpha_{i-1}}&{cos\theta_{i}sin\alpha_{i-1}}&{cos\alpha_{i-1}}&{d_icos\alpha_{i-1}}\\ {0}&{0}&{0}&{1}\end{bmatrix}ii?1?T=?????cosθi?sinθi?cosαi?1?sinθi?sinαi?1?0??sinθi?cosθi?cosαi?1?cosθi?sinαi?1?0?0?sinαi?1?cosαi?1?0?ai?1??di?sinαi?1?di?cosαi?1?1??????

    2.Matlab符號運算驗證

    利用Matlab的符號運算進行公式推導進行一下公式的驗證

    syms theta d alpha a M=DH_Trans(theta,d,alpha,a) function M=DH_Trans(theta,d,alpha,a)R_z_theta=[cos(theta),-sin(theta),0,0;...sin(theta),cos(theta),0,0;...0,0,1,0;...0,0,0,1];T_z_d=[1,0,0,0;...0,1,0,0;...0,0,1,d;...0,0,0,1];R_x_alpha=[1,0,0,0;...0,cos(alpha),-sin(alpha),0;...0,sin(alpha),cos(alpha),0;...0,0,0,1];T_x_a=[1,0,0,a;...0,1,0,0;...0,0,1,0;...0,0,0,1];M=R_x_alpha*T_x_a*R_z_theta*T_z_d; end

    結果是一致的

    總結

    以上是生活随笔為你收集整理的机器人学DH参数及利用matlab符号运算推导的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。