【機器人-基礎知識】歐拉角、旋轉矩陣和四元數

1. 歐拉角

在這里插入圖片描述

1.1. 歐拉角的定義

歐拉角是一組三個角度,用于描述一個剛體在三維空間中的定向關系。具體來說,它們表示從一個固定參考坐標系到剛體坐標系的一系列旋轉。常見的定義方式是將總體旋轉分解為三個連續的簡單旋轉,每次旋轉都繞著當前坐標系的某一固定軸進行。

例如,一種常用的歐拉角序列是 Z–Y–X(或稱為航向、俯仰、滾轉順序),其含義如下:

  • Yaw 第一個旋轉(航向/偏航):繞固定坐標系的 Z 軸旋轉角度 ψ \psi ψ
  • Pitch 第二個旋轉(俯仰):繞新坐標系的 Y 軸旋轉角度 θ \theta θ
  • Roll 第三個旋轉(滾轉):繞再次更新后的 X 軸旋轉角度 ? \phi ?

這種分解使得三維旋轉問題轉化為三個獨立旋轉角度的疊加。

1.2. 歐拉角的公式

以 Z–Y–X 順序為例,剛體總旋轉矩陣 R R R 可以寫成三個旋轉矩陣的乘積:

R = R x ( ? ) ?? R y ( θ ) ?? R z ( ψ ) R = R_x(\phi) \; R_y(\theta) \; R_z(\psi) R=Rx?(?)Ry?(θ)Rz?(ψ)

其中:

  • 繞 X 軸旋轉的矩陣:

    R x ( ? ) = [ 1 0 0 0 cos ? ? ? sin ? ? 0 sin ? ? cos ? ? ] R_x(\phi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\phi & -\sin\phi \\ 0 & \sin\phi & \cos\phi \end{bmatrix} Rx?(?)=???100?0cos?sin??0?sin?cos?????

  • 繞 Y 軸旋轉的矩陣:

    R y ( θ ) = [ cos ? θ 0 sin ? θ 0 1 0 ? sin ? θ 0 cos ? θ ] R_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} Ry?(θ)=???cosθ0?sinθ?010?sinθ0cosθ????

  • 繞 Z 軸旋轉的矩陣:

    R z ( ψ ) = [ cos ? ψ ? sin ? ψ 0 sin ? ψ cos ? ψ 0 0 0 1 ] R_z(\psi) = \begin{bmatrix} \cos\psi & -\sin\psi & 0 \\ \sin\psi & \cos\psi & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz?(ψ)=???cosψsinψ0??sinψcosψ0?001????

將上述三個矩陣依次相乘,就可以得到描述剛體最終定向的旋轉矩陣 R R R

1.3. 歐拉角的常見問題

在使用歐拉角描述旋轉時,需要注意以下問題:

  1. 萬向鎖(Gimbal Lock)
    以常見的ZYX歐拉角為例,即首先繞全局z軸旋轉,然后繞新的y軸旋轉,最后繞新的x軸旋轉。當第二次旋轉(即繞y軸的旋轉)旋轉角(例如上例中的 θ \theta θ)達到 ± 9 0 ° \pm90^\circ ±90° 時。
    第一次和第三次旋轉將會圍繞同一個軸。這意味著,在這些特殊的角度下,系統失去了一個自由度,因為兩次旋轉現在作用于相同的軸,不能獨立地控制物體的方向。

  2. 多值性與奇異性
    歐拉角存在多值性,即不同的角度組合可能表示相同的旋轉。此外,某些角度組合可能使反求公式退化,導致奇異性問題,增加了數值計算的復雜性。

2. 旋轉矩陣

2.1. 旋轉矩陣的定義

旋轉矩陣是一種用于描述剛體或坐標系在歐幾里得空間中旋轉變換的矩陣。其主要特點包括:

  • 正交性:旋轉矩陣 R R R 滿足 R T R = I R^T R = I RTR=I,其中 R T R^T RT R R R 的轉置, I I I 為單位矩陣。這一性質保證了向量的長度和旋轉前后向量間的夾角不變。
  • 行列式為1:即 det ? ( R ) = 1 \det(R) = 1 det(R)=1,這一性質表明旋轉矩陣不含有鏡像或反射分量。
  • 參數冗余性:在三維空間中,盡管旋轉矩陣有 9 個元素,但由于正交性和行列式約束,其實際自由度僅為 3 個。

2.2. 常見旋轉矩陣的公式

1. 二維旋轉矩陣

在二維平面上,繞原點逆時針旋轉角度 θ \theta θ 的旋轉矩陣為:
R ( θ ) = [ cos ? θ ? sin ? θ sin ? θ cos ? θ ] R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} R(θ)=[cosθsinθ??sinθcosθ?]

