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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机械臂——DH参数

發(fā)布時(shí)間:2023/12/14 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机械臂——DH参数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

DH參數(shù)

DH參數(shù)存在三種不同的描述:

根據(jù)機(jī)器人學(xué)中的最小線性表示約定,歐幾里得空間中的坐標(biāo)變換,最少需要由4個(gè)參數(shù)描述

  • 標(biāo)準(zhǔn)DH參數(shù) (四參數(shù))

    標(biāo)準(zhǔn)DH參數(shù)由Denavit和Hartenberg提出,在一些舊教材上介紹得多,適用于開鏈機(jī)器人建模,在描述樹狀(一個(gè)連桿末端連接兩個(gè)關(guān)節(jié))和閉鏈結(jié)構(gòu)時(shí)會(huì)產(chǎn)生歧義。不建議使用。

  • 改進(jìn)DH參數(shù) Modified DH(四參數(shù))

    Khalil和Kleinfinger提出的一種修改DH法,適用于開鏈,樹狀和閉鏈機(jī)器人建模。建議使用。

  • 改進(jìn)DH參數(shù) Modified DH(五參數(shù))

    在精度標(biāo)定里,在四個(gè)參數(shù)的基礎(chǔ)上,新引入一個(gè)參數(shù)解決相鄰連桿平行時(shí)存在的奇異性問題,和上面兩個(gè)DH參數(shù)的應(yīng)用場(chǎng)景不同。

改進(jìn)DH參數(shù)

連桿的坐標(biāo)系固定在連桿的近端(前一個(gè)關(guān)節(jié))

  • 變換順序

α→a→θ→d\alpha \to a \to \theta \to d αaθd

  • 變換

n?1Tn=Rotxn?1(αn?1)?Transxn?1(an?1)?Rotzn(θn)?Transzn(dn)^{n-1}T_n = \text{Rot}_{x_{n-1}}(\alpha_{n-1}) \cdot \text{Trans}_{x_{n-1}}(a_{n-1}) \cdot \text{Rot}_{z_n}(\theta_n) \cdot \text{Trans}_{z_n}(d_n) n?1Tn?=Rotxn?1??(αn?1?)?Transxn?1??(an?1?)?Rotzn??(θn?)?Transzn??(dn?)

  • 參數(shù)說明

    DH參數(shù)說明
    連桿長度ai?1a_{i-1}ai?1?z^i?1\hat{z}_{i-1}z^i?1?軸與z^i\hat{z}_{i}z^i?軸的公法線長度,標(biāo)量,為桿i?1i-1i?1的連桿長(并不是物理意義上的兩桿長度)
    連桿扭轉(zhuǎn)角αi?1\alpha_{i-1}αi?1?關(guān)節(jié)軸線z^i?1\hat{z}_{i-1}z^i?1?z^\hat{z}z^的轉(zhuǎn)角
    連桿偏距did_idi?x^i?1\hat{x}_{i-1}x^i?1?與軸線z^\hat{z}z^的交點(diǎn)到連桿坐標(biāo)系i{i}i原點(diǎn)的有向距離(正向沿z^i\hat{z}_iz^i?方向)
    關(guān)節(jié)轉(zhuǎn)角θi\theta_iθi?x^i?1\hat{x}_{i-1}x^i?1?x^i\hat{x}_ix^i?的轉(zhuǎn)角,在z^\hat{z}z^處度量

程序仿真

Matlab

函數(shù)說明

L = Link(dh, options) is a link object using the specified kinematic convention and with parameters:

  • DH

    DH = [THETA D A ALPHA SIGMA OFFSET]
    • SIGMA :關(guān)節(jié)形式,0為旋轉(zhuǎn),1為平移,默認(rèn)為0
    • OFFSET :是設(shè)置的機(jī)械臂的初始姿態(tài)與DH描述的數(shù)學(xué)模型機(jī)械臂之間的偏移量,旋轉(zhuǎn)為角度,平移為距離。
  • Options

    • standard: for standard D&H parameters (default).
    • modified: for modified D&H parameters.
    • revolute: for a revolute joint, can be abbreviated to ‘r’ (default)
    • prismatic: for a prismatic joint, can be abbreviated to ‘p’

程序

