Yaw / Pitch / Roll
- 又稱: Euler Angles, RPY, Roll Pitch Yaw, Orientation Angles
- 類別: Foundations & spatial maths › Frames & transforms
- 標籤: orientation, rotation, fundamentals, imu, drones
三個旋轉角(偏航、俯仰、滾轉),描述繞垂直、橫向與前後向軸的姿態。
定義
偏航、俯仰與滾轉是描述物體在 3D 空間中姿態的三個旋轉角,採用機器人學廣泛沿用的飛機/載具慣例。
三個角度: - 滾轉(繞前後向/X 軸旋轉):向左或向右傾斜。想像飛機壓坡度轉彎,或移動機器人在斜坡上側傾。 - 俯仰(繞橫向/Y 軸旋轉):向前或向後傾斜。例如飛機爬升或俯衝,或機器手臂的手腕上下點動。 - 偏航(繞垂直/Z 軸旋轉):向左或向右轉動。例如飛機轉動機頭、移動機器人原地旋轉,或無人機改變航向。
這些角度在 ZYX 慣例(先偏航、再俯仰、最後滾轉)中也稱為歐拉角。歐拉角雖然直觀,卻有一個眾所周知的限制,稱為萬向鎖:當俯仰角達到 90 度時,偏航與滾轉變得無法區分,造成數學上的奇異點,並失去一個自由度。
由於萬向鎖的緣故,許多機器人系統在內部以四元數(一種以四個數字表示的方式)進行姿態計算,只在需要供人閱讀的顯示時才轉換成偏航/俯仰/滾轉。四元數精簡、能避開萬向鎖,而且內插平滑。
在機器人學中,偏航/俯仰/滾轉用來描述: - IMU 姿態:IMU 透過加速度計與陀螺儀的融合,直接輸出滾轉、俯仰與偏航。 - 無人機控制:飛手與自動駕駛儀下達期望的滾轉、俯仰與偏航速率。 - 攝影機雲台姿態:水平旋轉(偏航)、垂直傾斜(俯仰)與滾轉穩定。 - 末端執行器姿態:夾爪相對於工作表面的接近角度。 - 移動機器人航向:偏航通常代表機器人的羅盤航向。
為何重要
偏航、俯仰與滾轉是描述物體朝向的三個旋轉,也是幾乎所有機器人相關討論中談論姿態時所用的語彙。它們很直觀(轉向、傾斜、翻倒),這正是它們儘管不適合當作內部表示法卻仍沿用至今的原因。同時了解它們為何方便、以及軟體為何要把它們轉換成四元數,對於讀懂機器人訊息、避開一整類姿態錯誤至關重要。
主要應用
- 以人看得懂的方式回報與指揮無人機和載具的姿態
- 操作介面與遠端操作,三個直觀的滑桿勝過四個抽象的數字
- 攝影機與感測器的安裝規格
- 記錄與除錯,歐拉角遠比四元數容易閱讀
- IMU 輸出,融合後通常以滾轉、俯仰與偏航呈現
- 航點定義,指定機器人應保持的航向
實際應用
無人機的飛行控制器以偏航、俯仰與滾轉回報姿態,因為那是飛手能理解的方式,但在內部維護的是四元數。這樣劃分的原因是萬向鎖:當俯仰角達到九十度時,偏航與滾轉描述的是同一個旋轉,一個自由度就在不知不覺中消失了。任何看過模擬手臂在手腕通過垂直姿態時意外翻轉的人,都見識過這個現象。另一個日常陷阱是慣例:三個旋轉的套用順序因函式庫而異,因此同樣的三個數字可能代表兩種不同的姿態。
常見誤解
- 順序無關緊要:旋轉不滿足交換律,以不同順序套用會得到不同的姿態
- 每個函式庫都使用相同的慣例:軸的順序以及旋轉是內旋還是外旋各不相同,混用會在不知不覺中破壞姿態
- 萬向鎖是繪圖上的假象:它是表示法中真實失去的一個自由度,這也是內部改用四元數的原因
- 歐拉角能平滑內插:對歐拉角內插可能讓機器人擺過非預期的中間姿態
誰需要了解
- 任何在機器人訊息中讀取或寫入姿態值的人
- 處理姿態估計的無人機與載具開發者
- 除錯機器人在特定姿態下意外翻轉或旋轉的工程師
- 學習為什麼內部以四元數取代歐拉角的學生
- 任何在整合兩個各自以不同方式回報姿態之系統的人
相關技術
- 四元數表示法
- 旋轉矩陣
- 歐拉角(一般)
- 萬向鎖
- IMU 與 AHRS(姿態與航向參考系統)
- 座標轉換與 SE(3)
- SLERP(球面線性內插)
- 軸角表示法
相關術語
相關專案
- ArduPilot: World's most trusted open-source autopilot for drones, planes, rovers, and submarines
- PX4 Autopilot: Open-source flight control software for drones and other unmanned vehicles
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
- OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
- QGroundControl: Cross-platform ground control station for mission planning and drone flight monitoring
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
影片
- Pitch, Roll & Yaw: Explained: Pilot Ems