2. 三維旋轉矩陣

在三維空間中,常用的旋轉矩陣包括繞各個坐標軸旋轉的矩陣:

  • 繞 X 軸旋轉角度 ? \phi ? 的矩陣

    R x ( ? ) = [ 1 0 0 0 cos ? ? ? sin ? ? 0 sin ? ? cos ? ? ] R_x(\phi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\phi & -\sin\phi \\ 0 & \sin\phi & \cos\phi \end{bmatrix} Rx?(?)=???100?0cos?sin??0?sin?cos?????

  • 繞 Y 軸旋轉角度 θ \theta θ 的矩陣

    R y ( θ ) = [ cos ? θ 0 sin ? θ 0 1 0 ? sin ? θ 0 cos ? θ ] R_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} Ry?(θ)=???cosθ0?sinθ?010?sinθ0cosθ????

  • 繞 Z 軸旋轉角度 ψ \psi ψ 的矩陣

    R z ( ψ ) = [ cos ? ψ ? sin ? ψ 0 sin ? ψ cos ? ψ 0 0 0 1 ] R_z(\psi) = \begin{bmatrix} \cos\psi & -\sin\psi & 0 \\ \sin\psi & \cos\psi & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz?(ψ)=???cosψsinψ0??sinψcosψ0?001????

2.3. 旋轉矩陣的示例

1. 二維示例

