Home > 전자 나침반 > Application Notes > 자세 계산

자세 계산(Attitude Calculation)

 

자기 센서와 가속도 센서를 사용하면 경사 보정만 아니라 단말기의 자세를 계산할 수 있습니다.

 

단말의 자세는 기준이 되는 절대 좌표계에 대해 단말의 좌표계가 얼마나 회전하고 있는지 상대량으로 나타납니다.


상대량의 자세는 값으로 나타내는데 아래의 3가지 방법이 있습니다.

(1)행렬(3개의 벡터)로 표현

   센서의 좌표계의 x축, y축, z축을 절대 좌표계에서의 값으로 3개의 벡터 vx, vy, vz로 표현할 수 있습니다.

   3개의 벡터를 조합함으로써 3×3행렬로 자세를 표현합니다.

   절대 좌표로부터의 회전을 나타내는 회전 행렬이 되고 있습니다.

(2)오일러 각(roll각, pitch각, yaw각)

   절대 좌표의 x축, y축, z축에 대해 각각 얼마 만큼의 각도가 회전했는지 3가지 각도에서 자세를 표현합니다.

(3)사원 수(Quaternions)또는 회전 벡터(rotation vectors)

   절대 좌표의 회전을 회전 벡터 또는 사원 수라는 특수한 복소수로 표현할 수 있습니다.


이들 3개는 각각 서로 변환 가능합니다.


자세의 행렬을 계산하는 방법을 이하에 나타냅니다.

우선, 센서의 좌표계에서 계측한 값으로부터 반대로 절대 좌표에 대한 변화량을 구합니다.

처음에, 가속도의 측정치에서 z축의 벡터를 구할 수 있습니다.

다음, 가속도와 지자기부터 2개의 벡터에 직교한 벡터를 구합니다.

이것으로부터 x축을 구할 수 있습니다.

마지막으로, 앞에 계산된 z축과 x축의 2개의 벡터로부터 직교하는 벡터를 구합니다. 이로써 y축을 구할 수 있습니다.

3개의 벡터를 vx, vy, vz로 하면 이 3벡터로부터 다음의 행렬을 구성할 수 있습니다.

이 행렬은 센서 좌표에서 절대 좌표에 대한  회전 변화량 행렬이 되고 있습니다.

절대 좌표에서 센서 좌표에 대한 변화량으로 나타내기 위해서는 역행열을 계산합니다.

이상으로 자세를 나타내는 행렬, M'를 얻을 수 있습니다.

 

※행렬에서 사원 수 또는 오일러각로의 변환은 참고 문헌을 참조하십시오.