劉鋒
摘 要:矩陣是研究機(jī)器人學(xué)一個(gè)重要的數(shù)學(xué)工具。本文引入齊次變換矩陣來(lái)表示機(jī)器人的姿態(tài)。具體來(lái)說(shuō),研究者在機(jī)器人的每個(gè)關(guān)節(jié)建立適當(dāng)?shù)淖鴺?biāo)系,然后利用齊次坐標(biāo)建立兩個(gè)相鄰坐標(biāo)系之間的變換關(guān)系,最后就可以得到機(jī)器人的運(yùn)動(dòng)學(xué)方程。
關(guān)鍵詞:機(jī)器人;運(yùn)動(dòng)學(xué);旋轉(zhuǎn)矩陣;齊次變換
中圖分類號(hào):TP242文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-5168(2020)28-0022-03
The Application of Homogeneous Transformation
Matrices in Robot Kinematics
LIU Feng
(Hunan Institute of Technology,Hengyang Hunan 421002)
Abstract: Matrix is an important mathematical tool for robotics. In this paper, homogeneous transformation matrix was introduced to represent the pose of robot. To be specific, researchers established a proper coordinate system for each joint of the robot, and then used homogeneous coordinates to establish the transformation relationship between two adjacent coordinate systems, and then the kinematics equation of the robot was obtained.
Keywords: robot;kinematics;rotation martrix;homogeneous transformation matrix
機(jī)器人學(xué)是一門(mén)融合了機(jī)械工程、自動(dòng)化、計(jì)算機(jī)科學(xué)、材料學(xué)、數(shù)學(xué)和物理學(xué)等多個(gè)學(xué)科的交叉學(xué)科。在研究機(jī)器人的運(yùn)動(dòng)時(shí),需要用到線性代數(shù)中的矩陣及其運(yùn)算。本文就齊次變換矩陣在機(jī)器人運(yùn)動(dòng)學(xué)中的應(yīng)用進(jìn)行分析。
1 機(jī)械手(或工具)位姿的表示
設(shè)與機(jī)械臂的基座固連的坐標(biāo)系為固定坐標(biāo)系[AO-xyz],與工具固連的坐標(biāo)系為[BO′-x′y′z′],如圖1所示,則機(jī)械手(工具)的位姿可以由坐標(biāo)系[B]的坐標(biāo)原點(diǎn)[o′]在坐標(biāo)系[A]中的坐標(biāo)[(px,py,pz)′]和與[o′x′,o′y′,o′z′]正向同方向的單位向量在坐標(biāo)系[A]中的坐標(biāo)表示。
若記[i′,j′,k′]表示與[o′x′,o′y′,o′z′]正向同方向的單位向量,設(shè)它們?cè)谧鴺?biāo)系[A]中的坐標(biāo)為[Ai′,Aj′,Ak′],按分量可表示為:
這里要求[Ai′,Aj′,Ak′]是單位向量,且兩兩正交,故可用它們?cè)谧鴺?biāo)系[A]中的方向余弦來(lái)表示,[Ai′,Aj′,Ak′]作為列向量構(gòu)成一個(gè)3×3矩陣,記為[R],則:
又因?yàn)榕c機(jī)械手固連的坐標(biāo)系[z]軸設(shè)在手指接近物體的方向,稱為接近向量[a],[y]軸設(shè)在兩手指的連線方向,稱為方位向量[o],[x]軸由右手法則規(guī)定[1],稱為法向向量[n],所以:
由正交矩陣的定義知,[R]是一個(gè)正交矩陣,此矩陣又稱為旋轉(zhuǎn)矩陣,其性質(zhì)為:第一,[∵R′R=E,∴R′=R-1];第二,[R]矩陣的行列式等于1。
2 旋轉(zhuǎn)矩陣
假設(shè)坐標(biāo)系[A]和坐標(biāo)系[B]原點(diǎn)重合,且坐標(biāo)軸平行,如圖2所示,現(xiàn)考慮坐標(biāo)系[B]上一點(diǎn)[P],該點(diǎn)相對(duì)于坐標(biāo)系[A]的坐標(biāo)為[Px,Py,Pz],在坐標(biāo)系[B]的坐標(biāo)為[Pn,Po,Pa]。當(dāng)坐標(biāo)系[B]繞[z]軸逆時(shí)針旋轉(zhuǎn)[θ]角,如圖3所示,坐標(biāo)系上的點(diǎn)[P]也隨坐標(biāo)系旋轉(zhuǎn)。
在旋轉(zhuǎn)之前,[P]點(diǎn)在兩個(gè)坐標(biāo)系中的坐標(biāo)是相同的;旋轉(zhuǎn)之后,[P]在坐標(biāo)系[B]中的坐標(biāo)沒(méi)有改變,在坐標(biāo)系[A]中的坐標(biāo)[Pz]沒(méi)改變,[Px]和[Py]發(fā)生了改變:
為了得到[P]在[A]坐標(biāo)系中的坐標(biāo),要將[P]在[B]坐標(biāo)系中的坐標(biāo)左乘旋轉(zhuǎn)矩陣,即[PA=Rot(z,θ)×PB],在矩陣[Rot(z,θ)]中第三列是相對(duì)于[z]軸的位置,其值為0、0、1,表示豎坐標(biāo)沒(méi)有發(fā)生改變。由此類推,可得到繞[x]軸和[y]軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣:
坐標(biāo)系[B]繞坐標(biāo)系[A]的軸旋轉(zhuǎn),稱為坐標(biāo)系[B]相對(duì)于坐標(biāo)系[A]的旋轉(zhuǎn)變換。坐標(biāo)系的變換反映了固連于它的物體(機(jī)械手或工具)的姿態(tài)的變化。除了旋轉(zhuǎn)變換之外還有平移變換。
3 平移變換
若坐標(biāo)系[B]和[A]的三個(gè)坐標(biāo)軸的方向相同,但坐標(biāo)原點(diǎn)不同,如圖4所示,坐標(biāo)系[B]的原點(diǎn)由[A]的原點(diǎn)平移得到,若[d]向量的坐標(biāo)為[(dx,dy,dz)],則[B]坐標(biāo)系的原點(diǎn)相對(duì)于[A]坐標(biāo)系的坐標(biāo)為[(dx,dy,dz)],對(duì)于固連于坐標(biāo)系[B]的點(diǎn)[P]相對(duì)于坐標(biāo)系[A]的坐標(biāo)如式(9)所示。
對(duì)于平移變換,研究者也用矩陣的乘積來(lái)表示。實(shí)際上,單純的平移變換可以看成是旋轉(zhuǎn)變換矩陣,是單位矩陣的變換,由此可以用如式(10)所示的矩陣來(lái)表示平移變換。
但是,式(10)是一個(gè)3×4的矩陣,是不能和3×1的矩陣[PnPoPa]相乘的。為了解決這個(gè)問(wèn)題,引入齊次坐標(biāo)的概念。
在空間直角坐標(biāo)系中,點(diǎn)[P]的坐標(biāo)為[(x,y,z)′],考慮以原點(diǎn)[O]為起點(diǎn),[P]為終點(diǎn)的向量[OP],其坐標(biāo)也可以表示為[(x,y,z)′]?,F(xiàn)在引入定標(biāo)因數(shù)[w][2],這樣點(diǎn)[P](或向量[OP])的坐標(biāo)可以用一個(gè)四維有序數(shù)組[(x′,y′,z′,w)′]表示,其中:
這種表示點(diǎn)的坐標(biāo)的方法稱為齊次坐標(biāo)。
若規(guī)定[w]=1,則笛卡爾坐標(biāo)和齊次坐標(biāo)的分量相等,即
當(dāng)定標(biāo)因數(shù)取0時(shí),齊次坐標(biāo)的分量為無(wú)窮大。對(duì)于點(diǎn)[(x′,y′,z′,0)′]來(lái)說(shuō),它表示空間的無(wú)窮遠(yuǎn)點(diǎn);對(duì)于向量[(x′,y′,z′,0)′]來(lái)說(shuō),此時(shí)向量的模(長(zhǎng)度)為無(wú)窮大,它可表示一個(gè)方向,如[x]軸正向、[y]軸正向及[z]軸正向可分別表示為:
現(xiàn)在前邊的平移變換矩陣可表示為:
矩陣的前三列表示旋轉(zhuǎn)變換,因?yàn)檫@是純平移變換,所以旋轉(zhuǎn)矩陣是一個(gè)單位矩陣,而最后一列表示平移變換。
此變換矩陣描述了坐標(biāo)系[B]相對(duì)于坐標(biāo)系[A]的位置和方位,[Trans(dx,dy,dz)]第4列表示坐標(biāo)系[B]的原點(diǎn)在坐標(biāo)系[A]中的坐標(biāo),前三列表示[B]坐標(biāo)系的三個(gè)坐標(biāo)軸正向單位向量在坐標(biāo)系[A]中的坐標(biāo),所以此矩陣也可記為[ABT],用來(lái)描述坐標(biāo)系[B]相對(duì)于坐標(biāo)系[A]的位置和姿態(tài)。
4 復(fù)合變換
復(fù)合變換是由[B]坐標(biāo)系沿軸平移變換和繞軸變換所組成的,前面介紹的齊次變換矩陣[ABT]可以分解為兩個(gè)矩陣的乘積:
等式右邊第一個(gè)矩陣為純平移變換矩陣,第二個(gè)為純旋轉(zhuǎn)矩陣,因此,也可以把齊次變換矩陣寫(xiě)成平移變換和旋轉(zhuǎn)變換的復(fù)合:
假設(shè)[P]點(diǎn)固連于坐標(biāo)系,開(kāi)始坐標(biāo)系[B]與坐標(biāo)系[A]重合,隨著坐標(biāo)系[B]相對(duì)于坐標(biāo)系[A]旋轉(zhuǎn)或平移,[P]點(diǎn)相對(duì)于坐標(biāo)系[A]的位置也發(fā)生改變,如[B]先繞[A]的[z]軸旋轉(zhuǎn)[α]度,接著再分別沿[x]、[y]和[z]軸平移[(dx,dy,dz)]。第一次變換后,[P]點(diǎn)相對(duì)于[A]的坐標(biāo)變?yōu)椋?/p>
第二次變換后,[P]點(diǎn)相對(duì)于[A]的坐標(biāo)變?yōu)椋?/p>
可見(jiàn),每次變換后,[P]點(diǎn)相對(duì)于[A]的坐標(biāo)都是通過(guò)用相應(yīng)變換矩陣左乘該點(diǎn)坐標(biāo)得到,因?yàn)榫仃嚦朔ú粷M足交換律,左乘的矩陣順序不能改變。
運(yùn)用齊次變換矩陣,可以有效研究機(jī)器人的運(yùn)動(dòng)學(xué)。只要在機(jī)器人的每個(gè)關(guān)節(jié)建立適當(dāng)?shù)淖鴺?biāo)系,然后利用齊次坐標(biāo)建立兩個(gè)相鄰坐標(biāo)系之間的變換關(guān)系,就可以得到機(jī)器人的運(yùn)動(dòng)學(xué)方程。
參考文獻(xiàn):
[1]尼庫(kù).機(jī)器人學(xué)導(dǎo)論:分析、控制及應(yīng)用[M].2版.孫福春,等譯.北京:電子工業(yè)出版社,2013.
[2]熊有倫.機(jī)器人學(xué)[M].北京:機(jī)械工業(yè)出版社,1993.