設有一個二維向量 v = [ 1 0 ] \mathbf{v} = \begin{bmatrix} 1 \\ 0 \end{bmatrix} v=[10?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72068.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72068.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72068.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

xxl-job部署在docker-destop,實現定時發送預警信息給指定郵箱

XXL-JOB XXL-JOB是一個分布式任務調度平臺(XXL是作者徐雪里姓名拼音的首字母),其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。 源碼倉庫地址:https://github.com/xuxueli/xxl-job 源碼結構: 系統架構 在xxl-j…

大數據學習(63)- Zookeeper詳解

&&大數據學習&& 🔥系列專欄: 👑哲學語錄: 用力所能及,改變世界。 💖如果覺得博主的文章還不錯的話,請點贊👍收藏??留言📝支持一下博主哦🤞 &#x1f…

【數據結構】3順序表

0 章節 2.1到2.3小節。 理解與表達線性表的邏輯結構; 線性表的結構、結構與操作; 順序表的表示與實現;順序表應用; 重點 線性表概念、順序表定義運算與實現&a…

CUDA編程之OpenCV與CUDA結合使用

OpenCV與CUDA的結合使用可顯著提升圖像處理性能。 一、版本匹配與環境配置 CUDA與OpenCV版本兼容性? OpenCV各版本對CUDA的支持存在差異,例如OpenCV 4.5.4需搭配CUDA 10.0?2,而較新的OpenCV 4.8.0需使用更高版本CUDA?。 需注意部分模塊(…

WPF從初學者到專家:實戰項目經驗分享與總結

WPF從初學者到專家:實戰項目經驗分享與總結 一、前言二、WPF 基礎概念與入門2.1 什么是 WPF2.2 XAML 基礎2.3 數據綁定基礎 三、第一個 WPF 項目:簡單的待辦事項列表3.1 項目需求分析3.2 項目搭建與界面設計3.3 業務邏輯實現 四、中級項目:音…

一學就會的深度學習基礎指令及操作步驟(3)模型訓練驗證

文章目錄 模型訓練驗證損失函數和優化器模型優化訓練函數驗證函數模型保存 模型訓練驗證 損失函數和優化器 loss_function nn.CrossEntropyLoss() # 損失函數 optimizer Adam(model.parameters()) # 優化器,優化參數模型優化 獲得模型所有的可訓練參數&#x…

Spring Boot 注解大全:全面解析與實戰應用

目錄 一、Spring Boot 啟動與配置相關注解 1.1 SpringBootApplication 1.2 EnableAutoConfiguration 1.3 Configuration 1.4 ComponentScan 二、依賴注入與組件管理注解 2.1 Component 2.2 Service 2.3 Repository 2.4 Controller 2.5 RestController 2.6 Autowired…

【語料數據爬蟲】Python爬蟲|批量采集征集意見稿數據(1)

前言 本文是該專欄的第5篇,后面會持續分享Python爬蟲采集各種語料數據的的干貨知識,值得關注。 在本文中,筆者將主要來介紹基于Python,來實現批量采集“征集意見稿”數據。同時,本文也是采集“征集意見稿”數據系列的第1篇。 采集相關數據的具體細節部分以及詳細思路邏輯…

企業招聘能力提升之道:突破困境,精準納才

企業招聘能力提升之道:突破困境,精準納才 在企業運營的廣袤版圖中,招聘工作無疑是一塊至關重要的拼圖。然而,不少企業在這片領域中舉步維艱,盡管投入了海量的時間與精力,收獲的成果卻不盡人意。面試環節仿…

AI對前端開發的沖擊

Cursor cursor新版本0.46版本號中有部分是改成了新布局其實 Agent 和 Edit 和 Composer 是一樣的,為了方便大家使用,我們把它們合并了,Edit 相當于普通模式下的 Composer,Agent 就是代理模式。 快捷鍵ctrli、ctrll、ctrlk 4o適合…

java中如何把json轉化的字符串再轉化成json格式

使用org.json庫 首先&#xff0c;確保你的項目中已經包含了org.json庫。如果你使用Maven&#xff0c;可以在pom.xml中添加以下依賴&#xff1a; <dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20210307…

泛型、泛型上限、泛型下限、泛型通配符

DAY8.1 Java核心基礎 泛型 Generics 是指在類定義時不指定類中信息的具體數據類型&#xff0c;而是用一個標識符來代替&#xff0c;當外部實例化對象時再指定具體的數據類型。 在定義類或者接口時不明確指定類中信息的具體數據類型&#xff0c;在實例化時再來指定具體的數據類…

Win10 下搭建免費的 FTP 服務器 FileZilla

一、概述 FileZilla 服務器是一個免費的開源FTP和FTPS服務器&#xff0c;是根據GNU通用公共許可證條款免費發布的開源軟件。FileZilla支持FTP、FTPS、SFTP等文件傳輸協議&#xff0c;相比其他FTP服務器&#xff0c;最大的優勢是FileZilla自由(免費)。 FileZilla的官網地址是&a…

C/C++中對字符處理的常用函數

C語言中的 ctype.h 頭文件提供了一系列字符分類和轉換函數&#xff0c;用于高效處理字符相關操作。這些函數通過接受 int 類型參數&#xff08;需為 unsigned char 或 EOF &#xff08;-1&#xff09;值&#xff09;&#xff0c;返回非零值表示條件正確&#xff0c;返回0表示錯…

雙指針算法介紹+算法練習(2025)

一、介紹雙指針算法 雙指針&#xff08;或稱為雙索引&#xff09;算法是一種高效的算法技巧&#xff0c;常用于處理數組或鏈表等線性數據結構。它通過使用兩個指針來遍歷數據&#xff0c;從而減少時間復雜度&#xff0c;避免使用嵌套循環。雙指針算法在解決諸如查找、排序、去重…

【每日八股】計算機網絡篇(四):HTTP

目錄 HTTP 與 HTTPS 的區別&#xff1f;HTTPS 加密與認證的過程&#xff1f;ClientHelloServerHello客戶端回應服務端回應 HTTPS 一定安全可靠嗎&#xff1f;HTTPS 狀態碼的含義&#xff1f;HTTP 緩存有哪些實現方式&#xff1f;HTTP 1.0、HTTP 1.1、HTTP 2.0 和 HTTP 3.0 的區…

TMS320F28P550SJ9學習筆記10:軟件模擬I2C通信_驅動1.3寸OLED

現在有了具體的I2C通信器件&#xff0c;一塊1.3寸OLED屏幕&#xff0c;今日嘗試移植配置一下: 本文主要講的是&#xff0c;使用軟件模擬I2C通信 文章提供測試代碼講解、完整工程下載、測試效果圖 目錄 前置文章&#xff1a; I2C通信引腳&#xff1a; 軟件I2C 引腳的初始化&am…

spring boot 發送郵件驗證碼

一、前置需求 1、準備郵箱 2、登錄授權碼 qq郵箱在–>設置–>賬號POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 開啟服務 二、發送郵件 1、簡單郵件 包含郵件標題、郵件正文 2、引入mail啟動器 <dependency><groupId>org.springframework.boot</groupI…

塔能科技:智能機箱,為城市安防 “智” 造堅實堡壘

在當今智慧城市建設的浪潮中&#xff0c;城市安防面臨著諸多挑戰。設備管理難&#xff0c;眾多分散的安防設備猶如一盤散沙&#xff0c;難以實現高效統一的管控&#xff1b;數據傳輸不穩定&#xff0c;關鍵時刻信息的延遲或丟失&#xff0c;可能導致嚴重后果。這些問題嚴重制約…

電商數據分析 電商平臺銷售數據分析 電商平臺數據庫設計 揭秘電商怎么做數據分析

《電商參謀數據分析平臺方案》&#xff08;28頁PPT&#xff09;是一套為電商行業量身定制的一體化解決方案&#xff0c;它通過全鏈路打通從數據獲取到分析的全過程&#xff0c;幫助電商企業實現精細化運營和市場機會的挖掘。該方案針對電商行業在數據獲取、加工整合及業務賦能方…