万向节死锁问题
歐拉角
歐拉角是用于一種處理空間中物體位姿的數(shù)學(xué)模型。
歐拉角提供一種非常直觀的方式用來描述旋轉(zhuǎn)——它使用3個(gè)分離的轉(zhuǎn)角,把一個(gè)旋轉(zhuǎn)分解成三次繞不同軸地旋轉(zhuǎn)。
——《視覺slam十四講》
歐拉角的描述方式多種多樣,我習(xí)慣于用yaw(偏航角),roll(橫滾角),pitch(俯仰角)也就是Z-Y-X(右手坐標(biāo)系)地旋轉(zhuǎn)模式來進(jìn)行描述。
靜態(tài)歐拉角
萬向節(jié)模型就是指一個(gè)用這種描述方式旋轉(zhuǎn)的一個(gè)模型。三個(gè)有同軸的圓環(huán),立體組合在一起,如果將一個(gè)一個(gè)箭頭放置在三個(gè)軸的交點(diǎn)處,那么當(dāng)這個(gè)箭頭以不同的圓環(huán)的軸心為依靠,進(jìn)行旋轉(zhuǎn)的時(shí)候,這個(gè)箭頭就可以指向空間中的任意方向,這種情況被稱為靜態(tài)歐拉角。在這種情景下,箭頭是一個(gè)靜止的物體,不會(huì)移動(dòng),我們需要關(guān)注的是它的指向,因此不會(huì)存在死鎖問題。
動(dòng)態(tài)歐拉角
所謂動(dòng)態(tài)歐拉角就是指,我們需要關(guān)注,這個(gè)箭頭的移動(dòng)軌跡。也就是我們的關(guān)注點(diǎn)是箭頭如何從一個(gè)角度移動(dòng)到另一個(gè)角度,我們需要讓箭頭從一個(gè)指定角度移動(dòng)到另一個(gè)角度,這個(gè)移動(dòng)軌跡應(yīng)當(dāng)是直線,或者說是非歐幾何意義下的直線,總之,如果我們將球面投影到二維z平面上,兩個(gè)球坐標(biāo)下指向的角度必然分別在z平面上分別代表兩個(gè)點(diǎn)。而這個(gè)軌跡的投影在z平面上必須是直線(按照我的理解)。換句話說,兩個(gè)角度之間移動(dòng)的軌跡的形狀都是相同的,是可預(yù)料的。但是在歐拉角下,是不可能的,當(dāng)三個(gè)圓環(huán)中的兩個(gè)重合時(shí),也就是最外側(cè)的兩個(gè)圓環(huán)處于同一平面時(shí),想要進(jìn)行以第三個(gè)環(huán)的中心為軸進(jìn)行旋轉(zhuǎn)的操作是不可實(shí)現(xiàn)的,必須將這個(gè)旋轉(zhuǎn)分解為三次不同的旋轉(zhuǎn),如果將這三個(gè)旋轉(zhuǎn)疊加起來就會(huì)看到,從一個(gè)角度到另一個(gè)角度的旋轉(zhuǎn)的軌跡變成了一條曲線,這種情況在動(dòng)態(tài)環(huán)境下是不可接受的。這就是著名的萬向節(jié)死鎖(Gimbal lock)問題,當(dāng)出現(xiàn)了外兩圈重合的情況時(shí),向某一特定方向的直接旋轉(zhuǎn)就不可實(shí)現(xiàn)。
下面是一個(gè)youku上的視頻說的很清楚
萬向節(jié)死鎖解析
總結(jié)
- 上一篇: 会声会影最新版:会声会影2021中文版它
- 下一篇: 小米商城热销模块样式