青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當自強而不息

3D中的方位和角位移(2)

 

另一種描述方位的常用方法是歐拉角,這項技術以著名的數學家Leonhard Euler(1707 - 1783)的名字命名,他證明了角位移序列等價于單個角位移。

 

什么是歐拉角

歐拉角的基本思想是將角位移分解為繞三個互相垂直軸的三個旋轉組成的序列。這聽起來很復雜,其實它是非常直觀的(事實上,易于使用正是它的主要優點之一)。之所以有"角位移"的說法正是因為歐拉角能用來描述任意旋轉。

歐拉角將方位分解為繞三個互相垂直軸的旋轉,那么是哪三個軸?按什么順序?其實,任意三個軸和任意順序都可以,但最有意義的是使用笛卡爾坐標系并按一定順序所組成的旋轉序列。最常用的約定是所謂的"heading - pitch - bank"約定。在這個系統中,一個方位被定義為一個heading角,一個pitch角,一個bank角。它的基本思想是讓物體開始于"標準"方位 --- 就是物體坐標軸和慣性坐標軸對齊。在標準方位上,讓物體作heading、pitch、bank旋轉,最后物體到達我們想要描述的方位。

如圖10.4所示,此時物體坐標系和慣性坐標系重合,heading為繞y軸的旋轉量,向右旋轉為正(如果從上面看,旋轉正方向就是順時針方向)。

經過heading旋轉后,pitch為繞x軸的旋轉量,注意是物體坐標系的x軸,不是原慣性坐標系的x軸。依然遵守左手法則,向下旋轉為正,如圖10.5所示:

最后,經過了heading和pitch,bank為繞z軸的旋轉量。再次提醒,是物體坐標系的z軸,不是原慣性坐標系的z軸。依據左手法則,從原點向+z看,逆時針方向為正。如圖10.6所示:

記住,當我們說旋轉的順序是heading-pitch-bank時,是指從慣性坐標系到物體坐標系。如果從物體坐標系變換到慣性坐標系,旋轉的順序就是相反的。"heading-pitch-bank"也叫作"roll-pitch-yaw",roll類似于bank,yaw類似于heading(事實上,yaw并不嚴格等于heading)。注意,在roll-pitch-yaw系統中,角度的命名順序與從物體坐標系到慣性坐標系的旋轉順序一致的。

 

關于歐拉角的其他約定

heading-pitch-bank系統不是唯一的歐拉角系統。繞任意三個互相垂直軸的任意旋轉都能定義一個方位,所以多種選擇導致了歐拉角約定的多樣性:

(1)heading-pitch-bank系統有多個名稱。當然,不同的名字并不代表不同的約定,這其實并不重要。一組常用的術語是roll-pitch-yaw,其中的roll等價于bank,yaw基本上等價于heading。注意,它的順序和heading-pitch-bank的順序相反,這只是語義上的。它定義了向量從物體坐標系變換到慣性坐標系的旋轉順序。(事實上,yaw和heading還是有技術上的差別,yaw是繞物體坐標系y軸的旋轉,heading是繞慣性坐標系y軸的旋轉。因為這里的旋轉是在物體坐標系y軸和慣性坐標系y軸重合時進行的,所以這個區別并不重要。)

(2)任意三個軸都能作為旋轉軸,不一定必須是笛卡爾軸,但使用笛卡爾軸最有意義。

(3)決定每個旋轉的正方向時不一定必須遵守左手或右手法則。例如,完全可以定義pitch的正方向是向上的,并且這種定義方法非常常見。

(4)也是最重要的,旋轉可以以不同的順序進行。順序并不重要,任何系統都能用來定義一個方位,但heading-pitch-bank順序最為實用。heading度量繞豎直軸的旋轉,它之所以有意義主要是因為我們所在的環境經常有某種形式的"地面"。一般來講繞慣性坐標系的x或z軸的旋轉沒有什么意義。heading-pitch-bank順序下的另外兩個角的意義是:pitch度量水平方向的傾角,bank度量的是繞z軸的旋轉量。

 

歐拉角的優點

歐拉角僅使用三個數來表達方位,并且這三個數都是角度。這兩個特點使歐拉角具有其他形式所沒有的優點:

