理解機器人運動學中的奇異性

理解機器人運動學中的奇異性

5 人贊了文章

「奇異性」是在大學線性代數中就講過的一個概念,說的是如果一個矩陣(方陣)的行列式的值為0,那麼這個矩陣就是奇異的,而且是不可逆的。其實僅僅從數學的角度來看,還不足以讓我們對機器人學中的奇異性有直觀的認識,因此有必要深入思考。

1. 一個直觀的例子:高射炮

高射炮(anti-aircraft gun,如圖1所示)是地面上或者老式的戰船上一種用來對付敵人飛機的防空武器,通過操縱機構來改變高射炮的俯仰角和偏轉角可以瞄準和跟蹤天上的飛機。如果用一個矢量代替高射炮炮管,如第二幅圖所示,炮管長度為R,偏轉角為θ1,俯仰角為θ2,可以看出炮管末端能夠在一個球面上任意移動。圖2中如果一架敵機出現在A點附近,炮手是很容易瞄準並追蹤它的,但是聰明的敵機往往會選擇沿著虛線往B點方向飛,這樣更容易逃脫高射炮的追蹤,這是為什麼呢?當跟蹤敵機的時候,炮手需要是炮筒末端S移動足夠快,我們假設炮筒末端的速度在xoy平面中的投影為v,可以理解為一個平掃速度,它垂直於OS(S是S在xoy平面中的投影)。很容易看出來,在給定了v以後,θ1對應的角速度就可以表示為:

從這個公式可以看出,當θ2趨於90°時,ω1是趨於無窮大的,這就意味著敵機飛到高射炮正上方的B點時飛行員就很難對它進行追蹤了。這個現象就是機構的奇異性導致的,實際上,當S位於Z軸上的時候,無論多大的偏轉角速度都不能使炮口產生平掃速度v。

下一部分,我們通過一個二連桿手臂來理解機器人學中的奇異性。

高射炮兩個自由度示意圖

高射炮跟蹤敵機示意圖

2. 二連桿機器人的例子

如下圖所示的一個二連桿手臂,

二連桿手臂實例

手臂末端在全局坐標系{0}中的表達為

式中,s1是對sinθ1的簡寫,s12是對sin(θ1+θ2)的簡寫。

上式對時間求導可以求出末端速度與關節速度之間的關係,進而求出雅可比矩陣:

末端速度在坐標系{0}中的表達為:

如果已知末端速度,可以由求出關節速度:

但當θ2=0的時候,我們發現雅可比矩陣的行列式為0,是不可逆的,這個時候為了實現一定的末端速度,關節速度會趨於無窮大。此時的位形如下圖所示:

當兩個連桿共線時出現奇異位形

奇異位形有這樣三個特點:

(1)在這個位置附近,關節速度趨於無窮大;

(2)此時機器人失去一個自由度,二連桿手臂退化為一個連桿;

(3)在笛卡爾空間中,無論選擇什麼樣的關節速度都不能使機器人沿著某個方向運動,比如上圖中,無論用多大的關節速度都不可能使末端B點沿著虛線方向運動。

3. 用ZYZ歐拉角和XYZ固定角坐標表示旋轉矩陣的冏境

ZYZ歐拉角得到的旋轉矩陣為

當β=0/180°時,Ry(β)變為單位矩陣,

這個時候,如果給定R,我們不能知道α和γ分別是多少,僅僅知道它們的和。

對於XYZ固定角坐標也是同樣的道理,如下圖(引用自Roboics Vision and Control,by Peter Corke)所示,這一個三自由度觀測台,坐標系{S}固連在中的觀測儀器上,當Z軸旋轉90°時,Y和X軸重合,此時旋轉矩陣不能表示繞y軸的旋轉。但同時儀器繞y軸的旋轉又是對儀器的方向直接相關的,那麼系統的追蹤精度就會不能保證。

奇異現象的一個實例:三維轉檯

上面兩種情況都使系統丟失了一個自由度,這樣造成的結果是,由旋轉矩陣到歐拉角或者XYZ固定角坐標的轉換不可逆,比如在matlab中,我們使歐拉角α,β,γ分別為0.1,0和0.3,能夠求出來一個旋轉矩陣R,但是由旋轉矩陣R再逆向求α,β,γ卻得到了0,0和0.4,也就是說,不可逆。

綜上所示,用歐拉角和XYZ固定角坐標表示姿態的時候不能避免奇異現象,其解決辦法是用單位四元數。

matlab中歐拉角與旋轉矩陣的不可逆性實例

4. 機器人中的奇異位形

機器人的奇異位形會出現在下列情形:

(1)工作空間的邊界(這時候機器人往往是完全展開或者回收的);

(2)工作空間內發生兩個或者兩個以上的軸關節共線的時候。

推薦閱讀:

峰會三場供需對接會,數十億項目資源在向你招手
兒童機器人選購指南
汽車4s店汽車行業如何用迎賓機器人提升效益?
我國首條生產機器人的智能生產線9月投產
機器人產業面臨四大難題

TAG:機器人控制 | 科技 | 機器人 |