1、緒論
這篇文章是機(jī)械臂專欄的第一期,該文章旨在對(duì)機(jī)械臂基礎(chǔ)知識(shí)進(jìn)行簡(jiǎn)要的概述,為之后機(jī)械臂的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)仿真做好鋪墊。該篇文章只進(jìn)行整體的知識(shí)架構(gòu)梳理和具體知識(shí)的簡(jiǎn)要介紹,并不會(huì)過(guò)多深入,其中內(nèi)容主要來(lái)源與John J. Craig 的著名著作《機(jī)器人學(xué)導(dǎo)論》,請(qǐng)需要學(xué)習(xí)機(jī)械臂的同學(xué)無(wú)比熟讀該書(shū)。
首先介紹一下我將要介紹的主要知識(shí)點(diǎn),空間描述與轉(zhuǎn)換、機(jī)械臂運(yùn)動(dòng)學(xué)、機(jī)械臂速度與靜力。
為什么要學(xué)習(xí)空間描述與轉(zhuǎn)換呢,我們可以看下圖,機(jī)械臂是若干個(gè)桿連接而形成的(連接兩個(gè)桿的地方是關(guān)節(jié)),而在機(jī)械臂中這些桿稱為連桿,每個(gè)連桿可以在夫連桿(上一連桿)的基礎(chǔ)上繞某一軸旋轉(zhuǎn),(關(guān)節(jié)通過(guò)電機(jī)旋轉(zhuǎn)帶動(dòng)連桿旋轉(zhuǎn)),而這個(gè)軸只與夫連桿相對(duì)禁止,這就導(dǎo)致一旦多個(gè)連桿都進(jìn)行運(yùn)動(dòng)時(shí),連桿只能與“上一級(jí)連桿”和“下一級(jí)連桿”進(jìn)行直接的空間轉(zhuǎn)換關(guān)系,也就是說(shuō)當(dāng)我知道第一個(gè)連桿旋轉(zhuǎn)的角度時(shí),我就能根據(jù)底座的空間坐標(biāo)推算出第一個(gè)連桿的具體位置,然后一級(jí)一級(jí)往后推就能獲得最末端機(jī)械臂的位置,也就是接卸比末端位置。而空間描述和轉(zhuǎn)換就是學(xué)習(xí)如何一級(jí)一級(jí)計(jì)算空間坐標(biāo),也就是學(xué)習(xí)從固定的底座開(kāi)始,空間時(shí)如何通過(guò)連桿旋轉(zhuǎn)一步一步轉(zhuǎn)換的。
機(jī)械臂運(yùn)動(dòng)學(xué)就很好理解了,面對(duì)機(jī)械臂,我們肯定是研究如何使得機(jī)械臂按照我們意愿去運(yùn)動(dòng),如何控制機(jī)械臂末端的位置。比如用機(jī)械臂拿杯子,肯先要控制末端到達(dá)杯子位置,所以這里就設(shè)計(jì)到運(yùn)動(dòng)學(xué)知識(shí),分為正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué),正運(yùn)動(dòng)學(xué)就是已知每個(gè)關(guān)節(jié)電機(jī)的旋轉(zhuǎn)角度,推算出末端工具的空間位姿(這里的位姿其實(shí)就是空間位置加上空間朝向)。逆運(yùn)動(dòng)學(xué)就是已知我末端空間位置,推算出各個(gè)關(guān)節(jié)的角度,這就類似于拿杯子,我知道杯子位置,需要推算出末端工具到達(dá)該位置需要每個(gè)關(guān)節(jié)旋轉(zhuǎn)多大角度。
機(jī)械臂速度與靜力,就涉及到動(dòng)力學(xué)知識(shí),首先學(xué)習(xí)機(jī)械臂速度,是為了描述每個(gè)連桿線速度和角速度是如何傳遞的,其中比較主要的知識(shí)點(diǎn)就是雅可比矩陣,該矩陣描述了每個(gè)關(guān)節(jié)速度與末端的位姿速度。而機(jī)械臂靜力就涉及到機(jī)械臂動(dòng)力學(xué)知識(shí),主要講的是機(jī)械臂在某個(gè)姿態(tài)各關(guān)節(jié)以速度、加速度運(yùn)動(dòng)時(shí),關(guān)節(jié)電機(jī)需要輸出的力矩,如果末端對(duì)外界施加力,這里還需要加入施加力反作用在各個(gè)關(guān)節(jié)的力矩。
2、空間位置、姿態(tài)與位姿的描述
2.1,位置表示
當(dāng)我們對(duì)機(jī)械臂建立坐標(biāo)系時(shí),往往將底座作為基準(zhǔn)坐標(biāo)系,圖中坐標(biāo)系A(chǔ)便是基準(zhǔn)坐標(biāo)系,就能用一個(gè)3\times1的位置矢量給出坐標(biāo)系中的任何點(diǎn)定位。還要注意矢量定義在哪一個(gè)坐標(biāo)系。^AP是指相對(duì)坐標(biāo)系A(chǔ)的一個(gè)點(diǎn)的位置。
世界坐標(biāo)系中的任何點(diǎn)都可以用一個(gè)3×1的位置矢量進(jìn)行定位,例如:
2.2、位姿表示
不僅需要表示空間中的點(diǎn)的位位置,還需要描述物體的姿態(tài),也就是該點(diǎn)出物體的方向。上圖確定了操作臂末端位置,若姿態(tài)也確定,末端的位姿就能完全被確定下來(lái)。為了描述物體的姿態(tài),我們?cè)谖矬w上固定一個(gè)坐標(biāo)系并且給出此坐標(biāo)系相對(duì)于參考坐標(biāo)系的描述。如下圖的參考系B即為固定在物體上的。
用XB,YB,ZB來(lái)表示坐標(biāo)系{B}各主軸方向的單位矢量,當(dāng)用坐標(biāo)系{A}來(lái)表示時(shí),它們被寫(xiě)成AXB,AYB,AZB,將三個(gè)單位矢量按AXB,AYB,AZB順序排列組成一個(gè)3×3的矩陣,稱之為旋轉(zhuǎn)矩陣,用符號(hào)ABR來(lái)表示。