(1)歐拉角對我們來說很容易使用。它比矩陣和四元數簡單得多,這可能是因為歐拉角中的數都是角度,符合人們思考方位的方式。如果我們選擇了與所要處理的情況最符合的約定,那么就能直接描述出最重要的角度,例如,用heading-pitch-bank系統就能直接地描述出偏差角度。便于使用是其最大的優點,當需要顯示方位或用鍵盤輸入方位時,歐拉角是唯一的選擇。

(2)最簡潔的表達方式。歐拉角用三個數來表達方位。在3D中,表達方位不能少于三個數,如果要考慮內存的因素,歐拉角是最合適的描述方位的方法。

(3)任意三個數都是合法的。取任意三個數,它們都能構成合法的歐拉角,而且可以把它看成一個對方位的描述。從另一方面說,沒有"不合法"的歐拉角。當然數值可能不對,但至少它們是合法的??删仃嚭退脑獢稻筒灰欢ㄊ沁@樣了。

 

歐拉角的缺點

用歐拉角表達方位時的缺點主要有:

(1)給定方位的表達方式不唯一。

(2)兩個角度間求插值非常困難。

讓我們仔細討論這些問題。第一個問題是對于一個給定方位,存在多個歐拉角可以描述它。這稱作別名問題,有時候會引起麻煩。因為這個原因,連一些基本的問題(如"兩組歐拉角代表的角位移相同嗎?")都很難回答。

第一種,在將一個角度加上360度的倍數時,我們就會遇到形式最簡單的別名問題。顯然,加上360度并不會改變方位,盡管它的數值改變了。

第二種,更加麻煩的別名問題是由三個角度不互相獨立而導致的。例如,pitch135度等價于heading180度,pitch45度,然后bank180度。為了保證任意方位都只有獨一無二的表示,必須限制角度的范圍。一種常用的技術是將heading和bank限制在+180度到-180度之間,pitch限制在+90度到-90度之間。這就建立了歐拉角的一個"限制范圍"。對于任意方位,僅存在一個限制歐拉角能代表這個方位(事實上,還有一個違反唯一性的現象需要處理。)

歐拉角最著名的別名問題是這樣的:先heading45度再pitch90度,這與先pitch90度再bank45度是等價的。事實上,一旦選擇+(-)90度為pitch角,就被限制在只能繞豎直軸旋轉。這種現象,角度為+(-)90度的第二次旋轉使得第一次和第三次旋轉的旋轉軸相同,稱作萬向鎖。為了消除限制歐拉角的這種別名現象,規定萬向鎖情況下由heading完成繞豎直軸的全部旋轉。換句話說,在限制歐拉角中,如果pitch為+(-)90度,則bank為0。

如果是為了描述方位,特別是在使用了限制歐拉角的情況下,別名是不會造成太大的問題的。現在來看兩個方位A和B間求插值的問題,也就是說,給定參數t,0 ≤ t ≤ 1,計算臨時方位C,當t從0變化到1時,C也平滑地從A變化到B。

這個問題的簡單解法是分別對三個角度作標準線性插值,公式如下:

但這里面有很多問題。

第一,如果沒有使用限制歐拉角,將得到很大的角度差。例如,方位A的heading為720度,方位B的heading為45度,720 = 360 x 2,也就是0度。所以heading值只相差45度,但簡單的插值會在錯誤的方向上繞將近兩周。如圖10.7所示:

解決問題的方法是使用限制歐拉角,然而,即使是限制歐拉角也不能完全解決問題。插值的第二個問題是由旋轉角度的周期性引起的。設A的heading為-170度,B的heading為170度。這些值在heading的限制范圍內,都在-180度到180度之間。這兩個值只相差20度,但插值操作又一次發生了錯誤,旋轉是沿 "長弧"繞了340度而不是更短的20度,如圖10.8所示:

解決這類問題的方法是將插值的"差"角度折到-180度到180度之間,以找到最短弧。

即使使用了這兩個角度限制,歐拉角插值仍然可能碰到萬向鎖的問題,它在大多數情況下會產生抖動、路徑錯誤等現象,物體會突然飄起來像是"掛"在某個地方。根本問題是插值過程中角速度不是恒定的。

