為什麼在使用euler angle旋轉剛體的時候不保持三個座標軸始終垂直來避免gimbal lock?

時間 2021-06-04 16:06:53

1樓:

靜態座標系不存在gimbal lock。

只有動態座標系才存在。網上光宇gimballock的說法非常不清楚。就是簡單畫個圖或者做個動畫說明什麼是gimbal lock,但是對於其發生的環境,條件,以及影響,都隻字不提。

僅僅讓大家知道,因為gimbal lock的存在,所以要用四元數。。。其實根本就不是這樣,這種結論是有其前提的。

2樓:亞當

如果學過旋轉矩陣那就比較好說了

當前座標與世界座標旋轉無非就是旋轉矩陣左乘與右乘的區別最後都是三個旋轉矩陣乘在一起

你可以嘗試用不同的xyz順序組合帶入但是會發現都可以存在某個cos90讓某個自由度丟失的情況

3樓:hadroncfy

這樣也不能避免死鎖,因為轉動的角度和繞的軸的順序是在旋轉開始就固定了的,如分別繞x,y,z轉θφρ,這樣其實和分別繞固定的軸z,y,x轉是等價的。

其實gimbal lock是不可避免的,原因就是三維轉動群SO(3)是緊緻的,不能用乙個座標圖覆蓋。座標覆蓋相當於乙個座標系,即從這個轉動群到R3的對映,並且要求這個對映及其逆對映都是連續的。尤拉角就是SO(3)的乙個座標覆蓋,但它在一些區域存在不連續和不可逆的情況,所以尤拉角是不能覆蓋整個SO(3)的,就像球座標在本初子午線上不連續一樣。

在尤拉角不能覆蓋的區域上就會造成gimbal lock。

為什麼你在使用R語言?

隨口說說的人 一開始因為喜歡程式設計的感覺,後來因為統計學需要。學習R本身就很有意思,現在功利了,做統計或者畫圖需要用到,才學習相應的R的部分。對工具本身的迷戀,會失去重心。還是,結合需求來學和用。會形成正反饋。 章丁睿 最主要的原因是R裡的幾個package,讓我遲遲放不下。資料處理 首推data...

為什麼c STL sort 函式在使用快排之後,再呼叫插入排序?

原因不是插入排序的對於小陣列比較快 如其它答案所說的 而是插入排序對於已經接近排好序的陣列比較快。如題主所說,常見的stl的sort實現中,會先利用快速排序,保證這些無序的partition元素個數小於一定數值,然後直接退出,而不是接著對小陣列呼叫插入排序。插入排序的呼叫地點是在快速排序完全結束之後...

為什麼在專案中要盡量避免使用浮點數,不使用浮點數,那該如何計算浮點數?

Trueman 搜尋高精度演算法。浮點數在數值分析中都是乙個困難的問題。因為格式很僵化,總是自動捨去尾數,不知道後面變成什麼,不可控的東西太多。尾數一旦扔掉是撿不回來的。 浮點數的缺點是不是絕對的精準,優點是計算效率高 大部分cpu對浮點數都有專門單元處理的,比如x86的fpu 比較省儲存空間。要求...