clear L;%% 準(zhǔn)備 %啟動(dòng)工具箱 startup_rvc;%角度轉(zhuǎn)換 du=pi/180; %度 radian=180/pi; %弧度%關(guān)節(jié)長度 L1=0.40;L2=0.39;L3=0.37; L4=0.08;%末端執(zhí)行器%% DH法建立模型,關(guān)節(jié)角,連桿偏移,連桿長度,連桿扭轉(zhuǎn)角,關(guān)節(jié)類型(0轉(zhuǎn)動(dòng),1移動(dòng)) L(1) = Link('alpha',0, 'a',0, 'offset',0, 'd',L1,'modified'); L(2) = Link('alpha',pi/2, 'a',0, 'offset',pi/2, 'd',0 ,'modified'); L(3) = Link('alpha',0 , 'a',L2,'offset',0, 'd',0, 'modified'); L(4) = Link('alpha',pi/2 ,'a',0, 'offset',0, 'd',0, 'modified'); L(5) = Link('alpha',0 , 'a',0, 'offset',0, 'd',L3,'modified'); L(6) = Link('alpha',pi/2 ,'a',0, 'offset',0, 'd',0, 'modified');plotopt = {'noraise', 'nowrist', 'nojaxes', 'delay',0}; tool_char=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]; six_link=SerialLink(L,'name','six link','tool',tool_char);%% 顯示機(jī)械臂 figure(1) hold on six_link.plot([0 0 0 0 0 0], plotopt{:}); hold off

Python

函數(shù)說明

class roboticstoolbox.robot.DHLink.RevoluteMDH(d=0.0, a=0.0, alpha=0.0, offset=0.0, qlim=None, flip=False, **kwargs) # Class for revolute links using modified DH convention

參數(shù)含義

  • d (float) – kinematic - link offset
  • alpha (float) – kinematic - link twist
  • a (float) – kinematic - link length
  • offset (float) – kinematic - joint variable offset
  • qlim (float ndarray*(1,2)*) – joint variable limits [min, max]
  • flip (bool) – joint moves in opposite direction
  • m (float) – dynamic - link mass
  • r (float ndarray*(3)*) – dynamic - position of COM with respect to link frame
  • I (ndarray) – dynamic - inertia of link with respect to COM
  • Jm (float) – dynamic - motor inertia
  • B (float*, or* ndarray*(2,**)*) – dynamic - motor viscous friction: B=B?=B?, [B?, B?]
  • Tc (ndarray*(2,**)*) – dynamic - motor Coulomb friction [Tc?, Tc?]
  • G (float) – dynamic - gear ratio

A subclass of the DHLink class for a revolute joint that holds all information related to a robot link such as kinematics parameters, rigid-body inertial parameters, motor and transmission parameters.

The link transform is
Ttx(ai?1)?Trx(αi?1)?Trz(qi)?Ttz(di)\mathbf{T}{tx}(a{i-1}) \cdot \mathbf{T}{rx}(\alpha{i-1}) \cdot \mathbf{T}{rz}(q_i) \cdot \mathbf{T}_{tz}(d_i) Ttx(ai?1)?Trx(αi?1)?Trz(qi?)?Ttz?(di?)
where qiq_iqi? is the joint variable.

程序

import roboticstoolbox as rtb from math import pi import numpy as npL1=0.40 L2=0.39 L3=0.37 L4=0.08 # 末端執(zhí)行器leg = rtb.DHRobot([rtb.RevoluteMDH(alpha=0, a=0, offset=0, d=L1),rtb.RevoluteMDH(alpha=pi/2, a=0, offset=pi/2,d=0 ),rtb.RevoluteMDH(alpha=0, a=L2, offset=0, d=0 ),rtb.RevoluteMDH(alpha=pi/2, a=0, offset=0, d=0 ),rtb.RevoluteMDH(alpha=0, a=0, offset=0, d=L3),rtb.RevoluteMDH(alpha=pi/2, a=0, offset=0, d=0 )],name="six link")init_T = np.array([0,0,0,0,0,0]) leg.plot(init_T, movie='six link.png')input()

參考

MATLAB-Robot(2):標(biāo)準(zhǔn)DH和改進(jìn)DH的區(qū)別

為什么改進(jìn)的DH模型優(yōu)于標(biāo)準(zhǔn)DH模型,卻大多都是使用標(biāo)準(zhǔn)D-H模型

淺談標(biāo)準(zhǔn)DH(SDH)和改進(jìn)DH(MDH)

《現(xiàn)代機(jī)器人學(xué):機(jī)構(gòu)、規(guī)劃與控制》

總結(jié)

以上是生活随笔為你收集整理的机械臂——DH参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。