(2018年11月21日更新) D-H)建模方法是由Denavit和Hartenberg 提出的一種建模方法,主要用在機(jī)器人運(yùn)動(dòng)學(xué)上,這種方法在每個(gè)連桿上建立一個(gè)坐標(biāo)系,通過(guò)齊次坐標(biāo)變換來(lái)實(shí)現(xiàn)兩個(gè)連桿上坐標(biāo)的變換,在多連桿串聯(lián)的系統(tǒng)中,多次使用齊次坐標(biāo)變換,就可以建立首末坐標(biāo)系的關(guān)系。學(xué)習(xí)DH建模的主要知識(shí)點(diǎn)如下: DH建模分原版和修正版,修正版克服了原版建模中的一些問(wèn)題,比較常用,本文介紹修正版DH建模方法 預(yù)備知識(shí): 2、齊次坐標(biāo)變換矩陣 若要表示旋轉(zhuǎn),稍微復(fù)雜點(diǎn),由i系轉(zhuǎn)到j(luò)系,要考慮到軸與軸之間的多個(gè)夾角,最終得到一個(gè)旋轉(zhuǎn)姿態(tài)矩陣R,表達(dá)式里看著有好多夾角余弦,其實(shí)若只繞著某個(gè)軸轉(zhuǎn),很多值都會(huì)變得簡(jiǎn)潔。 上面說(shuō)的是不使用齊次坐標(biāo)的情況,若使用齊次坐標(biāo),就是將旋轉(zhuǎn)與平移組合在一起,構(gòu)建一個(gè)4*4的齊次變換矩陣,齊次變換矩陣長(zhǎng)相如下所示: 仔細(xì)看一下,就是將上面說(shuō)的R和P組合在了一起,右下角填了一個(gè)1,其余地方補(bǔ)0,這就是齊次變換矩陣。當(dāng)看到一個(gè)44的齊次變換矩陣時(shí),你一眼就能知道左上角的33表示旋轉(zhuǎn),右邊一列表示平移,下面一行是固定寫(xiě)法,以后再說(shuō)變換時(shí),就不再把旋轉(zhuǎn)與平移割裂開(kāi)了,這一個(gè)矩陣就表示綜合的變換。 上面是預(yù)備知識(shí),下面才是D-H建模正題。 現(xiàn)在的機(jī)械臂很多都是旋轉(zhuǎn)關(guān)節(jié)與滑動(dòng)環(huán)節(jié)的鏈?zhǔn)浇M合,假設(shè)你知道機(jī)械臂各個(gè)連桿的尺寸,但各個(gè)關(guān)節(jié)都在動(dòng),你如何確定末端的位置?DH建模要解決的根本問(wèn)題就是建立機(jī)械臂末端與基座位姿位姿關(guān)系的問(wèn)題。 首先,需要知道DH建模里的一些基本概念,若對(duì)下述概念模棱兩可的話,后續(xù)建模的關(guān)系根本理不清,所以,請(qǐng)看圖一個(gè)一個(gè)認(rèn)識(shí)。 這張圖表示了任意兩個(gè)關(guān)節(jié)間的位姿關(guān)系,機(jī)械臂的外觀結(jié)構(gòu)可以多種多樣,但剖析本質(zhì),都可以表示成這樣的一組相鄰關(guān)節(jié)。要想知道末端與基座間的位姿關(guān)系,需要先了解相鄰兩關(guān)節(jié)的關(guān)系。之后的分析,都建立在當(dāng)前的套路上。 請(qǐng)將當(dāng)前關(guān)節(jié)標(biāo)號(hào)定位i-1,下一個(gè)關(guān)節(jié)定位i。有些教程將當(dāng)前關(guān)節(jié)定位i,下一個(gè)是i+1,這樣后續(xù)的分析中角標(biāo)都會(huì)于此不一樣,請(qǐng)注意區(qū)分。 (4) 關(guān)節(jié)角θi。連桿i相對(duì)于連桿i-1繞i軸的旋轉(zhuǎn)角度,圖中右下角的θi,其實(shí)就是上圖兩條紅色公垂線的夾角。 上述兩個(gè)圖應(yīng)該說(shuō)清了兩個(gè)關(guān)節(jié)的一般位置關(guān)系,涉及的4個(gè)基本概念需要詳細(xì)看清,a(i-1) ,α(i-1) ,di ,θi 就是后續(xù)DH建模表的四個(gè)要素,每個(gè)角標(biāo)都要看清。 其次,需要知道各個(gè)坐標(biāo)系建立的原則。為每個(gè)關(guān)節(jié)建立一個(gè)與之對(duì)應(yīng)的坐標(biāo)系,才能計(jì)算它們之間的相互轉(zhuǎn)換,而各個(gè)坐標(biāo)系的建立都要遵守一定規(guī)則,才能用后面矩陣連乘的方法進(jìn)行轉(zhuǎn)換。這里建立坐標(biāo)系,就是要確定7個(gè)要素,確定x,y,z所在軸線,x,y,z的方向,以及原點(diǎn)的位置,這幾個(gè)要素其實(shí)是有關(guān)聯(lián)的,比如,你總得用右手系來(lái)建立坐標(biāo)系吧,所以,已知其中幾條信息,有些信息就隨之確定了。 這里用標(biāo)號(hào)0表示與基座固連的坐標(biāo)系,用標(biāo)號(hào)n表示末端的坐標(biāo)系,i就是中間各個(gè)關(guān)節(jié)的坐標(biāo)系標(biāo)號(hào)。 上圖簡(jiǎn)單示意了一下各個(gè)坐標(biāo)與關(guān)節(jié)的標(biāo)號(hào)關(guān)系,但各坐標(biāo)的實(shí)際位置與姿態(tài)可沒(méi)有那么簡(jiǎn)單,注意一下,標(biāo)號(hào)0就是指基座,有時(shí)它可能與第一個(gè)關(guān)節(jié)坐標(biāo)系相重合,但還是不能忽略它。 下面3個(gè)加粗標(biāo)題就是DH建模的主要規(guī)則: 先建立中間坐標(biāo)系{i},后兩端坐標(biāo)系{0}、{n} 坐標(biāo)系{0}和{n}的規(guī)定 建系的原則 來(lái)結(jié)合具體的一個(gè)模型看看: 上圖示意了一個(gè)三自由度機(jī)械臂,要對(duì)其進(jìn)行DH建模,就是要建立{0}{1}{2}{3}{4}個(gè)坐標(biāo)系,其中,1、2、3對(duì)應(yīng)三個(gè)關(guān)節(jié),0號(hào)對(duì)應(yīng)基座,4號(hào)對(duì)應(yīng)末端,對(duì)好上述原則一條一條過(guò)。 再來(lái)看{1}號(hào)的原點(diǎn),z1和z2平行,此時(shí),也是找公垂線,但公垂線與兩軸相交時(shí)位置不唯一,此時(shí)要求“偏置為0”,{2}號(hào)坐標(biāo)系原點(diǎn)都定了,為了使{1}{2}間偏置為零,{1}的原點(diǎn)也是確定的,就在關(guān)節(jié)中心上(此時(shí)x1軸線也提前定了下來(lái))。 來(lái)看{3}號(hào)坐標(biāo)系的原點(diǎn)。之前只確定了{(lán)3}號(hào)Z軸的位置延旋轉(zhuǎn)軸,但原點(diǎn)可不要想當(dāng)然就在3號(hào)關(guān)節(jié)的中心,要按照“原則”來(lái)。z2與z3有一條唯一相交的公垂線x2(如圖),z3與z4軸線重合,有無(wú)數(shù)條相交的公垂線,要讓這兩邊的公垂線距離最短,即“偏置=0”,此時(shí)只能讓{3}號(hào)坐標(biāo)系的原點(diǎn)定在連桿拐角處,對(duì)比一下,這個(gè)原點(diǎn)并不在3號(hào)關(guān)節(jié)的中心(黃色關(guān)節(jié))。 理一下,現(xiàn)在定下來(lái)的只是z1、z2、z3的軸線位置和原點(diǎn)位置。 來(lái)看{0}號(hào)坐標(biāo)系,我們使用坐標(biāo)系{0}和{n}的規(guī)定,z0沿著關(guān)節(jié)1的軸線方向,所以z0與z1軸線重合,{0}號(hào)系是固定在基座的,所以原點(diǎn)是確定的,就在第一個(gè)關(guān)節(jié)中心,又因?yàn)?號(hào)關(guān)節(jié)是旋轉(zhuǎn)關(guān)節(jié),所以要看關(guān)節(jié)變量d1是否為0,顯然,d1=0(因?yàn)殛P(guān)節(jié)1與基座本身就是重合的,x1和x0距離為0),所以,{0}坐標(biāo)系與{1}號(hào)坐標(biāo)系完全重合,只要1號(hào)系定了,0號(hào)系就能完全確定。 來(lái)看{4}號(hào)坐標(biāo)系,4號(hào)系是固定在末端的,所以原點(diǎn)定在末端(此時(shí)的末端就是關(guān)節(jié)3的中心),z4軸沿著關(guān)節(jié)3的旋轉(zhuǎn)軸向,此時(shí)可以發(fā)現(xiàn),{4}號(hào)系和{3}號(hào)系存在一個(gè)偏置,因?yàn)閧3}號(hào)系的原點(diǎn)和{4}號(hào)系的原點(diǎn)距離相差一段距離(圖中的d2),也就是說(shuō),只要{3}號(hào)系定了,{4}號(hào)系就是沿著z軸偏移d2。 再來(lái)理一下,現(xiàn)在z0,z1,z2,z3,z4的軸線和原點(diǎn)位置都定了。 (3)現(xiàn)在安照建系的原則3來(lái)定x軸。 還是從{2}號(hào)系開(kāi)始吧。z2與z3不重合,x軸沿著公垂線,由2指向3,所以x2很明確。 {1}號(hào)系也是一樣,z1與z2也不重合(平行),x軸沿著公垂線,由1指向2,所以x1也很明確。 理一下,此時(shí)x1,x2,x3的軸線與方向都確定了。 (4)下面該用右手定則確定y了。 最終的坐標(biāo)系就和上圖所示的坐標(biāo)系相一致,每一步的確定都請(qǐng)參照建系的原則,其實(shí)中間有些環(huán)節(jié)熟練之后可以一步到位,有些中間坐標(biāo)系的位置你也可以不這樣建,比如上例{3}系{4}系其實(shí)也可以完全重合,只要你能搞清楚系與系之間的轉(zhuǎn)換關(guān)系,但DH建模法肯定是一條比較規(guī)范的方法,可以保證你見(jiàn)得坐標(biāo)系別人能看懂,并且避免一些不易察覺(jué)的錯(cuò)誤。 上述原則最好能記住,若記不住,建模時(shí)也得回頭反復(fù)校對(duì),很有可能一個(gè)坐標(biāo)原點(diǎn)沒(méi)選對(duì),或者某個(gè)軸方向指錯(cuò)了,導(dǎo)致建立了一個(gè)錯(cuò)誤的坐標(biāo)轉(zhuǎn)換關(guān)系。 還沒(méi)完,上面只是畫(huà)了畫(huà)坐標(biāo)系,下面需要來(lái)填一張DH參數(shù)表。這是便于你后續(xù)運(yùn)算用的。 表頭分5欄,這是固定寫(xiě)法。需要確定之前的一些連桿參數(shù),這些參數(shù)表征了各個(gè)坐標(biāo)系間的變換。 i從1到末端,這里末端坐標(biāo)系編號(hào)為4,所以i到4。 先填i=1這一行,i=1時(shí),就是要去找出a0,α0,d1和θ1?;仡櫼幌拢琣是指連桿長(zhǎng)度,α是指扭角,d是指偏置,θ是指關(guān)節(jié)角。 當(dāng)i=2時(shí),去找a1,α1,d2和θ2。a1是連桿1的長(zhǎng)度,是圖中已知數(shù)據(jù),α1是z1與z2的夾角,z1與z2平行,所以α1=0,d2是x1與x2的距離,x1與x2共線,所以d2=0,關(guān)節(jié)2是轉(zhuǎn)動(dòng)關(guān)節(jié),x1與x2的夾角是變量,初始夾角為0,所以記為θ2(0)。 當(dāng)i=3時(shí),找a2,α2,d3和θ3。a2是連桿2的長(zhǎng)度,已知。α2是z2與z3的夾角,注意是從{2}號(hào)系變到{3}號(hào)系,當(dāng)你用右手握住x2并將拇指指向與x2保持一致時(shí),需要逆著握拳方向旋轉(zhuǎn){2}號(hào)坐標(biāo)系,才能使之與{3}號(hào)系重合,所以α2=-90°。d2=0,θ3是變量,不在重復(fù)。 當(dāng)i=4時(shí),{3}系到{4}系只存在一個(gè)偏置,圖中已知的d2。 這樣,DH參數(shù)表就填完了,關(guān)鍵就是正確找出a,α,d,θ這四個(gè)參數(shù)在每次相鄰坐標(biāo)系變換是的值。 到此完成了一大半。 但不要忘了,最終我們是要找出首末坐標(biāo)系的齊次變換矩陣,而不是僅僅畫(huà)個(gè)表。 下面的內(nèi)容涉及到機(jī)器人的位姿描述與坐標(biāo)變換,這里只展示了結(jié)論,其實(shí)每一個(gè)式子都有推導(dǎo)。 根據(jù)之前預(yù)備知識(shí)里所講到的,因?yàn)槊看螜C(jī)器人關(guān)節(jié)旋轉(zhuǎn)都是某個(gè)單一軸在轉(zhuǎn)動(dòng),所以很多夾角余弦值都是特殊值(0或1)。這些矩陣帶入表達(dá)式 --------------2018年11月6日更新內(nèi)容---------------------- 我們用matlab機(jī)器人工具箱繪制該機(jī)械臂。
繪制出的機(jī)械臂如下圖: 若將3號(hào)坐標(biāo)系和4號(hào)坐標(biāo)系合并,我們也使用機(jī)器人工具箱畫(huà)一下。
3行DH參數(shù)模型,輸入[0 pi/2 0] 關(guān)于如何寫(xiě)出T(i-1->i)的變換矩陣。 第二種方法才是正常的方法:DH建模法已經(jīng)給出了 T(i-1->i)的變換通式, |
|
來(lái)自: 周偉資料室 > 《待分類(lèi)》