前言
在三維空間中驻啤,為了指定一個剛體的位置和姿態(tài)农猬,至少需要6個數(shù)。本章通過一個附著到物體上的參考坐標系來描述它的位置和姿態(tài)。這個坐標系相對于固定坐標系的構(gòu)型通過一個4x4的矩陣描述血公。這個矩陣是C-space的隱式表達:剛體的6維C-space空間通過對16維的矩陣施加10個約束獲得。
這樣的一個矩陣不僅可以表示坐標系的構(gòu)型戒职,還可以用來:
- 移動或旋轉(zhuǎn)一個向量/坐標系
- 將一個向量/坐標系的描述從一個坐標系轉(zhuǎn)換到另一個坐標系
通過選擇用4x4矩陣來表達構(gòu)型域蜗,以上這些操作就可以由簡單的線性代數(shù)理論完成。這也是為什么我們選擇用矩陣表達構(gòu)型的原因凛剥。
任意一個剛體的構(gòu)型都可以通過從固定參考坐標系出發(fā)侠仇,對一個恒定的速度(twist)積分指定的時間得到。這種運動類似于螺旋運動(screw motion):圍繞一個固定的軸旋轉(zhuǎn)并沿著該軸作平移運動犁珠÷叽叮基于此,我們可以通過6個參數(shù)描述的指數(shù)坐標(exponential coordinates)來表達構(gòu)型盲憎。這6個參數(shù)可以分為:描述螺旋軸方向的參數(shù)和一個沿著該軸運動路程的標量參數(shù)嗅骄。
1.1 平面上的剛體運動
考慮圖1中的平面物體,其運動被限制在平面中饼疙。圖中參考坐標系為固定不動的坐標系溺森,
,
為坐標軸單位向量,
,
附著在這個平面物體上,隨著物體運動而運動磅甩,我們稱該坐標系為載體坐標系(body frame)炊林,用
來表示。
為了描述這個平面物體的構(gòu)型卷要,只需要指定相對于
的位置和姿態(tài)渣聚。
的原點可通過
的坐標軸表達:
在確定參考坐標系的情況下,也可以將向量簡單的記為
僧叉。
描述相對于
的姿態(tài)最簡單的方式就是指定一個旋轉(zhuǎn)角度
奕枝。另一種方法是指定
,
相對于
,
的方向:
看起來上面的表達式似乎不是一個很好的用于表達姿態(tài)的方法郎笆,但是想象一下這個物體在三維空間中任意運動谭梗,一個角度將不足以描述坐標系的姿態(tài)。實際上我們需要三個角度宛蚓,但目前為止我們還不清楚如何定義這樣一組角度激捏。而將
的坐標軸用
坐標軸的系數(shù)來表達卻是很直接的一種方式。
正如點 P 可以表達為一個列向量:
,
也可以寫作兩個列向量壹置,組合成一個2x2 的矩陣
矩陣是一個旋轉(zhuǎn)矩陣钞护,盡管
包含4個數(shù)字,但它們受到3個約束:每一列是單位向量爆办,且兩列互相垂直难咕。剩余的一個自由度由
來參數(shù)化。
綜上距辆,將和
合并表達為
余佃,可作為坐標系
相對于
的位置和姿態(tài)的一種表達。
如圖2跨算,將在
中表達爆土,得到:
同樣地,我們也能夠在中表達
:
如果我們知道了(
相對于
的構(gòu)型)诸蚕,
(
相對于
的構(gòu)型)步势,那么我們可以計算出
相對于
的構(gòu)型:
因此不僅可以作為
在
中的構(gòu)型表達背犯,還能夠?qū)⒁粋€點或坐標系從
坐標變換到
坐標坏瘩。
考慮圖3中的一個剛體,坐標系和
固定在它上面漠魏。初始狀態(tài)時倔矾,
和
重合,
在
中的表達為
柱锹。而后物體移動哪自,使得
與
重合,
在
中的描述為
禁熏。記
的構(gòu)型為
壤巷,可驗證下面的關(guān)系式成立:
與之前的公式很類似,不同點在于這里的 和
都是在
下表達的匹层。因此這個表達式不是用于改變坐標隙笆,而是用作剛體位移(rigid-body displacement)锌蓄。圖3中發(fā)生的變換是:(1)根據(jù)
轉(zhuǎn)動
. (2) 根據(jù)
移動
升筏。
綜上瘸爽,一個旋轉(zhuǎn)矩陣-向量對 有3個作用:
- 表示一個剛體在
中的構(gòu)型
- 改變一個向量或坐標系的參考坐標系
- 移動一個向量或坐標系
注意到圖3(a)中的先旋轉(zhuǎn)和移動的剛體位移可以直接通過繞一個圖3(b)中的固定點旋轉(zhuǎn)角度
完成剪决。這是螺旋運動(screw motion)在平面上的特例檀训。因此享言,這個位移可以由3個螺旋坐標描述:
。其中
代表點s在坐標系
的坐標(螺旋軸指向紙面朝外)荧琼。
另一種表示螺旋運動的方式是將位移看作是以一定的角速度和線速度運動一段距離后產(chǎn)生差牛。觀察圖3(b)命锄,繞s點以一個單位角速度旋轉(zhuǎn),意味著在點坐標系
原點處物體上的一點線速度為
偏化。我們可以將這三個數(shù)組合起來用一個向量
來表示脐恩,這是螺旋軸的一種表達。繞該螺旋軸運動一個距離
將產(chǎn)生最終的位移侦讨。因此可以用三個坐標
來表達該物體的位移驶冒,我們稱它為平面上的剛體位移指數(shù)坐標(exponential coordinates)。
角速度和線速度統(tǒng)稱為twist搭伤,將螺旋軸乘以某個旋轉(zhuǎn)速度
得到速度
只怎。繞螺旋軸
旋轉(zhuǎn)
產(chǎn)生的位移和以速度
繞螺旋軸
旋轉(zhuǎn)一個單位時間得到的位移是相等的,因此
也可以被看作是一組指數(shù)坐標怜俐。
1.2 旋轉(zhuǎn)和角速度
1.2.1 旋轉(zhuǎn)矩陣
旋轉(zhuǎn)矩陣的9個參數(shù)受到6個約束身堡,只有3個獨立參數(shù)。注意到矩陣?
的三列對應(yīng)的是載體坐標系的三個坐標軸
擅这,因此矩陣?
需滿足以下三個條件:
-
單位模長條件:
都是單位向量
-
正交條件:
這六個約束可以用一個關(guān)系式表達:
所有3x3旋轉(zhuǎn)矩陣構(gòu)成的集合稱為特殊正交群(special orthogonal group)蚊伞,用符號表示时迫。和平面情況一樣掠拳,一個旋轉(zhuǎn)矩陣有以下三個作用:
- 表示一個旋轉(zhuǎn)
- 改變一個向量或坐標系的參考坐標系
- 旋轉(zhuǎn)一個向量或坐標系
這里重點解釋一下第三個作用旋轉(zhuǎn)一個向量或坐標系。如圖4喊熟,初始狀態(tài)下芥牌,坐標系和
重合壁拉,坐標軸為
弃理,如果我們讓
繞著某個軸
旋轉(zhuǎn)角度
案铺,則會得到一個新的坐標系
梆靖,其坐標軸為
返吻。令旋轉(zhuǎn)矩陣
表示
相對于
的旋轉(zhuǎn)测僵,那么就可以將
看成一個旋轉(zhuǎn)算子捍靠,而不是一個姿態(tài)表達,我們可以寫作:
這個旋轉(zhuǎn)算子將單位旋轉(zhuǎn)矩陣旋轉(zhuǎn)至
磁携。
繞坐標軸的旋轉(zhuǎn)矩陣如下:
更一般地,對于烟央,
其中粮呢,鬼贱,
这难。任意的
都可以由單位矩陣繞某個
旋轉(zhuǎn)某個
獲得姻乓。注意一個特性蹋岩,
学少。
假設(shè)代表坐標系
相對于
的旋轉(zhuǎn)版确,現(xiàn)在我們想讓
繞單位向量?
旋轉(zhuǎn)角度
,該旋轉(zhuǎn)由旋轉(zhuǎn)矩陣
表示侵歇。為了更清楚的表達該旋轉(zhuǎn)惕虑,我們還需要指明旋轉(zhuǎn)軸
是在
中還是
中 表達溃蔫。令坐標系
為
繞?
旋轉(zhuǎn)角度
得到(
在固定坐標系中描述)伟叛,
為
繞?
旋轉(zhuǎn)角度
得到(
在載體坐標系中描述)。這兩個新的坐標系可以通過下面的表達式計算出來:
也就是說捂人,前乘一個矩陣代表繞固定坐標系中的
旋轉(zhuǎn)滥搭,后乘
代表繞載體坐標系中的
旋轉(zhuǎn)瑟匆。如果對一個向量
旋轉(zhuǎn),由于只涉及到
所在的坐標系外厂,那么
也是在該坐標系中描述的,旋轉(zhuǎn)后的向量
交惯。
1.2.2 角速度
如圖5席爽,假設(shè)一個旋轉(zhuǎn)的物體上固連著一個坐標系,其坐標軸單位向量為玖像,現(xiàn)在來求取這三個單位坐標軸對時間的導(dǎo)數(shù)捐寥。注意坐標軸的長度是不變的握恳,只有方向會發(fā)生變化捺僻。研究載體坐標系在
和
時刻的姿態(tài)的變化匕坯,這個變化可以描述為繞過原點的某個軸
旋轉(zhuǎn)角度
得到葛峻。注意這個
目前還沒有指明在哪個坐標系中描述术奖。
當趨于0時,就變?yōu)榱诵D(zhuǎn)的速度榛丢,就是瞬時旋轉(zhuǎn)軸晰赞。我們可以將和結(jié)合起來表示為角速度 (angular velocity):
參考圖5(b)掖鱼,可得到:
為了以坐標形式表達這三個關(guān)系式戏挡,我們需要選定一個參考坐標系。理論上可以選擇任意坐標系拆檬,兩個很自然的選擇是固定坐標系和載體坐標系竟贯。
首先選擇為參考坐標系屑那。令旋轉(zhuǎn)矩陣
表示載體坐標系在
時刻時相對于固定坐標系的姿態(tài)艘款,
是其時間變化率哗咆,
的第一列
描述了
軸在固定坐標系下的坐標岳枷,
和
分別為
和
軸在固定坐標系下的坐標空繁。在某個時刻
處,令
為角速度
在固定坐標系下的表達闷祥,則上面的三個關(guān)系式可以寫為:
這三個關(guān)系式可寫成矩陣形式:
為了消除右側(cè)的叉乘符號凯砍,我們引入一個新的表示符號悟衩,將 寫為
座泳,其中
為
的
反對稱(skew-symmetric)矩陣表達:
給定一個向量,定義矩陣
為
的
反對稱矩陣表達镇防,即:
所有實反對稱矩陣構(gòu)成的集合叫做
(李代數(shù))来氧,它包含了當
時啦扬,所有可能的
考传。
反對稱矩陣一個有用的特性如下:給定任意的和
证鸥,有以下關(guān)系式恒成立:
有了新的符號[]枉层,旋轉(zhuǎn)矩陣的導(dǎo)數(shù)就可以寫為:
兩邊同乘以 ,可得到:
現(xiàn)在我們將表達在
坐標系中鸟蜡,記為
端铛。注意
和
是同一個角速度
在不同坐標系下的向量表達,由下標消除法則哗总,
耻煤,因此
將上面的關(guān)系式表達為反對稱矩陣形式:
綜上怜跑,有兩個關(guān)系式將和
同角速度
聯(lián)系起來:
需要注意兩點:
-
并不是相對于正在運動的坐標系來描述的峭拘,而是相對于一個靜止坐標系
描述,這個靜止坐標系同固結(jié)在運動物體上的某個坐標系在這一瞬時重合辉饱。
-
不依賴于載體坐標系的選擇彭沼,
不依賴于固定坐標系的選擇按脚。表面上看乘寒,它們都依賴于
和
,實際上
的乘積獨立于
烂翰,
的乘積獨立于
甘耿。
1.2.3 旋轉(zhuǎn)的指數(shù)坐標表示法
指數(shù)坐標(Exponential Coordinates)是旋轉(zhuǎn)的一種三參數(shù)表達法佳恬。指數(shù)坐標用表示,其中
是旋轉(zhuǎn)軸單位向量垫言,
是旋轉(zhuǎn)角度倾剿。如果分開寫前痘,就變?yōu)榱诵D(zhuǎn)的角-軸(axis-angle)表達法。
旋轉(zhuǎn)矩陣對應(yīng)的指數(shù)坐標
可作如下的解讀:
-
旋轉(zhuǎn)軸
和旋轉(zhuǎn)角度
坯癣,某一個坐標系初始狀態(tài)同
重合示罗,繞
旋轉(zhuǎn)
角度鹉勒,得到的坐標系相對于
的姿態(tài)可用旋轉(zhuǎn)矩陣
表達
-
在
中描述的一個角速度
吵取,某一個坐標系初始狀態(tài)同
重合皮官,沿著
運動單位時間(對
在這段時間內(nèi)積分)捺氢,得到的坐標系相對于
的姿態(tài)可用旋轉(zhuǎn)矩陣
表達
-
在
中描述的一個角速度
剪撬,某一個坐標系初始狀態(tài)同
重合残黑,沿著
運動
時間(對
在這段時間內(nèi)積分)梨水,得到的坐標系相對于
的姿態(tài)可用旋轉(zhuǎn)矩陣
表達
后兩種解讀方式暗示我們可以用線性微分方程形式來看待指數(shù)坐標。先了解一下向量形式線性微分方程的一些結(jié)論:
設(shè)線性微分方程為舅世,初始條件為
,
為常矩陣缨硝,
追葡。那么該方程的解為:
其中稱為矩陣指數(shù)(matrix exponential):
還滿足下面的特性:
- 如果
可以寫為
且
可逆宜肉,則
- 如果
谬返,則
(可以展開后驗證)
-
(在上面表達式中令
可驗證)
如圖6日杈,假設(shè)一個三維向量繞
旋轉(zhuǎn)
至
莉擒,可以想象一下這個旋轉(zhuǎn)過程:
以一個恒定速度1
從
旋轉(zhuǎn)到
涨冀,令
表示向量頭部走過的路徑,其速度
為:
上面的方程是一個線性微分方程扁眯,其解為:
由于和
是可交換的姻檀,上式可寫為:
從上式可看出的一個作用涝滴,它可以將
旋轉(zhuǎn)至
歼疮,
對應(yīng)繞
逆時針旋轉(zhuǎn),
則順時針旋轉(zhuǎn)默怨。
對按照定義展開得到:
由匙睹,上式可化簡為:
由和
的級數(shù)展開式可得:
上式稱為羅德里格旋轉(zhuǎn)公式(Rodrigues’ formula)痕檬。
以上,展示了如何通過矩陣指數(shù)丘跌,從和
創(chuàng)建旋轉(zhuǎn)矩陣闭树。如前所述荒澡,
的一個作用单山,它可以將一個向量
旋轉(zhuǎn)至
,同樣的昼接,矩陣
由三個列向量構(gòu)成慢睡,那么旋轉(zhuǎn)矩陣
就是由
繞固定坐標系的
旋轉(zhuǎn)角度
獲得膨疏。旋轉(zhuǎn)矩陣
就是由
繞載體坐標系的
旋轉(zhuǎn)角度
獲得佃却。
下面我們將證明窘俺,對于任意的旋轉(zhuǎn)矩陣,我們總能找到一個單位向量
和標量
灶泵,使得
赦邻。
1.2.4 旋轉(zhuǎn)的矩陣對數(shù)
如果代表一個旋轉(zhuǎn)矩陣的指數(shù)坐標实檀,那么反對稱矩陣
就是旋轉(zhuǎn)矩陣
的矩陣對數(shù)(matrix logarithm)。矩陣對數(shù)是矩陣指數(shù)的逆運算恬吕。矩陣指數(shù)是將角速度的矩陣表達
積分1s得到一個旋轉(zhuǎn)矩陣
铐料,矩陣對數(shù)是對旋轉(zhuǎn)矩陣
微分,得到一個恒定角速度的矩陣表達
柒凉,如果對它積分1s篓跛,就會將矩陣
旋轉(zhuǎn)至
举塔。簡單來說:
1.3 剛體運動和速度(Twist)
這一小節(jié)討論剛體構(gòu)型(configuration)和速度,與1.2節(jié)討論的旋轉(zhuǎn)和角速度在某些方面是類似的计盒。齊次變換矩陣與旋轉(zhuǎn)矩陣
類似北启,螺旋軸