AHRS Sensor Calibration
#
Accelerometer calibration감도 오차는 없다고 가정하고 오프셋만 계산합니다.
- 센서의 한 축을 지표에 수직인 방향과 나란하게 맞춥니다.
- 움직임이나 진동이 측정되지 않도록 센서를 고정합니다.
- 가속도 값을 여러번 측정하여 평균을 구합니다.
- 지표에 수직인 방향과 나란한 축은 센서의 1 g에 해당하는 값과 비교하여 오프셋을 구합니다.
- 다른 축은 측정된 평균 값이 오프셋 입니다.
#
Example#
Gyroscope calibration감도 오차는 없다고 가정하고 오프셋만 계산합니다.
- 움직임이나 진동이 측정되지 않도록 센서를 고정합니다.
- 각속도 값을 여러번 측정하여 평균을 구합니다.
- 측정된 평균 값이 오프셋 입니다.
#
Example#
Magnetometer calibration오프셋만 있다고 가정하는 경우, 감도 오차와 오프셋이 있다고 가정하는 경우만 생각해서 계산합니다. 두 경우 모두 최소자승법(least squares method)을 사용하게 됩니다.
자기장의 경우 위치와 시간에 따라 변하지만 측정하는 동안에는 변하지 않는다고 가정합니다.
센서를 여러방향으로 회전시키며 데이터를 측정할 때 생기는 그래프를 구체라고 가정하면 오프셋만 있는 경우이고, 회전하지 않은 타원체라고 가정하면 감도 오차와 오프셋이 있는 경우입니다.
구체라고 가정한 경우 식은 아래와 같습니다.
회전하지 않은 타원체라고 가정한 경우 식은 아래와 같습니다.
#
Least squares method수식 전개는 회전하지 않은 타원체 기준으로 하겠습니다.
n회 측정된 데이터를 행렬식으로 나타내면 식 (1)과 같습니다.
를 구해야 하는데, 의 역행렬을 구할 수 없기 때문에 최소자승법을 사용하게 됩니다. 최소자승법은 오차 제곱의 합을 최소화 하는 것이므로 수식은 아래와 같이 유도할 수 있습니다.
식 (3)을 사용하여 계수를 구할 수 있습니다.
#
Cholesky decomposition식 (3)을 계산하기 위해 역행렬을 구해야합니다. 역행렬 계산을 피하기 위해 Cholesky decomposition을 사용하게 됩니다. 분해 알고리즘은 Cholesky–Banachiewicz algorithm을 사용했습니다.
tip
Cholesky decomposition 외에 QR decomposition, SVD decomposition, Gaussian elimination 등 다양한 방법을 사용할 수 있습니다.
식 (4)에 forward substitution을 적용하여 를 구하고, 식 (5)에 backward substitution을 적용하면 를 구할 수 있습니다.
교정 전 후 측정된 데이터 그래프입니다. 파란색 데이터가 교정 전, 빨간색 데이터가 교정 후 입니다.

#
Examples- Ellipsoid
- Sphere