본문 바로가기
임베디드

가속도계(Accelerometer)와 방향 계산

by I!i어★떤☆날★에Ι!i 2023. 9. 8.
반응형

가속도센서를 이용하여 방향을 계산하는 방법에 대해서 알아보자.

 

6축 센서를 사용하는 것은 여러 가지 복잡한 계산을 필요로 한다. accelerometer와 gyroscope를 통해서 얻은 값을 가공하여 다양한 값을 얻어 낼 수 있다면, 좀 더 특별한 성능의 제품을 개발하는데 도움이 될 것이다.

 

우리는 가속도계를 이용하여 물체의 방향을 구하려고 한다.

 

z축의 가속도는 중력 가속도이다.
x축과 y축의 가속도는 물체의 기울어짐 방향을 나타낸다.
x축과 y축의 가속도를 이용하여 물체의 방향을 구할 수 있다.

 

* 가속도 크기 계산

 

가속도계를 사용하여 방향벡터 값을 계산하려면 먼저 가속도계의 세 축(x, y, z)을 따라 가속도 값을 측정해야 한다. 이러한 값은 중력 가속도( 9.8m/s² ) 단위로 읽을 수 있으며, 그 단위는 g가 된다.  즉 9.8m/s²  = 1g 가 된다.

 

가속도값
가속도 센서 값



각 방향에 맞는 가속도 값(x, y, z)이 있다면 다음 방정식을 사용하여 총 가속도 크기 또는 방향벡터의 길이를 계산할 수 있다.

 

가속도 크기 |A| = sqrt(x² + y² + z²)



여기서 |A|는 가속의 총크기를 나타낸다.

 

 

반응형

 

* pitch(피치), roll(롤), raw(요)의 각도 계산


다음으로 가속도 벡터의 방향을 결정하기 위해 세 축의 가속도 값을 기반으로 삼각 함수를 사용하여 pitch(피치), roll(롤), raw(요)의 각도를 계산할 수 있다. 이러한 각도는 지구의 중력장에 대한 가속도계의 방향을 나타낸다.

pitch, roll, yaw는 x축, y축, z축 각각에 대한 회전각을 나타낸다.

 

예를 들어 pitch 각도(x축을 기준으로 한 회전)는 다음 방정식을 사용하여 계산할 수 있다.

 

ptich = atan2(-y, sqrt(x² + z²))



마찬가지로 roll 각도(y축을 중심으로 한 회전)는 다음 방정식을 사용하여 계산할 수 있다.

 

roll = atan2(x, sqrt(y² + z²))



마지막으로 yaw 각도(z축을 기준으로 한 회전)는 다음 방정식을 사용하여 계산할 수 있다.

 

yaw = atan2(z, sqrt(x² + y²))

 

 

* 3D 방향 벡터 구성


피치, 롤 및 요 각도를 계산한 후에는 다음 방정식을 사용하여 데카르트 좌표에서 3D 방향벡터를 구성하는 데 사용할 수 있다.

x = cos(yaw) * cos(pitch)
y = sin(yaw) * cos(pitch)
z = sin(pitch)

 


결과 벡터(x, y, z)는 3D 공간에서 가속도 벡터의 방향을 나타낸다. 이 벡터는 방향을 나타내지만 가속도의 크기는 나타내지 않기 때문에 길이 1로 정규화된다.

반응형

'임베디드' 카테고리의 다른 글

JTAG과 SWD의 차이와 장단점  (0) 2023.10.18
Linux CAN Network - CAN드라이버와 SocketCAN  (0) 2022.11.05
디바이스트리 pinctrl -bindings.txt  (0) 2022.11.04
regmap_update_bits 함수  (0) 2022.10.28

댓글