今天我用最簡(jiǎn)單的語(yǔ)言給大家淺析下機(jī)器人最底層的算法,,運(yùn)動(dòng)學(xué)正解;意在讓大家了解其原理,,懂其原理,,大家遇到問(wèn)題可以有個(gè)思路,思路對(duì)了,,具體的程序就容易了,! 什么是運(yùn)動(dòng)學(xué)正解?本文都用如下圖六軸機(jī)械手舉例,!有實(shí)體圖和簡(jiǎn)化成只有六個(gè)電機(jī)的連桿結(jié)構(gòu),,主要用連桿電機(jī)圖做計(jì)算邏輯的解析! 機(jī)器人實(shí)體圖 機(jī)器人電機(jī)軸位置圖 什么是運(yùn)動(dòng)學(xué)(正)解,; 機(jī)器人得有坐標(biāo)數(shù)據(jù),,大家才能知道機(jī)器人現(xiàn)在在哪里,然后寫出它去哪里的程序,! 機(jī)器人的坐標(biāo)怎么理解呢,?比如六軸焊接機(jī)器人,我使用它就是為了焊接,,我只需要它的焊槍頭的位置數(shù)據(jù),!焊槍頭在哪里,就可以說(shuō)機(jī)器人在哪里! 那么機(jī)器人焊槍頭的坐標(biāo)數(shù)據(jù)是怎么來(lái)的呢,?說(shuō)到坐標(biāo),,就得有一個(gè)原點(diǎn)或者基準(zhǔn),這個(gè)原點(diǎn)和基準(zhǔn)是不會(huì)變化的,!這個(gè)基準(zhǔn)就是在機(jī)器人的底座上,,永遠(yuǎn)不會(huì)變化;正運(yùn)動(dòng)學(xué)就是求這個(gè)焊槍頭在基準(zhǔn)坐標(biāo)里的位置,; 焊接機(jī)器人 怎么求焊槍頭位置數(shù)據(jù)(TCP)呢,?以下面兩幅圖為例講解,分別是機(jī)器人正視圖和其連桿機(jī)構(gòu),,機(jī)器人右視圖和其連桿機(jī)構(gòu),! 機(jī)器人正視圖和其連桿機(jī)構(gòu) 機(jī)器人右視圖和其連桿機(jī)構(gòu) 假定機(jī)器人這個(gè)姿勢(shì)六個(gè)電機(jī)都在零點(diǎn),如下兩圖所示,,首先我們要給連桿簡(jiǎn)圖建立坐標(biāo)系,,坐標(biāo)系怎么建立呢?分六步完成: 第一步:找電機(jī)軸,,標(biāo)出軸線,,如圖Z1-Z6為軸線,對(duì)應(yīng)六個(gè)關(guān)節(jié)軸,,正視圖和右視圖配合看著比較清晰; 正視圖軸線 右視圖軸線 第二步:找出關(guān)節(jié)軸i和i+1之間的公垂線(就是和兩條相鄰的軸線都垂直的線),,如果兩條軸線相交則沒(méi)有公垂線,那么就取其交點(diǎn),;以公垂線與關(guān)節(jié)軸i的交點(diǎn)或相交軸線的交點(diǎn)為坐標(biāo)系{i}的原點(diǎn)(例如Z1和Z2的公垂線為L(zhǎng)1,,L1與Z1的交點(diǎn)就是坐標(biāo)原點(diǎn)O1);如下圖紅點(diǎn)和紅圈都是坐標(biāo)系原點(diǎn): 坐標(biāo)系原點(diǎn)正視圖 坐標(biāo)系原點(diǎn)右視圖 第三步:確定Z軸(圖中已經(jīng)標(biāo)出),,和軸線是同一條線,;(沒(méi)有規(guī)定Z軸方向,所以可以有兩個(gè)方向,,我們就使用圖示的方向,,所以每家機(jī)器人規(guī)定的方向可能會(huì)不同!) 第四步:規(guī)定X軸沿著公垂線的指向,,或者軸線相交的情況下規(guī)定X垂直于相交直線的平面,;(垂直于相交平面的直線又有兩個(gè)方向,我們只用圖示的方向,,所以每家機(jī)器人的X方向也可能有所不同?。?/span>如下圖,紅色箭頭代表X軸: 確定X軸,,正視圖 確定X軸,,右視圖 第五步:右手定則確定Y軸方向,;如上圖,綠色箭頭為Y軸方向,; 第六步:盡量使基坐標(biāo)O0和坐標(biāo)系O1重合,,圖中就是重合狀態(tài),也有的機(jī)器人基坐標(biāo)在O1下方或者角度有偏移,,都無(wú)所謂,,就是參數(shù)有點(diǎn)變化,下面講到參數(shù),! 坐標(biāo)系定義好了,,要轉(zhuǎn)換坐標(biāo)系了(例如坐標(biāo)系O1轉(zhuǎn)換到 坐標(biāo)系O2),,正常情況下,,把一個(gè)坐標(biāo)系轉(zhuǎn)換到另一個(gè)坐標(biāo)系需要6個(gè)參數(shù),(X/Y/Z/A/B/C),三個(gè)坐標(biāo)值和三個(gè)坐標(biāo)旋轉(zhuǎn)數(shù)據(jù),,每個(gè)電機(jī)定義好坐標(biāo)系用這六個(gè)參數(shù)一樣可以完成坐標(biāo)系轉(zhuǎn)換,;但是國(guó)外有兩個(gè)真專家(Denavit-Hartenberg),研究出來(lái)用四個(gè)參數(shù)就可以求解的方法,,后人就一直用他們的方法簡(jiǎn)化運(yùn)算,,我也就講他們的方法D-H變換了,上面規(guī)定設(shè)定坐標(biāo)系的步奏也是為了找到這四個(gè)參數(shù),。 既然是規(guī)定好的,,我們就按照規(guī)定來(lái),規(guī)定參數(shù)為?,、a,、d、θ,; ai=沿Xi軸,,從Zi移動(dòng)到Zi+1的距離; ?i=繞Xi軸,,從Zi旋轉(zhuǎn)到Zi+1的角度,; di=沿Zi軸,從Xi-1移動(dòng)到Xi的距離,; θi=繞Zi軸,,從Xi-1旋轉(zhuǎn)到Xi的角度; i代表坐標(biāo)系,,如下圖右下角列出的DH變換表格,,對(duì)應(yīng)的數(shù)據(jù)在圖中更可以找到,有興趣的朋友可以自己推理下,!例如坐標(biāo)系O1需要ai-1,?i-1,di,θi這四個(gè)參數(shù),,因?yàn)槎x基坐標(biāo)系O0和坐標(biāo)系O1重合,所以四個(gè)參數(shù)都是0,如果設(shè)定基座標(biāo)O0和坐標(biāo)O1有Z軸旋轉(zhuǎn)角度90度,,那么?0=90,;其實(shí)d、a和?參數(shù)就是電機(jī)機(jī)械安裝位置的相對(duì)數(shù)據(jù),, θ是對(duì)于電機(jī)旋轉(zhuǎn)角度,,只有這一個(gè)是變量! DH參數(shù) 正視圖 DH參數(shù) 右視圖 怎么用設(shè)定的坐標(biāo)系和四個(gè)參數(shù)算出TCP呢,? 上圖中只建立坐標(biāo)系到O5,,后面可以在加一個(gè)坐標(biāo)系O6,這個(gè)O6就是TCP了,,圖中O6和O5我設(shè)定為重合,,所以表格中第六行的四個(gè)參數(shù)都為0,有的機(jī)器人機(jī)械結(jié)構(gòu)會(huì)把O6沿著六軸往外移動(dòng)一點(diǎn),,這個(gè)改d參數(shù)就可以了,。 下面這個(gè)變換矩陣,就是計(jì)算從坐標(biāo)系Oi-1變換到坐標(biāo)系Oi的運(yùn)算,。c代表cos,,s代表sin三角函數(shù),參數(shù)帶入公式計(jì)算也很簡(jiǎn)單吧,! 變換矩陣 例如從坐標(biāo)系O0變換到O1,,再變換到O2,再變換到O3,,如下圖計(jì)算,;最終得出的坐標(biāo)是O3的坐標(biāo);同理想得出O6(TCP)的坐標(biāo),,則再?gòu)?strong>O3變換到O4,,O4變換到O5,O5變換到O6,!六個(gè)矩陣相乘,,得到TCP相對(duì)于基座標(biāo)O0的變換矩陣,基坐標(biāo)系O0乘以這個(gè)變換矩陣(6矩陣相乘結(jié)果),,得出TCP坐標(biāo)值,! 變換到O3的三個(gè)矩陣 O3-O4 O4-O5 O5-O6 到此就結(jié)束了,D-H變換的原理大概講完了,,這就是機(jī)器人運(yùn)動(dòng)學(xué)正解,,可以移動(dòng)各個(gè)關(guān)節(jié),但是TCP是相對(duì)6軸不動(dòng)的,!如果配合機(jī)器人運(yùn)動(dòng)學(xué)逆解,,你可以自己搭建一個(gè)簡(jiǎn)易機(jī)器人玩了,!不知道各位朋友是否耐心看完了? 下一次講講逆解,,逆解復(fù)雜很多了,! |
|
來(lái)自: taotao_2016 > 《物理》