• 
    
    <code id="qooqu"><delect id="qooqu"></delect></code>
  • 
    
    <dl id="qooqu"><acronym id="qooqu"></acronym></dl>
    <abbr id="qooqu"><source id="qooqu"></source></abbr>
    您好!歡迎訪問杭州藍(lán)芯科技有限公司網(wǎng)站!
    全國(guó)服務(wù)咨詢熱線:

    13675884706

    當(dāng)前位置:首頁(yè) > 技術(shù)文章 > 微分幾何在機(jī)器人領(lǐng)域的應(yīng)用(二)深入理解三維空間變換

    微分幾何在機(jī)器人領(lǐng)域的應(yīng)用(二)深入理解三維空間變換

    更新時(shí)間:2019-04-11      點(diǎn)擊次數(shù):2186

    空間幾何變換

    空間中的幾何變換分為多類,從簡(jiǎn)單,到逐漸復(fù)雜的變換,分別有如下幾種:

    1.   等距變換(Isometries)。等距變換下點(diǎn)到點(diǎn)的歐式距離保持不變。剛體變換是典型的等距變換。

    2.   相似變換(Similarity)。在等距變換的基礎(chǔ)上加上一個(gè)各向同性的縮放。矩陣表示上需要在旋轉(zhuǎn)矩陣部分乘以一個(gè)非零系數(shù)s。

    3.   仿射變換(Affine)。是一個(gè)非奇異的線性變換加上一個(gè)平移向量組成的變換。

    4.   投影變換(Projective)。任意非奇異的4×4矩陣所構(gòu)成的變換。

    變換的分類和特征如下圖所示。

     

    三維剛體的空間變換屬于種情況。如果物體不變形,那么剛體變換涵蓋物理世界中的所有情況。剛體變換包含三個(gè)平移自由度和三個(gè)旋轉(zhuǎn)自由度,總共6個(gè)自由度。應(yīng)用剛體變換,點(diǎn)到點(diǎn)的距離保持不變,同時(shí)矢量的點(diǎn)積和叉積保持不變。平移自由度易于理解,故本文重點(diǎn)討論旋轉(zhuǎn)分量,即旋轉(zhuǎn)矩陣R。

    旋轉(zhuǎn)矩陣

    在理解高維理論時(shí),我們一般采用降維的方式理解,由易到難。首先回到二維空間的變換。二維平面中,剛體變換有三個(gè)自由度,x, y 和旋轉(zhuǎn)角θ。用矩陣的形式表示:

    其中

     

    分別為旋轉(zhuǎn)矩陣和平移向量。可以看到旋轉(zhuǎn)矩陣只有一個(gè)自由度,因其只有一個(gè)變量θ。

    旋轉(zhuǎn)矩陣R的性質(zhì):

    1. 旋轉(zhuǎn)矩陣的逆矩陣是它的轉(zhuǎn)置矩陣,故旋轉(zhuǎn)矩陣是正交矩陣。(如果不理解逆矩陣和轉(zhuǎn)置矩陣,請(qǐng)首先惡補(bǔ)線性代數(shù))。

    2. 一個(gè)矩陣是旋轉(zhuǎn)矩陣,當(dāng)且僅當(dāng)它是正交矩陣,且它的行列式是1。正交矩陣的行列式是±1。讀者可思考行列式為-1的情況對(duì)應(yīng)什么變換。

    二維旋轉(zhuǎn)矩陣可用旋轉(zhuǎn)角唯yi表示。正角表示逆時(shí)針旋轉(zhuǎn)。

     

     

    如下圖表示的是當(dāng)θ=20°的情況。

     

    二位旋轉(zhuǎn)矩陣的許多性質(zhì)在三維空間中同樣滿足。

    讓我們回到三維空間。旋轉(zhuǎn)可以有三個(gè)旋轉(zhuǎn)組合而成。在右手(笛卡爾)坐標(biāo)系下分別繞x,y, z軸旋轉(zhuǎn)。其旋轉(zhuǎn)矩陣分別對(duì)應(yīng)為

     

    任意旋轉(zhuǎn)矩陣可寫作一定角度下的三個(gè)矩陣的乘積。

    注意:矩陣乘法不符合交換律!故順序不同,得到的旋轉(zhuǎn)矩陣并不相同。

     

    歐拉角

    航空領(lǐng)域,一般定義飛機(jī)前后軸為x軸,沿x軸旋轉(zhuǎn)的角度一般稱為Roll,中文稱作翻滾角;兩翼方向稱作Pitch,中文稱作俯仰角;垂直地面的方向是航向角(Yaw),如下圖所示。作者覺得中文翻譯很符合愿意,更易于理解。可以記住在駕駛飛機(jī)時(shí),如何操縱翻滾角,俯仰角,航向角。Roll,Pitch,Yaw,又稱作歐拉角。習(xí)慣上,三個(gè)歐拉角的方向是z-y-x,使用時(shí)需要特別重要,歐拉角順序錯(cuò)了,旋轉(zhuǎn)矩陣也會(huì)發(fā)生變化。

     

    程序?qū)崿F(xiàn):
    程序使用基于C++的Eigen庫(kù)[3]。注意,Eigen庫(kù)是一個(gè)僅包含頭文件的基礎(chǔ)矩陣庫(kù),沒有靜態(tài)或動(dòng)態(tài)庫(kù)。使用時(shí)僅需要把相關(guān)的目錄include就可以了。

     

    再次注意:三個(gè)歐拉角的順序!

     

     

     

    李群和李代數(shù)

    三維旋轉(zhuǎn)矩陣是直觀的表示方法,但旋轉(zhuǎn)矩陣有9個(gè)變量,只有3個(gè)自由度,故信息是冗余的。旋轉(zhuǎn)矩陣在工程使用更好的表達(dá)方法。根據(jù)定義,所有的剛體變換屬于一個(gè)群(李qun,Lie Group)。剛體變換又稱作特殊歐式變換(special  Euclidean  transformation),通常寫作SE(3)。李群中的變換滿足如下特性。詳細(xì)性質(zhì)可參見李群和李代數(shù)的資料。如果只限于3D視覺或機(jī)器人學(xué),只需記住其主要特性:

    ?封閉性
    ?相關(guān)性
    ?單位矩陣
    ?可逆

    剛體變換的組合和逆變換均屬于剛體變換。
    單純的旋轉(zhuǎn)變換稱作特殊正角變換(special orthogonal transformation),通常寫作SO(3)。旋轉(zhuǎn)矩陣都是正交矩陣。
    李代數(shù)通過指數(shù)映射,將旋轉(zhuǎn)矩陣的9個(gè)變量轉(zhuǎn)換為3個(gè)變量,結(jié)合三個(gè)平移向量,總共6個(gè)變量,對(duì)應(yīng)6個(gè)自由度。李代數(shù)表示法在三維重建(SFM)、VR、SLAM等位姿估計(jì)領(lǐng)域應(yīng)用的較多。李代數(shù)有基于Eigen的Sophus庫(kù)[4]可使用,方便完成指數(shù)映射。

     

    羅德里格斯旋轉(zhuǎn)公式

    (Rodriguez’s Rotation Formula)

    旋轉(zhuǎn)矩陣有一個(gè)更有效的表達(dá)方法,即由一個(gè)單位向量和一個(gè)旋轉(zhuǎn)角生成。每一個(gè)旋轉(zhuǎn)矩陣均可轉(zhuǎn)化為向量和角(又稱軸-角)的表達(dá)方式。根據(jù)公式,單位向量用表示,旋轉(zhuǎn)的角度是θ,那么相應(yīng)的旋轉(zhuǎn)矩陣是:

     

     

    此矩陣可簡(jiǎn)化為如下公式:

    具體點(diǎn)符號(hào)定義可參見相關(guān)文獻(xiàn)。單純環(huán)繞x,y或z軸旋轉(zhuǎn)而成的旋轉(zhuǎn)矩陣是羅德里格斯公式的特殊形式。讀者可以把上式中的單位向量替換為(0,0,1)進(jìn)行驗(yàn)證。雖然公式復(fù)雜,但程序?qū)嵺`比較方便。利用Eigen庫(kù)中的Eigen::AngleAxisf(旋轉(zhuǎn)向量)可以直接獲得。

     

    四元數(shù)(Quternions)

    四元素可看作一種特殊的復(fù)數(shù),由一個(gè)實(shí)部和三個(gè)虛部構(gòu)成。四元素的表示方法同旋轉(zhuǎn)矩陣、歐拉角表示方法是等價(jià)的。根據(jù)羅德里格斯旋轉(zhuǎn)公式,任何一個(gè)旋轉(zhuǎn)都可以表達(dá)成軸角的表達(dá)法。四元素可以更方便的表達(dá)出旋轉(zhuǎn)軸和旋轉(zhuǎn)角。單位歐拉向量可表示為:

    根據(jù)歐拉公式的擴(kuò)展,四元素可表示為

     

    四元素分為實(shí)部和虛部,實(shí)部只跟旋轉(zhuǎn)角有關(guān)。虛部有單位向量和旋轉(zhuǎn)角共同計(jì)算得來。

    四元數(shù)的求逆可采用復(fù)數(shù)的共軛(即虛部取反)方式求得

    同時(shí),四元數(shù)更易于做線性插值(Slerp)。實(shí)際實(shí)驗(yàn)中,使用四元素做旋轉(zhuǎn)矩陣的計(jì)算更加方便。使用Eigen庫(kù)時(shí),四元素的使用更為方便。

     

    總結(jié)

    剛體的空間變換由平移和旋轉(zhuǎn)兩部分組成。平移部分易于理解,旋轉(zhuǎn)部分一般由直觀的3×3矩陣表示。

    旋轉(zhuǎn)矩陣有很多特性(正交矩陣、單位矩陣),但其由9個(gè)元素,但只有3個(gè)自由度,故數(shù)學(xué)上的表示是冗余的。

    在機(jī)器人領(lǐng)域,使用多的除旋轉(zhuǎn)矩陣外,還有旋轉(zhuǎn)向量、歐拉角、四元素等。

    本文的幾乎所有變換都容易實(shí)現(xiàn),可直接使用三方庫(kù)如Eigen[3],類似的還要OpenCV等。但如要深入理解,hao自己實(shí)戰(zhàn)。

    思考:二維空間剛體變換有3個(gè)自由度,三維有6個(gè)自由度,四維空間呢?n維空間呢?

     

    參考文獻(xiàn):

    1. Multiple View Geometry in Computer Vision (2nd Edition), Richard Hartley and Andrew Zisserman.

    2. An Invitationto 3-D Vision From Images to Models, Yi Ma, Jana Kosecka, Stefano Soatto and Shankar Sastry.

    3. Eigen, eigen.tuxfamily.org/.

     

    本文屬于純?cè)瓌?chuàng)文章,轉(zhuǎn)載請(qǐng)注明杭州藍(lán)芯科技有限公司

    杭州藍(lán)芯科技有限公司
    地址:杭州市余杭區(qū)文一西路1818-2號(hào)中國(guó)人工智能小鎮(zhèn)7-902
    郵箱:wjfang@lanxincn.com
    傳真:
    關(guān)注我們
    歡迎您關(guān)注我們的微信公眾號(hào)了解更多信息:
    歡迎您關(guān)注我們的微信公眾號(hào)
    了解更多信息
    久久综合综合久久综合| 国产69精品久久久久99尤物| 最新久久免费视频| 国产精品99久久久久久宅男小说| 久久99精品国产99久久| 国产亚洲精品成人久久网站| 看久久久久久a级毛片| 国产一区二区精品久久凹凸| 欧美日韩久久久精品A片| 久久综合88熟人妻| 久久91精品国产91久久麻豆| 无码人妻少妇久久中文字幕| 色噜噜狠狠先锋影音久久| 久久精品中文字幕第一页| 久久精品免费大片国产大片| 久久爱在线播放视频| 久久99国产综合精品免费| 亚洲国产精品无码久久一线 | 精品国产免费观看久久久| 69国产成人综合久久精品91| 久久婷婷人人澡人人爱91| 国产亚州精品女人久久久久久| 日韩一区二区三区视频久久| 久久亚洲精品国产精品婷婷| 久久午夜羞羞影院免费观看| 久久最新精品国产| 狠狠综合久久AV一区二区三区| 国产成人99久久亚洲综合精品| 精品久久久久久中文字幕女| 久久国产劲爆AV内射—百度| 久久人人爽人人爽人人AV东京热 | 久久精品中文字幕免费| 97精品国产91久久久久久| 亚洲精品无码久久毛片| 九九久久精品国产免费看小说| 国产Av一区二区精品久久| 色8久久人人97超碰香蕉987| 久久久国产亚洲精品| 国产成人久久精品区一区二区| 久久婷婷人人澡人人爽人人爱| 久久久无码一区二区三区|