劉鋒
摘 要:矩陣是研究機(jī)器人學(xué)一個重要的數(shù)學(xué)工具。本文引入齊次變換矩陣來表示機(jī)器人的姿態(tài)。具體來說,研究者在機(jī)器人的每個關(guān)節(jié)建立適當(dāng)?shù)淖鴺?biāo)系,然后利用齊次坐標(biāo)建立兩個相鄰坐標(biāo)系之間的變換關(guān)系,最后就可以得到機(jī)器人的運動學(xué)方程。
關(guān)鍵詞:機(jī)器人;運動學(xué);旋轉(zhuǎn)矩陣;齊次變換
中圖分類號:TP242文獻(xiàn)標(biāo)識碼:A文章編號: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é)是一門融合了機(jī)械工程、自動化、計算機(jī)科學(xué)、材料學(xué)、數(shù)學(xué)和物理學(xué)等多個學(xué)科的交叉學(xué)科。在研究機(jī)器人的運動時,需要用到線性代數(shù)中的矩陣及其運算。本文就齊次變換矩陣在機(jī)器人運動學(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)原點[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è)它們在坐標(biāo)系[A]中的坐標(biāo)為[Ai′,Aj′,Ak′],按分量可表示為:
這里要求[Ai′,Aj′,Ak′]是單位向量,且兩兩正交,故可用它們在坐標(biāo)系[A]中的方向余弦來表示,[Ai′,Aj′,Ak′]作為列向量構(gòu)成一個3×3矩陣,記為[R],則:
又因為與機(jī)械手固連的坐標(biāo)系[z]軸設(shè)在手指接近物體的方向,稱為接近向量[a],[y]軸設(shè)在兩手指的連線方向,稱為方位向量[o],[x]軸由右手法則規(guī)定[1],稱為法向向量[n],所以:
由正交矩陣的定義知,[R]是一個正交矩陣,此矩陣又稱為旋轉(zhuǎn)矩陣,其性質(zhì)為:第一,[∵R′R=E,∴R′=R-1];第二,[R]矩陣的行列式等于1。
2 旋轉(zhuǎn)矩陣
假設(shè)坐標(biāo)系[A]和坐標(biāo)系[B]原點重合,且坐標(biāo)軸平行,如圖2所示,現(xiàn)考慮坐標(biāo)系[B]上一點[P],該點相對于坐標(biāo)系[A]的坐標(biāo)為[Px,Py,Pz],在坐標(biāo)系[B]的坐標(biāo)為[Pn,Po,Pa]。當(dāng)坐標(biāo)系[B]繞[z]軸逆時針旋轉(zhuǎn)[θ]角,如圖3所示,坐標(biāo)系上的點[P]也隨坐標(biāo)系旋轉(zhuǎn)。
在旋轉(zhuǎn)之前,[P]點在兩個坐標(biāo)系中的坐標(biāo)是相同的;旋轉(zhuǎn)之后,[P]在坐標(biāo)系[B]中的坐標(biāo)沒有改變,在坐標(biāo)系[A]中的坐標(biāo)[Pz]沒改變,[Px]和[Py]發(fā)生了改變:
為了得到[P]在[A]坐標(biāo)系中的坐標(biāo),要將[P]在[B]坐標(biāo)系中的坐標(biāo)左乘旋轉(zhuǎn)矩陣,即[PA=Rot(z,θ)×PB],在矩陣[Rot(z,θ)]中第三列是相對于[z]軸的位置,其值為0、0、1,表示豎坐標(biāo)沒有發(fā)生改變。由此類推,可得到繞[x]軸和[y]軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣:
坐標(biāo)系[B]繞坐標(biāo)系[A]的軸旋轉(zhuǎn),稱為坐標(biāo)系[B]相對于坐標(biāo)系[A]的旋轉(zhuǎn)變換。坐標(biāo)系的變換反映了固連于它的物體(機(jī)械手或工具)的姿態(tài)的變化。除了旋轉(zhuǎn)變換之外還有平移變換。
3 平移變換
若坐標(biāo)系[B]和[A]的三個坐標(biāo)軸的方向相同,但坐標(biāo)原點不同,如圖4所示,坐標(biāo)系[B]的原點由[A]的原點平移得到,若[d]向量的坐標(biāo)為[(dx,dy,dz)],則[B]坐標(biāo)系的原點相對于[A]坐標(biāo)系的坐標(biāo)為[(dx,dy,dz)],對于固連于坐標(biāo)系[B]的點[P]相對于坐標(biāo)系[A]的坐標(biāo)如式(9)所示。
對于平移變換,研究者也用矩陣的乘積來表示。實際上,單純的平移變換可以看成是旋轉(zhuǎn)變換矩陣,是單位矩陣的變換,由此可以用如式(10)所示的矩陣來表示平移變換。
但是,式(10)是一個3×4的矩陣,是不能和3×1的矩陣[PnPoPa]相乘的。為了解決這個問題,引入齊次坐標(biāo)的概念。
在空間直角坐標(biāo)系中,點[P]的坐標(biāo)為[(x,y,z)′],考慮以原點[O]為起點,[P]為終點的向量[OP],其坐標(biāo)也可以表示為[(x,y,z)′]?,F(xiàn)在引入定標(biāo)因數(shù)[w][2],這樣點[P](或向量[OP])的坐標(biāo)可以用一個四維有序數(shù)組[(x′,y′,z′,w)′]表示,其中:
這種表示點的坐標(biāo)的方法稱為齊次坐標(biāo)。
若規(guī)定[w]=1,則笛卡爾坐標(biāo)和齊次坐標(biāo)的分量相等,即
當(dāng)定標(biāo)因數(shù)取0時,齊次坐標(biāo)的分量為無窮大。對于點[(x′,y′,z′,0)′]來說,它表示空間的無窮遠(yuǎn)點;對于向量[(x′,y′,z′,0)′]來說,此時向量的模(長度)為無窮大,它可表示一個方向,如[x]軸正向、[y]軸正向及[z]軸正向可分別表示為:
現(xiàn)在前邊的平移變換矩陣可表示為:
矩陣的前三列表示旋轉(zhuǎn)變換,因為這是純平移變換,所以旋轉(zhuǎn)矩陣是一個單位矩陣,而最后一列表示平移變換。
此變換矩陣描述了坐標(biāo)系[B]相對于坐標(biāo)系[A]的位置和方位,[Trans(dx,dy,dz)]第4列表示坐標(biāo)系[B]的原點在坐標(biāo)系[A]中的坐標(biāo),前三列表示[B]坐標(biāo)系的三個坐標(biāo)軸正向單位向量在坐標(biāo)系[A]中的坐標(biāo),所以此矩陣也可記為[ABT],用來描述坐標(biāo)系[B]相對于坐標(biāo)系[A]的位置和姿態(tài)。
4 復(fù)合變換
復(fù)合變換是由[B]坐標(biāo)系沿軸平移變換和繞軸變換所組成的,前面介紹的齊次變換矩陣[ABT]可以分解為兩個矩陣的乘積:
等式右邊第一個矩陣為純平移變換矩陣,第二個為純旋轉(zhuǎn)矩陣,因此,也可以把齊次變換矩陣寫成平移變換和旋轉(zhuǎn)變換的復(fù)合:
假設(shè)[P]點固連于坐標(biāo)系,開始坐標(biāo)系[B]與坐標(biāo)系[A]重合,隨著坐標(biāo)系[B]相對于坐標(biāo)系[A]旋轉(zhuǎn)或平移,[P]點相對于坐標(biāo)系[A]的位置也發(fā)生改變,如[B]先繞[A]的[z]軸旋轉(zhuǎn)[α]度,接著再分別沿[x]、[y]和[z]軸平移[(dx,dy,dz)]。第一次變換后,[P]點相對于[A]的坐標(biāo)變?yōu)椋?/p>
第二次變換后,[P]點相對于[A]的坐標(biāo)變?yōu)椋?/p>
可見,每次變換后,[P]點相對于[A]的坐標(biāo)都是通過用相應(yīng)變換矩陣左乘該點坐標(biāo)得到,因為矩陣乘法不滿足交換律,左乘的矩陣順序不能改變。
運用齊次變換矩陣,可以有效研究機(jī)器人的運動學(xué)。只要在機(jī)器人的每個關(guān)節(jié)建立適當(dāng)?shù)淖鴺?biāo)系,然后利用齊次坐標(biāo)建立兩個相鄰坐標(biāo)系之間的變換關(guān)系,就可以得到機(jī)器人的運動學(xué)方程。
參考文獻(xiàn):
[1]尼庫.機(jī)器人學(xué)導(dǎo)論:分析、控制及應(yīng)用[M].2版.孫福春,等譯.北京:電子工業(yè)出版社,2013.
[2]熊有倫.機(jī)器人學(xué)[M].北京:機(jī)械工業(yè)出版社,1993.