歐拉角插值的前兩個問題雖然煩人,但并不是不可克服的。限制歐拉角和將角度差限制在一定范圍內提供了簡單的解決方法。而對于萬向鎖,非常不幸,它非常令人討厭,是一個底層的問題。你可能會考慮重新規劃旋轉,發明一種不會遭遇這些問題的系統。不幸的是,這不可能。這是一個用3個數表達3D方位的方法與生俱來的問題。我們可以改變問題,但不能消滅它們。任何使用三個數來表達3D方位的系統,若能保證空間的唯一性,就都會遇到這些問題,如萬向鎖。


posted on 2008-02-12 16:48 lovedday 閱讀(3597) 評論(5)  編輯 收藏 引用

評論

# re: 3D中的方位和角位移(2) 2008-08-06 16:29 rabbit729

您好!你的文章很好!不過有句話我不理解:“當我們說旋轉的順序是heading-pitch-bank時,是指從慣性坐標系到物體坐標系。如果從物體坐標系變換到慣性坐標系,旋轉的順序就是相反的?!笔裁词菑膽T性坐標系到物體坐標系?是不是說旋轉慣性坐標系而物體坐標系不變?如果是這樣的話上面旋轉的圖是不是有問題?謝謝你的回復!我的郵箱:wlq_729@163.com  回復  更多評論   

# re: 3D中的方位和角位移(2)[未登錄] 2008-09-19 17:52 lovedday

慣性坐標系就是將世界坐標系的原點移動到物體所在處形成的坐標系,而物體坐標系是物體本身的坐標系。  回復  更多評論   

# re: 3D中的方位和角位移(2) 2008-12-20 11:01

不得不佩服
也不得不認輸!

受益非淺 學習了!  回復  更多評論   

# re: 3D中的方位和角位移(2) 2009-01-01 00:10 seizeF

對的,我也有rabbit729的疑問,就是書中的例子是以heading-pitch-bank來講解,但是看圖感覺好象是從object -> inertial。
對于這三者的順序,就像書上說的以bank-pitch-heading來表示從object-inertial的變換,那么是否可以隨意使用其他的組合?我看到WIKI上有所有不同的組合的旋轉矩陣,并且矩陣也是不同的,那么為什么我們使用bank-pitch-heading這種順序的組合呢?  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

導航

統計

常用鏈接

隨筆分類(178)

