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