精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言實現歐拉角轉四元數

zhc135136 ? 來源:SmartHWFW ? 2023-08-07 09:57 ? 次閱讀

1. 說在前面的話

2. 歐拉角

3. 歐拉角與四元數關系

4. Matlabe 歐拉角轉四元數

5.C語言實現歐拉角轉四元數

6. 獲取資源

1. 說在前面的話

1)在介紹以下內容之前,我們假設讀者已經對復數與2D旋轉、3D空間中的旋轉、四元數的性質以及四元數與3D旋轉等數學理論有一定的閱讀理解基礎。

2)歐拉角與四元數姿態表示方法是目前工程上最常用的兩種方法。歐拉角表示法具有簡便、幾何意義明顯等優點,同時姿態敏感器可以直接測出這些參數,能較方便地求解用這些姿態參數描述的姿態動力學方程。但采用歐拉角的姿態描述方法存在奇點問題,且需多次三角運算。而采用四元數表示方法則可以避免這些問題,因此目前工程上開始采用四元數來描述飛行器運動及動力學方程中的姿態,而在設計控制規律時,由于歐拉角的直觀性和幾何意義,仍然采用歐拉角描述。

2. 歐拉角

根據歐拉定理,剛體繞固定點的位移也可以是繞該點的若干次有限轉動的合成。在歐拉轉動中,將載體坐標系轉動三次得到導航坐標系。在三次轉動中,每次的旋轉軸是被轉動坐標系的某一坐標軸,每次的轉動角即為歐拉角。因此,用歐拉角確定的姿態矩陣是三次坐標轉換矩陣的乘積。

最終的姿態矩陣還與三次轉動的順序有關,下面公式采用3-2-1順序,即按照Z-Y-X軸的順序旋轉(東北地坐標系(對應的載體坐標系前右下)):

4a947fe4-3466-11ee-9e74-dac502259ad0.png

于是可得姿態矩陣

4aac1be0-3466-11ee-9e74-dac502259ad0.png

式中,字符"c","s"分別為"cos"和"sin"的縮寫形式。

3. 歐拉角與四元數關系

根據四元數的定義,可以將歐拉角式轉換為四元數,以歐拉3-2-1轉動為例:第一次先繞Z軸轉動,φ = θ =0,

四元數表示為:

4ad3f91c-3466-11ee-9e74-dac502259ad0.png

第二次先繞Y軸轉動,φ = ψ = 0,

四元數表示為:

4ae80aba-3466-11ee-9e74-dac502259ad0.png

第三次先繞X軸轉動,θ = ψ = 0,

四元數表示為:

4afdcb16-3466-11ee-9e74-dac502259ad0.png

則,繞三軸轉動的合成為

4b1abfc8-3466-11ee-9e74-dac502259ad0.png

4b27b0e8-3466-11ee-9e74-dac502259ad0.png

該轉換方法在360±°內均有效,是一對一的關系。

4. MATLAB 歐拉角轉四元數

4b524218-3466-11ee-9e74-dac502259ad0.png

4b7da5e8-3466-11ee-9e74-dac502259ad0.png

5. C語言實現歐拉角轉四元數

歐拉角轉四元數的步驟如下:

STEP1:確定每個歐拉角的軸和旋轉角度。Yaw對應y軸,Pitch對應x軸,Roll對應z軸。記為yaw_angle,pitch_angle和roll_angle。

STEP2:分別根據每個歐拉角的旋轉軸和旋轉角度,構造旋轉四元數的各個分量。以yaw_angle為例,qw = cos(yaw_angle/2)qx = 0qy = sin(yaw_angle/2)qz = 0

同樣地,根據pitch_angle和roll_angle可以得到對應的旋轉四元數分量。

STEP3:根據旋轉四元數的分量,構造最終的旋轉四元數。旋轉四元數的分量為(qw, qx, qy, qz)。