3D游戲編程相關鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人成高清| 欧美在线免费观看视频| 好吊成人免视频| 欧美日韩一区二区三区四区五区 | 亚洲国产日韩在线一区模特| 欧美成人激情在线| 欧美一区二区视频网站| 一区二区免费在线观看| 亚洲欧洲一区二区天堂久久| 亚洲高清网站| 亚洲国产网站| 99精品国产99久久久久久福利| 亚洲精品少妇30p| 在线视频免费在线观看一区二区| 99热免费精品| 欧美在线视频一区二区三区| 欧美专区日韩视频| 麻豆成人精品| 一本色道久久综合一区| 午夜国产精品视频| 免费观看一区| 欧美亚洲成人网| 久久成人精品一区二区三区| 日韩视频免费看| 久久精品国产欧美激情| 狂野欧美激情性xxxx欧美| 欧美激情精品久久久久久免费印度| 欧美激情女人20p| 欧美成人免费在线观看| 久久久www成人免费毛片麻豆| 老司机午夜精品| 亚洲自拍电影| 欧美色播在线播放| 最新国产成人在线观看| 亚洲欧洲av一区二区| 久久久久久久综合色一本| 亚洲精品欧美一区二区三区| 久久久久国产精品一区三寸| 另类图片综合电影| 久久国产精品亚洲77777| 国产精品免费小视频| 中日韩男男gay无套| 亚洲区国产区| 欧美日本韩国一区| 亚洲精品在线看| 亚洲精品乱码久久久久久| 免费不卡视频| 一区二区三欧美| 亚洲美女中文字幕| 欧美日韩国产成人| 午夜视频在线观看一区| 国产拍揄自揄精品视频麻豆| 久久xxxx精品视频| 久久亚洲欧洲| 亚洲黄网站在线观看| 欧美激情片在线观看| 欧美精选一区| 久久精品国产欧美激情| 老司机精品视频网站| 夜夜嗨av一区二区三区四区 | 国产欧美日韩视频一区二区三区 | 欧美诱惑福利视频| 亚洲欧美日韩在线高清直播| 激情成人av| 亚洲一区二区三区中文字幕在线| 狠狠色狠狠色综合| 99热免费精品| 黄色成人av网| 中国成人在线视频| 久色婷婷小香蕉久久| 国产精品一区二区你懂得 | 亚洲精品视频在线看| 性欧美大战久久久久久久久| 亚洲二区在线观看| 久久久99免费视频| 久久久精品性| 国产综合网站| 久久精品国产77777蜜臀| 久久成人免费| 午夜视频在线观看一区二区三区 | 香蕉久久夜色| 99成人在线| 欧美精品少妇一区二区三区| 欧美国产日韩精品| 亚洲人精品午夜| 欧美极品影院| 亚洲视频久久| 免费观看30秒视频久久| 在线观看欧美视频| 久久精品夜色噜噜亚洲a∨| 美女诱惑黄网站一区| 亚洲欧美国产一区二区三区| 午夜一区二区三区在线观看| 国产日韩av一区二区| 久久精视频免费在线久久完整在线看| 欧美资源在线| 亚洲精品视频在线看| 国产精品久久久久久久电影| 久久爱另类一区二区小说| 欧美国产精品日韩| 亚洲欧美偷拍卡通变态| 激情六月婷婷久久| 欧美日韩一区不卡| 亚洲尤物在线视频观看| 国产日韩欧美一区在线| 欧美暴力喷水在线| 午夜亚洲性色福利视频| 91久久久久| 久久亚洲午夜电影| 亚洲欧美日韩精品| 日韩一区二区电影网| 久久久久久久网| 亚洲欧美另类中文字幕| 亚洲欧洲在线免费| 91久久精品国产| 在线观看不卡av| 精品成人一区| 亚洲国产精品久久| 亚洲第一久久影院| 黄色日韩在线| 亚洲成人自拍视频| 亚洲高清中文字幕| 亚洲人屁股眼子交8| 亚洲国产欧美国产综合一区| 在线免费观看成人网| 黑人巨大精品欧美黑白配亚洲| 国产精品亚洲人在线观看| 国产精品自在在线| 久久一二三区| 欧美成人69av| 欧美视频在线观看免费| 国产精品麻豆va在线播放| 欧美日韩一区二区三区在线看| 欧美日本网站| 国产日韩欧美黄色| 在线看无码的免费网站| 亚洲经典自拍| 亚洲欧美国产精品va在线观看| 性欧美精品高清| 亚洲国内自拍| 亚洲欧美日韩国产中文在线| 久久激情婷婷| 欧美三日本三级少妇三2023 | 久久精品卡一| 国产精品视频九色porn| 亚洲美女中文字幕| 久久成人免费网| 99精品视频一区| 欧美高清在线视频| 国产一区二区黄| 久久成人免费电影| 亚洲视频在线免费观看| 毛片av中文字幕一区二区| 国产偷国产偷精品高清尤物| 夜夜躁日日躁狠狠久久88av| 免费观看成人| 另类天堂视频在线观看| 今天的高清视频免费播放成人| 亚洲男女自偷自拍| 亚洲天堂av电影| 国产精品国产自产拍高清av王其| 亚洲人在线视频| 亚洲电影在线播放| 欧美人与性动交cc0o| 麻豆freexxxx性91精品| 亚洲自拍偷拍网址| 亚洲永久在线| 亚洲高清在线观看一区| 亚洲国产裸拍裸体视频在线观看乱了 | 久久成人一区| 一区二区三区在线免费播放| 香蕉久久夜色精品国产使用方法| 国产精品99久久99久久久二8| 国产精品久久福利| 久久视频在线免费观看| 欧美激情aⅴ一区二区三区 | 欧美日韩精品欧美日韩精品| 亚洲午夜伦理| 久久精品动漫| 99视频有精品| 久久黄金**| 性做久久久久久| 欧美另类高清视频在线| 久久精品视频在线观看| 欧美日韩一区二区三区在线观看免| 久久激情综合| 国产日本欧美一区二区三区在线 | 欧美激情视频网站| 国产精品乱码一区二三区小蝌蚪 | 午夜欧美大片免费观看| 免费成人在线观看视频| 久久精品成人欧美大片古装| 欧美精品一卡| 亚洲激情影院| 日韩午夜三级在线| 欧美黄色精品| 欧美揉bbbbb揉bbbbb| 亚洲精品国久久99热| 在线成人黄色| 欧美成人四级电影|