天天看點

機械臂學習筆記01-位姿描述和坐标變換

前言:導師主要是做圖像處理方面的,然後接了一個與機械臂相關的項目,然後讓我學習機械臂,我從去年寒假開始,自己搜集資料,看了零星一些文章,感覺自己學的不是很深入,學的也比較零碎,我希望能通過寫部落格的方式來監督自己的學習。

機械臂我們可以理想地把他作為剛體,以剛體的角度對機械臂進行研究。剛體參考點的位置和剛體的姿态稱為剛體的位姿,其表示方式主要有:齊次變換法、矢量法、旋量法和四元數法。其中介紹及應用比較多的是齊次變換法,他能将運動、變換、映射和矩陣運算聯系起來。此外齊次變換在研究空間機構動力學、機器人控制算法、計算機圖形學和視覺資訊處理方面也有廣泛的運用。

位姿描述:

(1)位置的描述:

描述一個點的位置,有很多方法。描述點的位置需要基于一個坐标系,常見的坐标系有直角坐标系,極坐标系,圓柱坐标系。通常我們采用直角坐标系來描述一個點的位置。對于直角坐标系{A},空間任意一點p的位置,我們可以用列矢量 ( p x , p y , p z ) T (px,py,pz)^T (px,py,pz)T來表示,其中px,py,pz是點p在坐标系{A}下的三個分量,這三個分量便能唯一确定一點的位置。

機械臂學習筆記01-位姿描述和坐标變換

圖1-1

(2)方位的描述:

描述剛體的運動,不僅要描述某一點的位置,也要描述剛體的方位;為了描述空間某剛體B的方位,另外設一個直角坐标系{B}與剛體連接配接,用坐标系{B}的三個機關主矢量 X b X_b Xb​, Y b Y_b Yb​, Z b Z_b Zb​,相對于坐标系{A}的方向餘弦組成的3X3的矩陣

B A R _B^AR BA​R = [ A X B , A Y B , A Z B ] [^A{X_B},^A{Y_B},^A{Z_B}] [AXB​,AYB​,AZB​] = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] \begin{bmatrix} r11&r12&r13\\ r21&r22&r23\\r31&r32&r33\end{bmatrix} ⎣⎡​r11r21r31​r12r22r32​r13r23r33​⎦⎤​

B A R _B^AR BA​R為旋轉矩陣,其中上标A代表參考坐标系{A},下标B代表被描述的坐标系{B}。 B A R _B^AR BA​R矩陣中含有9個元素,隻有三個是獨立的,他的三個列矢量都是機關主矢量,兩兩互相垂直。标量 r i j {r_{ij}} rij​可用每個矢量在參考坐标系中機關方向上的投影的分量來表示。 B A R _B^AR BA​R中的各個分量可用一對機關矢量的點積來表示。由兩個機關矢量的點積可以得到二者之間的夾角的餘弦,是以旋轉矩陣的各個分量常被稱作方向餘弦。

繞x軸、y軸、z軸旋轉 θ \theta θ角度的矩陣分别為:

R(x, θ \theta θ)= ( 1 0 0 0 c o s θ − s i n θ 0 s i n θ c o s θ ) \begin{pmatrix} 1&0&0 \\ 0&cos\theta&-sin\theta \\ 0&sin\theta&cos\theta \end{pmatrix} ⎝⎛​100​0cosθsinθ​0−sinθcosθ​⎠⎞​

R(y, θ \theta θ)= ( c o s θ 0 s i n θ 0 1 0 − s i n θ 0 c o s θ ) \begin{pmatrix} cos\theta&0&sin\theta \\ 0&1&0 \\ -sin\theta&0&cos\theta \end{pmatrix} ⎝⎛​cosθ0−sinθ​010​sinθ0cosθ​⎠⎞​

R(z, θ \theta θ)= ( c o s θ − s i n θ 0 s i n θ c o s θ 0 0 0 1 ) \begin{pmatrix} cos\theta&-sin\theta&0 \\ sin\theta&cos\theta&0 \\0&0&1 \end{pmatrix} ⎝⎛​cosθsinθ0​−sinθcosθ0​001​⎠⎞​

通常情況下會用旋轉矩陣來描述剛體的方位。

(3)位姿的描述:

為了完整描述剛體B在空間的位置與姿态,需要将剛體B與坐标系{B}固接。坐标系的原點一般選取物體的特征點,如質心,對稱中心等。相對于參考系{A},位置矢量和旋轉矩陣分别描述坐标系{B}的原點位置和坐标軸的方位。是以B的位姿由坐标系{B}參考坐标系{A}來描述,即{B} = { B A R _B^AR BA​R, A X B ^A{X_B} AXB​}

(4)手爪坐标系:

為了描述末端執行器的位置和姿态,規定一個與手爪固接的坐标系,稱為手爪坐标系。z軸設定在接近物體的方向,稱為接近矢量a(approach);y軸設定在設在兩手指的聯線方向,稱為方向矢量o(orientation);x軸由右手法則确定,n稱為法向矢量(normal)。如此,手爪的方位就由旋轉矩陣[n,o,a]而手爪的位置由位置矢量p所規定,他代表手爪坐标系的原點,是以手爪的位姿可有四個獨立矢量進行描述[ n,o,a,p],記為[T]=[ n,o,a,p],在後續正逆運動學中,會多次用到這個坐标系。

坐标變化:

在空間中一點p在不同坐标系下的描述是不同的,從一個坐标系到另一個坐标系描述之間的變化關系主要如下三種:

(1)平移變換:

假設坐标系{B}和{A}有着相同的方位,但是兩個坐标系的原點不一緻。用位置矢 A P B ^A{P_B} APB​來描述{B}相對于參考坐标系{A}的位置,如下圖所示。把 A P B ^A{P_B} APB​稱為{B}相對于{A}的平移矢量。如果點P在坐标系{B}中的位置為 B P ^B{P} BP,則他相對于{A}的位置 B P ^B{P} BP可以通過矢量相加得到:

A P ^ A{P} AP= B P ^ B{P} BP+ A P B ^A{P_B} APB​

這個矢量相加的等式稱為坐标平移方程。

機械臂學習筆記01-位姿描述和坐标變換

圖2-1

(2)旋轉變化:

坐标系{B}與{A}具有相同的坐标原點,卻有着不同的方位,如下圖所示。可以用旋轉矩陣來描述{B}相對于{A}的方位。同樣的,空間中一點P在坐标系{A}和{B}中具有以下變換關系: A P ^ A{P} AP= B A R _B^A{R} BA​R B P ^B{P} BP ,旋轉矩陣與位置矢量的相乘稱為坐标系旋轉方程。

機械臂學習筆記01-位姿描述和坐标變換

圖2-2

(3)複合變化:

對于一般情況,坐标系{B}與坐标系{A},兩個坐标系,原點不重合,方位也不相同,如下圖所示。結合上面兩個方程,複合變換由坐标平移與坐标旋轉共同作用得來的,得出他的一般方程如下: A P ^ A{P} AP= B A R _B^A{R} BA​R B P ^B{P} BP+ A P B ^A{P_B} APB​

齊次坐标變換:

上式的複合變換對點 B P ^B{P} BP來說是非齊次的,但是可以把他轉化成齊次的形式:

( A P 1 ) \begin{pmatrix} ^A{P} \\ 1\end{pmatrix} (AP1​)= ( B A R A P B 0 1 ) \begin{pmatrix} _B^AR &^A{P_B} \\ 0&1\end{pmatrix} (BA​R0​APB​1​) ( B P 1 ) \begin{pmatrix} ^B{P} \\ 1\end{pmatrix} (BP1​)

(1)平移齊次坐标變換:

空間的任意點都有矢量ai+bj+ck來描述,其中i,j,k為軸x,y,z上的機關矢量,是以此點可以用平移齊次變換表示為:

Trans(a,b,c)= ( 1 0 0 a 0 1 0 b 0 0 1 c 0 0 0 1 ) \begin{pmatrix} 1&0&0&a \\ 0&1&0&b \\ 0&0&1&c \\ 0&0&0&1 \end{pmatrix} ⎝⎜⎜⎛​1000​0100​0010​abc1​⎠⎟⎟⎞​

(2)旋轉齊次坐标變換:

對應于軸x,y,z作轉角為 θ \theta θ的旋轉變化,可得到如下齊次矩陣:

Rot(x, θ \theta θ)= ( 1 0 0 0 0 c o s θ − s i n θ 0 0 s i n θ c o s θ 0 0 0 0 1 ) \begin{pmatrix} 1&0&0&0 \\ 0&cos\theta&-sin\theta&0 \\ 0&sin\theta&cos\theta&0 \\ 0&0&0&1 \end{pmatrix} ⎝⎜⎜⎛​1000​0cosθsinθ0​0−sinθcosθ0​0001​⎠⎟⎟⎞​

Rot(y, θ \theta θ)= ( c o s θ 0 s i n θ 0 0 1 0 0 − s i n θ 0 c o s θ 0 0 0 0 1 ) \begin{pmatrix} cos\theta&0&sin\theta&0 \\ 0&1&0&0 \\ -sin\theta&0&cos\theta&0 \\ 0&0&0&1 \end{pmatrix} ⎝⎜⎜⎛​cosθ0−sinθ0​0100​sinθ0cosθ0​0001​⎠⎟⎟⎞​

Rot(z, θ \theta θ)= ( c o s θ − s i n θ 0 0 s i n θ c o s θ 0 0 0 0 1 0 0 0 0 1 ) \begin{pmatrix} cos\theta&-sin\theta&0&0 \\ sin\theta&cos\theta&0&0 \\ 0&0&1&0 \\ 0&0&0&1 \end{pmatrix} ⎝⎜⎜⎛​cosθsinθ00​−sinθcosθ00​0010​0001​⎠⎟⎟⎞​

(3)複合齊次變換:

空間某點既有平移變換又有旋轉變化是,按照變化的先後順序,可得到如下變化矩陣:

T=Trans( a 1 a_1 a1​ , b 1 ,b_1 ,b1​, c 1 c_1 c1​)*Trans( a n a_n an​ , b n ,b_n ,bn​, c n c_n cn​)Rot(y, θ \theta θ)Rot(x, ε \varepsilon ε)

參考

[1].John J.Craig《機器人學導論》[M]機械工業出版社, 2006:14~47

[2].熊有倫,《機器人技術基礎》[M]華中理工大學出版社,1996:15~30

[3]馬強.《六自由度機械臂軌迹規劃研究》[D]哈爾濱工程大學2007:9~13

[4]馬江.《六自由度機械臂控制系統設計與運動學仿真》[D]北京工業大學2009:31~33