有了位姿的描述,我們就能知道一個(gè)連桿末端也就是關(guān)節(jié)相對(duì)于上一關(guān)節(jié)的位姿,依次描述最后就能獲得末端位姿。如圖所示,紅色表示連桿,白色表示關(guān)節(jié)處,每個(gè)關(guān)節(jié)處就代表一個(gè)坐標(biāo)系,通過(guò)坐標(biāo)系的遞推計(jì)算,就能算出末端坐標(biāo)系相對(duì)基準(zhǔn)坐標(biāo)系的位姿。
接下來(lái)就時(shí)如何計(jì)算坐標(biāo)系的位姿。
2.3 坐標(biāo)系平移
可以從圖中看出,B坐標(biāo)系就是相對(duì)A坐標(biāo)系進(jìn)行平移

此時(shí),我們用矢量相加的辦法求點(diǎn)P相對(duì)于A的表示^AP:
2.4 坐標(biāo)系旋轉(zhuǎn)

若我們已知矢量相對(duì)于B的定義^BP,現(xiàn)在想求矢量相對(duì)于A的定義,且兩個(gè)坐標(biāo)系原點(diǎn)重合,我們已知^A_BR,那么我們是可以求解的。
該式可簡(jiǎn)化為旋轉(zhuǎn)矩陣形式表示:

有了矩坐標(biāo)系的偏移和旋轉(zhuǎn),我們就可以根據(jù)基準(zhǔn)坐標(biāo)系推算出連接連桿的坐標(biāo)系。

如圖所示為兩個(gè)坐標(biāo)系有相對(duì)的偏移和旋轉(zhuǎn),于是就有:

而這樣表示兩個(gè)坐標(biāo)系的關(guān)系就顯得很麻煩,于是通過(guò)定義轉(zhuǎn)換算子來(lái)方便描述:
于是我們就可以通過(guò)轉(zhuǎn)換算子來(lái)描述兩個(gè)坐標(biāo)系的關(guān)系,同樣轉(zhuǎn)換算子是可以疊加的,通過(guò)不斷的疊加就可以算出末端與基準(zhǔn)坐標(biāo)系的轉(zhuǎn)換算子,也就是得到末端相對(duì)于基準(zhǔn)坐標(biāo)系的位姿。
3 、機(jī)械臂運(yùn)動(dòng)學(xué)
3.1、連桿表示
首先學(xué)習(xí)機(jī)械臂運(yùn)動(dòng)學(xué),就需要了解機(jī)械臂的結(jié)構(gòu),連桿與連桿之間的坐標(biāo)系是如何變換的,是如何平移,如何旋轉(zhuǎn),使得某一連桿坐標(biāo)系按照這個(gè)平移旋轉(zhuǎn)之后能夠獲得下一個(gè)連桿的坐標(biāo)系,也即是兩個(gè)連桿之間的坐標(biāo)系算子與連桿結(jié)構(gòu)的關(guān)系,更直白的意思就是,如果知道某一關(guān)節(jié)的角度,就能找到關(guān)節(jié)連接的兩個(gè)連桿坐標(biāo)系對(duì)于的變換算子T。
常見(jiàn)的操作臂的結(jié)構(gòu)一般優(yōu)先選擇只有一個(gè)自由度的關(guān)節(jié)作為連桿的連接方式,大部分的操作臂中會(huì)包括轉(zhuǎn)動(dòng)關(guān)節(jié)和移動(dòng)關(guān)節(jié)。只有很少見(jiàn)的情況,會(huì)使用具有n個(gè)自由度的關(guān)節(jié),這種關(guān)節(jié)也可以抽象的看做用n個(gè)單自由度的關(guān)節(jié)與n-1個(gè)長(zhǎng)度的連桿組合而成的。
我們?cè)谟懻摬僮鞅蹠r(shí),會(huì)從固定基座開(kāi)始為連桿編號(hào),我們習(xí)慣性地成固定基座為連桿0,接下來(lái)的第一個(gè)能動(dòng)的連桿被稱為連桿1,以此類推,最末端的的連桿就稱為連桿n

上圖就是一種連桿描述方式,用四個(gè)參數(shù)描述兩個(gè)連桿的相對(duì)位姿關(guān)系:

也就是如上分析,知道兩個(gè)連桿的具體相對(duì)位姿關(guān)系后,就能推算出兩個(gè)連桿坐標(biāo)系的轉(zhuǎn)換算子T:

這樣,只要我知道每個(gè)連桿相對(duì)關(guān)系,就能推算出機(jī)械臂末端相對(duì)基準(zhǔn)坐標(biāo)的轉(zhuǎn)換算子,也就是能夠得到末端相對(duì)基準(zhǔn)坐標(biāo)系的位置和狀態(tài)。
3.2、運(yùn)動(dòng)學(xué)原理
在這個(gè)連桿關(guān)系中,有一個(gè)參數(shù)θ,他是動(dòng)態(tài)變化的,就是其他三個(gè)參數(shù)是不會(huì)變化,而該參數(shù)θ就是關(guān)節(jié)旋轉(zhuǎn)角度,所以我們就能根據(jù)每個(gè)關(guān)節(jié)旋轉(zhuǎn)角度推算出機(jī)械臂末端相對(duì)基準(zhǔn)坐標(biāo)系的變換算子,從而得到機(jī)械臂末端的位姿,這就是正運(yùn)動(dòng)學(xué)。
當(dāng)我們知道末端位姿時(shí),希望機(jī)械臂能達(dá)到該位置,就首先推算處該變換算子關(guān)于θ的公式:

然后有已知的基準(zhǔn)坐標(biāo)系位姿和末端位姿進(jìn)行矩陣運(yùn)算的具體參數(shù) T,然后進(jìn)行方程求解,但是逆運(yùn)動(dòng)學(xué)的求解難度會(huì)隨著機(jī)械臂關(guān)節(jié)數(shù)量的變換成幾何倍增。
大概的運(yùn)動(dòng)學(xué)知識(shí)點(diǎn)就講解到這里,有關(guān)動(dòng)力學(xué)知識(shí)會(huì)在之后動(dòng)力學(xué)仿真部分講解,而接下來(lái)將會(huì)發(fā)布運(yùn)動(dòng)學(xué)的各種仿真方法。