請注意,歐拉角到四元數的轉換是一個多對一的映射,即不同的歐拉角可能對應相同的旋轉四元數。因此,在實際應用中,可能需要根據具體需求選擇適合的歐拉角表示方式。

校驗結果:

4b944096-3466-11ee-9e74-dac502259ad0.png

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    182

    文章

    2963

    瀏覽量

    230199
  • C語言
    +關注

    關注

    180

    文章

    7601

    瀏覽量

    136251
  • 飛行器
    +關注

    關注

    13

    文章

    718

    瀏覽量

    45472
  • 歐拉角
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6763

原文標題:MEMS_慣性傳感器程序集02-歐拉角轉四元數

文章出處:【微信號:SmartHWFW,微信公眾號:SmartHWFW】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    歐拉角之間的轉換

    歐拉角之間的轉換
    發表于 08-17 12:08

    飛控姿態解算中,歐拉角之間的轉換

    //歐拉角void cjx_from_euler(float roll, float pitch, float yaw){ floa
    發表于 11-17 13:09

    請問我用歐拉角造成的這些問題該怎么解決?

    我用歐拉角的時候出現了一些問題。我是按偏航,俯仰,橫滾的順序解算的,動作是三個軸依次3
    發表于 06-26 04:37

    基于Proteus和C語言實現

    基于Proteus和C語言實現一共個題目,有沒有人愿意嘗試一下?
    發表于 07-14 06:20

    旋轉矩陣、歐拉角比較

    MPU的旋轉矩陣 歐拉角比較,能夠幫助新手了解三者的不同之處
    發表于 12-08 11:41 ?55次下載

    DSP算法的c語言實現

    DSP算法的c語言實現,又需要的朋友下來看看。
    發表于 05-09 10:59 ?0次下載

    C++語言實現火車排序功能

    C++語言實現火車排序功能
    發表于 01-05 11:27 ?2次下載

    如何使用C語言實現一個比較簡單的猜游戲的程序免費下載

    本文檔的主要內容詳細介紹的是如何使用C語言實現一個比較簡單的猜游戲的程序免費下載
    發表于 04-24 18:31 ?0次下載
    如何使用<b class='flag-5'>C</b><b class='flag-5'>語言實現</b>一個比較簡單的猜<b class='flag-5'>數</b>游戲的程序免費下載

    MPU6050傳感器的歐拉角程序免費下載

    本文檔的主要內容詳細介紹的是MPU6050傳感器的歐拉角程序免費下載。
    發表于 08-30 17:29 ?23次下載
    MPU6050傳感器的<b class='flag-5'>四</b><b class='flag-5'>元</b><b class='flag-5'>數</b><b class='flag-5'>歐拉角</b>程序免費下載

    如何將轉化為歐拉角

    轉化為歐拉角: 1. 初始姿態的(w,
    發表于 12-05 17:03 ?13次下載
    如何將<b class='flag-5'>四</b><b class='flag-5'>元</b><b class='flag-5'>數</b>轉化為<b class='flag-5'>歐拉角</b>

    使用單片機實現并數字芯片測試的C語言實例免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現并數字芯片測試的C語言實例免費下載。
    發表于 03-29 11:48 ?3次下載

    使用單片機實現PCF8591換器應用的C語言實

    本文檔的主要內容詳細介紹的是使用單片機實現PCF8591換器應用的C語言實例免費下載。
    發表于 03-31 14:45 ?12次下載

    累加校驗和C語言實現

    累加校驗和C語言實現
    發表于 11-29 18:06 ?10次下載
    累加校驗和<b class='flag-5'>C</b><b class='flag-5'>語言實現</b>

    怎么用C語言實現多態

    這里我想主要介紹下在C語言中是如何實現的面向對象。知道了C語言實現面向對象的方式,我們再聯想下,C
    的頭像 發表于 10-12 09:12 ?2016次閱讀

    使用C語言實現的CRC計算單元的例子

    使用C語言實現的CRC計算單元的例子
    的頭像 發表于 05-16 16:16 ?870次閱讀