본문 바로가기
공부/UAV

Euler angle 범위 변경([0,2𝜋] → [-𝜋, 𝜋])

by frog 2023. 3. 22.
The Euler angles are three angles introduced by Leonhard Euler to describe the orientationof a rigid body with respect to a fixed coordinate system.

오일러 각(Euler角, Euler angle)은 강체가 놓인 방향을 3차원 공간에 표시하기 위해 레온하르트 오일러가 도입한 세 개의 각도이다.
즉, 3차원 회전군 SO(3)의 한 좌표계다. 3차원 공간에 놓인 강체의 방향은 오일러 각도를 사용하여 세 번의 회전을 통해 얻을 수 있다.

📚 "위키백과, Euler angle, 오일러 각"

 

슬기로운 개굴생활 중에 UAV(Unmanned aerial vehicle)에 대해 공부할 일이 있었다.UAV의 자세를 표현할때 Euler angle을 사용하는데 개구리에게는 생소한 개념이어서 여러 블로그 및 자료의 도움을 받아 공부했다.

https://upload.wikimedia.org/wikipedia/commons/c/c1/Yaw_Axis_Corrected.svg

Euler angle은 Pitch(𝜙), Roll(𝜃), Yaw(𝜓) 3가지의 각도를 통해 자세를 정의하고, 회전익 UAV, 고정익 UAV 모두 동일한 표현을 사용한다. Euler angle은 보통  [-𝜋, 𝜋] 범위에서 각도를 표현하는데, UAV 제어를 하다보면 [-𝜋, 𝜋] 범위를 벗어나서  modular 연산을 통해 범위를 조정해야 하는 경우가 잦았다. 

https://upload.wikimedia.org/wikipedia/commons/3/30/Plane_with_ENU_embedded_axes.svg

개구리는 반복되는 작업을 쉽게 해결하기 위해 함수를 작성해뒀다. 

Python Code

from math import pi

def change_angle(angle):
    new_angle = angle % (2*pi)
    if new_angle > pi:
        new_angle = new_angle - (2*pi)
    return new_angle

 

MATLAB Code

function new_angle = change_angle(angle)
	new_angle = mod(angle, 2*pi)
    if new_angle > pi
    	new_angle = new_angle - 2*pi
    end
end

 

개굴 🐸

댓글