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