DEV Community

Richard Minsoo Go
Richard Minsoo Go

Posted on

Calibration Engineering — Ch.05: IMU Calibration [KR]

STATERA Library · Series 07 · Volume 10 · Chapter 05 · KR
Source: https://github.com/Statera-Library/07_Vol_10_Calibration_Engineering/blob/main/Chapter_05_IMU_Calibration/Chapter_05_IMU_Calibration_KR.md

Volume 10 Calibration Engineering

Chapter 05. IMU Calibration

05.01. 6 Axis Bias Calibration

6축 관성측정장치(6-axis Inertial Measurement Unit)는 3축 가속도계(three-axis accelerometer)와 3축 자이로스코프(three-axis gyroscope)를 결합하여 서로 직교하는 X, Y, Z축을 따라 선형 가속도(linear acceleration)와 각속도(angular velocity)를 측정한다. 센서가 완전히 정지해 있더라도 전자적 오프셋(electronic offset), 기계적 응력(mechanical stress), 제조 공차(manufacturing tolerance), 내부 신호 조절 오차(internal signal-conditioning error) 때문에 출력은 이론적인 값과 정확히 일치하지 않는다. 6축 바이어스 교정(6-axis bias calibration)은 이러한 지속적인 오프셋을 추정하여 이후의 관성 측정값이 로봇이나 차량의 실제 물리적 움직임을 보다 정확하게 나타내도록 한다.

가속도계 바이어스(accelerometer bias)는 각 가속도 채널에 존재하는 가산 오차(additive error)를 의미한다. 정지 상태의 관성측정장치(IMU)에서 측정되는 가속도에는 센서 축에 투영된 중력가속도(gravitational acceleration)만 존재해야 한다. 특정 축이 중력 방향의 위쪽 또는 아래쪽으로 정렬되면 이상적인 크기는 약 1 g이고, 이에 수직인 두 축은 이상적으로 0을 측정해야 한다. 이러한 예상값과 실제 측정값의 차이를 이용하여 가속도계 채널에 영향을 주는 일정한 오프셋(constant offset)을 파악할 수 있다.

자이로스코프 바이어스(gyroscope bias)는 관성측정장치(IMU)가 완전히 정지한 상태에서도 0이 아닌 각속도 출력으로 나타나는 경우가 많다. 이상적으로는 정적 상태에서 세 자이로스코프 채널 모두 0의 각속도를 출력해야 하지만, 실제 센서는 전자적 불균형(electronic imbalance), 온도(temperature), 기계적 응력(mechanical stress), 내부 잡음(internal noise) 등에 의해 작은 오프셋을 나타낸다. 자이로스코프 측정값은 자세(orientation)를 추정하기 위해 적분되므로 작은 일정 바이어스도 장시간 동작하면 상당한 자세 드리프트(attitude drift)로 누적될 수 있다.

기본적인 바이어스 모델(bias model)은 측정된 관성 신호를 실제 물리량(true physical quantity), 바이어스 항(bias term), 측정 잡음(measurement noise)의 합으로 표현한다. 가속도는 개념적으로 a_m = a_true + b_a + n_a로 나타낼 수 있으며, 각속도는 ω_m = ω_true + b_g + n_g로 표현할 수 있다. 교정의 목적은 3개 요소로 구성된 가속도계 바이어스 벡터(accelerometer bias vector) b_a와 자이로스코프 바이어스 벡터(gyroscope bias vector) b_g를 추정하고 이후의 측정값에서 이를 차감하는 것이다.

바이어스 데이터 취득(bias data acquisition) 중에는 진동이나 의도하지 않은 회전이 센서 오프셋으로 해석될 수 있으므로 관성측정장치(IMU)를 기계적으로 정지된 상태로 유지해야 한다. 장착 지그(mounting fixture)는 견고해야 하고 지지 표면은 안정적이어야 하며, 센서를 재배치한 후에는 충분한 안정화 시간(settling time)을 확보해야 한다. 교정 장치 주변의 모터, 냉각 팬, 매니퓰레이터(manipulator) 또는 기타 진동원은 가능한 범위에서 제어하여 저주파 움직임이 평균값 추정을 왜곡하지 않도록 해야 한다.

자이로스코프 바이어스는 충분히 긴 시간 동안 정지 상태의 샘플을 수집한 후 각 축 출력의 평균값을 계산하여 추정할 수 있다. 무작위 영평균 잡음(random zero-mean noise)은 평균화 과정에서 감소하는 반면 체계적인 오프셋(systematic offset)은 남게 된다. 이렇게 얻은 세 축의 평균값이 초기 자이로스코프 바이어스 추정값(initial gyroscope bias estimate)이 된다. 관측 시간은 안정적인 추정값을 얻기에 충분해야 하지만, 측정 기간 동안 큰 온도 변화나 환경적 교란이 지배적으로 작용할 정도로 길어서는 안 된다.

가속도계 교정(accelerometer calibration)은 중력(gravity)이 항상 존재하기 때문에 특별한 처리가 필요하다. 일반적인 정적 교정 절차(static calibration procedure)에서는 각 센서 축이 양의 중력(+g)과 음의 중력(-g) 방향에 번갈아 정렬되도록 관성측정장치(IMU)를 여러 개의 알려진 자세로 배치한다. 서로 반대되는 자세에서 얻은 측정값은 일정 바이어스와 중력 성분을 분리하는 데 사용된다. 개별 축에서는 +g와 -g 조건에서 측정된 출력값을 평균하여 중력 성분의 영향을 줄이면서 가산 오프셋(additive offset)을 추정할 수 있다.

따라서 실용적인 6자세 절차(six-position procedure)에서는 센서를 +X, -X, +Y, -Y, +Z, -Z 중력 방향에 각각 배치한다. 각 자세에서 관성측정장치(IMU)가 안정화될 때까지 기다린 다음 일정 구간의 샘플을 기록하고 평균값을 계산한다. 여섯 개의 데이터셋(dataset)은 모든 가속도계 축에 대해 대칭적인 중력 부하 관측값을 제공하며, 동시에 자이로스코프 영각속도 바이어스(zero-rate bias)를 특성화할 수 있는 정지 상태 측정값도 제공한다.

교정 품질(calibration quality)은 데이터 취득 규율(data acquisition discipline)에 크게 좌우된다. 샘플링 주파수(sampling frequency), 취득 시간(acquisition duration), 센서 동작 모드(sensor operating mode), 디지털 필터링(digital filtering), 전체 측정 범위(full-scale range)는 절차 전체에서 일관되게 유지되어야 한다. 기본적인 센서 오차를 추정할 때는 문서화되지 않은 필터링이나 자동 보정이 실제 바이어스를 가릴 수 있으므로 원시 데이터(raw data) 또는 최소한으로 처리된 측정값을 사용하는 것이 일반적으로 바람직하다. 따라서 교정 메타데이터(calibration metadata)에는 각 데이터셋 생성에 사용된 설정을 기록해야 한다.

바이어스(bias)는 무작위 잡음(random noise)과 혼동해서는 안 된다. 샘플 수를 증가시키면 추정 평균값의 불확도(uncertainty)는 감소하지만 실제 체계적 오프셋(systematic offset)이 제거되는 것은 아니다. 정지 상태 데이터의 통계적 분석(statistical examination)을 통해 안정적인 평균값의 편차와 단기적인 변동을 구분할 수 있다. 샘플 평균(sample mean)은 주요 바이어스 추정값을 나타내며, 표준편차(standard deviation)와 관련 안정성 지표(stability metric)는 해당 추정값의 불확도와 반복성(repeatability)을 나타낸다.

충격(shock), 장착 지그 움직임(fixture movement), 통신 오류(communication error), 순간적인 외란(transient disturbance)으로 발생한 이상치(outlier)는 최종 파라미터 추정 전에 식별해야 한다. 그러나 지나치게 공격적인 샘플 제거는 비현실적으로 깨끗한 교정 데이터셋을 만들 수 있다. 견고한 절차에서는 시간 이력(time history)과 통계적 분포(statistical distribution)를 검토하고 명확한 외란 판정 기준이 충족되는 경우에만 샘플을 제거하며, 정상적인 동작 조건에서 관성측정장치(IMU)의 실제 특성을 표현할 수 있는 충분한 데이터를 유지한다.

온도(temperature)는 관성 센서의 바이어스가 전체 동작 범위에서 일정하게 유지되는 경우가 드물기 때문에 특히 중요하다. 전원을 켠 직후 수행한 교정 결과는 관성측정장치(IMU)가 열적 평형(thermal equilibrium)에 도달한 이후 수행한 결과와 다를 수 있다. 기본적인 6축 바이어스 교정에서는 일반적으로 데이터 수집 전에 센서를 정의된 온도에서 안정화해야 한다. 보다 광범위한 온도 의존 특성은 온도 보상(temperature compensation)에 해당하며, 관성측정장치 교정 구조에서 별도로 다룬다.

여섯 개의 바이어스 값이 추정되면 각 원시 채널(raw channel)에서 해당 바이어스를 차감하여 보정된 측정값(corrected measurement)을 얻는다. 보정된 가속도계 벡터는 a_corr = a_meas − b_a가 되고, 보정된 자이로스코프 벡터는 ω_corr = ω_meas − b_g가 된다. 이러한 보정은 측정값이 자세 추정(attitude estimation), 위치추정(localization), 내비게이션(navigation), 안정화(stabilization), 센서 융합(sensor fusion) 알고리즘에 사용되기 전에 적절한 센서 처리 계층(sensor-processing layer)에서 일관되게 적용되어야 한다.

바이어스 교정(bias calibration)은 스케일 팩터 및 교차 결합 교정(scale-factor and cross-coupling calibration)과도 구분해야 한다. 바이어스는 가산 형태의 영점 오프셋(additive zero offset)을 나타내는 반면, 스케일 팩터 오차(scale-factor error)는 측정 크기를 변화시키며 교차 결합(cross-coupling)은 하나의 물리적 축에서 발생한 움직임이 다른 측정 축에 영향을 주도록 한다. 따라서 교정 구조에서는 먼저 6축 바이어스를 처리한 다음 스케일 팩터와 교차 결합을 별도로 다루어 각 오차 원인을 불필요하게 혼합하지 않고 식별, 추정, 저장, 검증할 수 있도록 한다.

보정된 정지 상태 데이터(corrected stationary data)는 교정 품질을 확인하는 첫 번째 검증 수단을 제공한다. 회전이 없는 경우 자이로스코프 출력은 0에 가깝게 분포해야 하며, 가속도계 크기는 예상 중력가속도(expected gravitational acceleration)에 가까워야 한다. 여러 자세에서 측정을 반복하면 잔류 오프셋(residual offset)이나 일관되지 않은 보정을 확인할 수 있다. 목적은 모든 순간 샘플을 이상적인 값으로 강제하는 것이 아니라 실제 센서 잡음과 물리적 움직임을 보존하면서 체계적인 평균 오차를 제거하는 것이다.

이동 로봇(mobile robot)과 자율주행 차량(autonomous vehicle)에서 잔류 관성측정장치 바이어스(residual IMU bias)는 후속 상태 추정(state estimation)에 직접적인 영향을 준다. 가속도계 바이어스는 적분 후 잘못된 속도 및 위치 변화를 생성할 수 있으며, 자이로스코프 바이어스는 점진적인 자세 오차를 발생시켜 가속도, 오도메트리(odometry), 라이다(LiDAR), 카메라(camera), 위성항법시스템(GNSS) 정보를 잘못된 방향으로 변환할 수 있다. 따라서 신뢰성 있는 바이어스 교정은 관성측정장치 자체뿐 아니라 위치추정, 지도작성(mapping), 내비게이션, 운동 제어(motion control), 다중 센서 융합(multi-sensor fusion)의 일관성도 향상시킨다.

양산 시스템(production system)에서는 교정된 바이어스 파라미터(calibrated bias parameter)를 센서 식별정보(sensor identity), 교정 시간(calibration time), 펌웨어 또는 설정 정보(firmware or configuration information), 동작 온도(operating temperature), 관련 품질 지표(quality indicator)와 함께 저장해야 한다. 파라미터는 모든 센서에 공통으로 적용되는 값이 아니라 개별 관성측정장치(IMU)에 연결되어야 한다. 센서 교체, 기계적 장착 변경, 내부 펌웨어 업데이트 또는 비정상적인 드리프트(abnormal drift)가 감지되면 활성 파라미터 세트가 실제 장착 하드웨어에 대한 추적성(traceability)을 유지하도록 재교정(recalibration)을 수행할 필요가 있다.

6축 바이어스 교정(6-axis bias calibration)은 궁극적으로 전체 관성측정장치 교정 체계(IMU calibration chain)의 영점 기준 기반(zero-reference foundation)을 확립한다. 가속도계와 자이로스코프의 오프셋을 신뢰성 있게 추정한 이후에는 스케일 팩터(scale factor), 축간 결합(cross-axis coupling), 온도 의존성(temperature dependence), 관성측정장치 프레임(IMU frame)과 로봇 바디 프레임(robot body frame) 사이의 정렬(alignment)을 순차적으로 특성화할 수 있다. 이러한 교정 과정은 원시 관성 출력을 신뢰할 수 있는 상태 추정에 적합한 측정값으로 변환하고 최종 관성측정장치 교정 검증(IMU calibration validation)을 위한 체계적인 기반을 제공한다.

05.02. Scale Factor and Cross Coupling

Zhang 체커보드 방법(Zhang's checkerboard method)은 평면 교정 타깃(planar calibration target)을 여러 번 관측하여 카메라의 내부 파라미터(intrinsic parameters)를 추정하는 데 널리 사용되는 카메라 교정(camera calibration) 기법이다. 타깃은 일반적으로 정확하게 정의된 정사각형 형상을 갖는 체커보드(checkerboard)로 구성된다. 모든 기준점(reference point)이 하나의 평면 위에 존재하기 때문에 복잡한 3차원 교정 지그(three-dimensional calibration fixture)를 제작하지 않고도 교정을 수행할 수 있어 실험실, 양산, 로보틱스 분야에서 실용적으로 활용된다.

기본 원리는 동일한 평면 체커보드를 여러 방향과 위치에서 관측하는 것이다. 각 영상(image)은 알려진 체커보드 좌표(checkerboard coordinates)와 이에 대응하는 영상 좌표(image coordinates) 사이의 기하학적 관계를 형성한다. 물리적 기준점은 Z = 0인 평면상에서 표현할 수 있으므로 이러한 관계는 호모그래피(homography)라고 하는 평면 투영 변환(planar projective transformation)을 이용하여 나타낼 수 있다. 여러 호모그래피는 카메라 내부 파라미터를 복원하는 데 필요한 충분한 제약조건(constraints)을 제공한다.

카메라 투영 모델(camera projection model)은 카메라 좌표계(camera coordinate system)의 3차원 점을 내부 변환(intrinsic transformation)과 외부 변환(extrinsic transformation)을 통해 2차원 영상점(image point)과 연결한다. 내부 행렬(intrinsic matrix) K는 일반적으로 초점거리(focal length) fx와 fy, 주점 좌표(principal point coordinates) cx와 cy, 그리고 필요한 경우 영상 축 사이의 비직교성을 나타내는 스큐 파라미터(skew parameter)를 포함한다. 외부 파라미터(extrinsic parameters)는 각 촬영 영상에 대해 체커보드 좌표 프레임(checkerboard coordinate frame)과 카메라 좌표 프레임(camera coordinate frame) 사이의 회전(rotation)과 이동(translation)을 나타낸다.

평면 체커보드에서 타깃 좌표(target coordinates)와 영상 좌표 사이의 매핑(mapping)은 개념적으로 s[u v 1]ᵀ = H[X Y 1]ᵀ로 표현할 수 있으며, 여기서 H는 호모그래피 행렬(homography matrix), s는 임의의 스케일 계수(arbitrary scale factor)이다. 호모그래피에는 카메라 내부 행렬과 타깃 자세(target pose)에서 유도되는 정보가 포함된다. 여러 체커보드 영상에서 H를 각각 추정하면 각 영상마다 서로 다른 타깃 자세를 허용하면서 모든 영상에 공통으로 적용되는 내부 파라미터에 대한 제약조건을 구성할 수 있다.

따라서 체커보드 코너 검출(checkerboard corner detection)은 교정 절차에서 매우 중요한 단계이다. 서로 인접한 흑백 정사각형 사이의 내부 교차점(internal intersection)은 물리적 간격이 알려진 반복 가능한 기준 특징(reference feature)을 제공한다. 초기 코너 위치는 일반적으로 영상 밝기 패턴(image intensity pattern)으로부터 검출한 후 서브픽셀 정확도(subpixel accuracy)로 정밀화한다. 작은 코너 위치 오차도 호모그래피 추정에 전파되어 최종 초점거리, 주점, 왜곡(distortion), 자세 추정값에 영향을 줄 수 있으므로 정확한 위치 검출이 중요하다.

체커보드의 물리적 형상(physical checkerboard geometry)은 일관성 있게 정의되어야 한다. 교정 소프트웨어(calibration software)는 일반적으로 수평 및 수직 방향의 내부 코너 개수와 실제 정사각형 크기(physical square size)를 요구한다. 정사각형 개수와 내부 코너 개수를 혼동하는 것은 흔히 발생하는 설정 오류이다. 정사각형의 실제 치수는 이동량 추정(translation estimation)의 물리적 스케일을 결정하며, 카메라 내부 파라미터를 결정하는 평면 기하학적 관계는 정확하고 일관된 코너 좌표에 크게 의존한다.

영상 다양성(image diversity)은 파라미터 관측 가능성(parameter observability)과 교정 품질에 큰 영향을 준다. 거의 동일한 정면 영상을 많이 촬영하는 것은 체커보드의 방향을 크게 변화시켜 관측하는 것보다 유용한 기하학적 정보를 적게 제공한다. 타깃은 여러 축을 중심으로 기울이고, 영상 내부에서 다양한 위치로 이동시키며, 서로 다른 거리에서 관측해야 한다. 동시에 충분히 선명하고 검출 가능한 상태를 유지해야 한다. 이러한 변화는 독립적인 제약조건을 제공하고 내부 파라미터 추정 과정의 수치적 모호성(numerical ambiguity)을 감소시킨다.

체커보드는 이미지 센서(image sensor)의 여러 영역을 충분히 포함해야 한다. 광학 중심(optical center) 주변에 집중된 측정값은 특히 렌즈 왜곡(lens distortion)이 크게 나타나는 영상 경계 영역의 특성을 파악하는 데 제한적이다. 따라서 유용한 교정 데이터셋(calibration dataset)은 영상 중앙뿐 아니라 좌우 측면, 모서리, 상단과 하단 영역에서도 체커보드를 관측해야 한다. 동시에 필요한 모든 내부 코너가 안정적으로 검출되고 서브픽셀 위치 추정에 충분한 크기로 나타나야 한다.

호모그래피를 추정한 후 Zhang 방법은 각 체커보드 자세와 관련된 회전 벡터(rotation vector)의 직교성(orthogonality)과 동일 스케일 특성(equal-scale property)에 기반한 대수적 제약조건(algebraic constraints)을 구성한다. 이러한 제약조건을 여러 관측 영상에 걸쳐 결합하여 카메라 내부 행렬의 초기 추정값을 구한다. 이 과정은 서로 독립적인 여러 평면 관측에서 얻은 정보를 모든 영상에 공통되는 초점거리, 주점 및 기타 내부 파라미터에 대한 하나의 해(solution)로 변환한다.

내부 행렬이 추정되면 각 관측 영상에 대해 카메라를 기준으로 한 체커보드의 회전과 이동을 복원할 수 있다. 이러한 외부 파라미터는 데이터 수집 과정에서 타깃 자세가 변경되므로 각 체커보드 영상마다 서로 다르다. 이 절차에서 외부 파라미터는 주로 중간 교정 변수(intermediate calibration quantities)로 사용되지만, 복원된 카메라 기하(camera geometry)가 전체 데이터셋에서 관측된 체커보드 위치를 얼마나 일관성 있게 설명하는지 평가하는 데에도 유용하다.

실제 카메라 영상은 렌즈가 기하학적 왜곡(geometric distortion)을 발생시키기 때문에 이상적인 핀홀 카메라 모델(ideal pinhole camera model)과 차이가 있다. 따라서 초기 Zhang 해(initial Zhang solution)를 구한 후에는 일반적으로 렌즈 왜곡 파라미터(lens distortion parameters)를 추정하고 비선형 최적화(nonlinear optimization)를 수행한다. 방사 왜곡(radial distortion)은 영상 경계로 갈수록 직선 구조가 휘어지는 현상을 발생시키며, 접선 왜곡(tangential distortion)은 불완전한 렌즈 정렬(imperfect lens alignment)로 인해 발생할 수 있다. 측정된 코너 위치와 이상적인 투영 위치를 비교할 때 이러한 영향을 고려해야 한다.

비선형 정밀화(nonlinear refinement)는 일반적으로 모든 검출된 체커보드 코너와 모든 교정 영상에 대한 재투영 오차(reprojection error)를 최소화한다. 알려진 각각의 타깃 점에 대해 현재의 카메라 파라미터를 이용하여 해당 점이 영상에서 나타나야 할 위치를 예측한다. 이 예측 위치와 실제 검출된 코너 위치 사이의 차이가 잔차(residual)를 형성한다. 최적화 과정은 전체 데이터셋에 하나의 카메라 모델을 유지하면서 내부 파라미터, 왜곡 계수(distortion coefficients), 체커보드 자세를 조정하여 전체 잔차를 감소시킨다.

재투영 오차는 중요한 교정 품질 지표(calibration quality indicator)이지만 유일한 합격 판정 기준(acceptance criterion)으로 해석해서는 안 된다. 평균 오차가 낮더라도 관측 위치가 불균형하게 분포하거나 일부 영상에 큰 잔차가 존재하고, 코너가 흐리거나 파라미터 관측 가능성이 낮을 수 있다. 따라서 오차 통계(error statistics)는 공간적 잔차 패턴(spatial residual pattern) 및 개별 영상의 성능과 함께 검토해야 한다. 특히 큰 체계적 잔차(systematic residual)는 부적절한 왜곡 모델, 부정확한 타깃 형상 또는 영상 측정 문제를 나타낼 수 있다.

교정 영상 품질(calibration image quality)은 결과 파라미터에 직접적인 영향을 준다. 모션 블러(motion blur), 초점 불량(defocus), 심한 반사(reflection), 과다 노출(overexposure), 낮은 대비(low contrast), 부분적으로 가려진 코너는 특징 위치 추정 정확도를 감소시킨다. 체커보드는 평면 타깃 가정(planar-target assumption)을 위반하지 않도록 충분히 견고하고 평탄해야 한다. 특히 정확한 미터법 이동량(metric translation)이 필요한 경우 인쇄 배율 오차(printer scaling)와 재료 변형(substrate deformation)이 체계적인 기하 오차를 발생시킬 수 있으므로 인쇄된 타깃의 치수 안정성(dimensional stability)도 중요하다.

카메라 설정(camera settings)은 교정 과정 전체에서 제어되어야 한다. 해상도(resolution), 디지털 크롭(digital cropping), 비닝(binning), 줌(zoom), 초점 설정(focus configuration) 또는 기타 영상 파라미터를 변경하면 유효 카메라 모델(effective camera model)이 달라질 수 있다. 특정 영상 형상(image geometry)에서 얻은 교정 결과를 이러한 설정 변경 이후에도 자동으로 유효하다고 가정해서는 안 된다. 안정적인 체커보드 검출을 위해 필요한 경우 노출(exposure)을 조정할 수 있지만, 결과 내부 파라미터와 연결된 기하학적 영상 설정은 기록하고 실제 운용 시 유지해야 한다.

견고한 데이터셋(robust dataset)은 일반적으로 이론적인 최소 개수보다 많은 유효 관측값을 포함한다. 추가적인 관측 영상은 중복성(redundancy)을 향상시키고 일관되지 않은 측정값을 검출할 수 있게 한다. 그러나 단순히 영상 개수를 늘린다고 해서 더 좋은 교정 결과가 보장되는 것은 아니다. 선명하고 기하학적으로 다양한 소수의 체커보드 영상이 거의 동일한 자세로 촬영된 다수의 영상보다 강한 제약조건을 제공할 수 있다. 따라서 데이터셋 선택에서는 영상 수량 자체보다 자세 다양성, 영상 영역의 분포, 특징 품질(feature quality), 일관성을 중요하게 고려해야 한다.

최적화가 완료된 이후에는 추정된 모델이 피팅(fitting)에 직접 사용된 측정값을 넘어 일반화되는지를 확인할 수 있는 관측 데이터를 이용하여 교정을 검증해야 한다. 왜곡 보정 영상(undistorted image)을 검사하여 기하학적 형상이 합리적인지 확인할 수 있으며, 체커보드 점을 다시 영상에 투영하여 잔차의 크기와 방향을 평가할 수 있다. 독립적인 데이터셋으로 교정을 반복하는 것도 중요하며, 초점거리, 주점 또는 왜곡 계수가 크게 변화한다면 불안정한 데이터 취득이나 불충분한 기하학적 자극(geometric excitation)을 의미할 수 있다.

로봇 인지 시스템(robotic perception system)에서 정확한 카메라 내부 파라미터는 이후 수행되는 다양한 기하학적 연산의 기반을 형성한다. 픽셀 좌표(pixel coordinates)를 카메라 광선(camera ray)으로 변환할 수 있고 영상 왜곡을 보정할 수 있으며, 스테레오 기하(stereo geometry)를 구성할 수 있다. 또한 이후 외부 교정(extrinsic calibration)을 통해 카메라 측정값을 라이다(LiDAR), 로봇 또는 차량 좌표 프레임과 연결할 수 있다. 따라서 체커보드 교정에서 발생한 오차는 깊이 추정(depth estimation), 위치추정(localization), 지도작성(mapping), 객체 측정(object measurement), 다중 센서 융합(multi-sensor fusion)에 전파될 수 있다.

전체 교정 공학 구조(calibration engineering structure)에서 Zhang 체커보드 방법은 보다 전문적인 카메라 교정 절차를 수행하기 전에 카메라 시스템의 기본적인 내부 교정 단계(intrinsic calibration stage)를 제공한다. 렌즈 왜곡 모델링(lens distortion modeling), 스테레오 카메라 교정(stereo calibration), 롤링 셔터 교정(rolling-shutter calibration), 카메라 교정 도구(camera calibration tools)는 여기에서 확립된 내부 파라미터를 기반으로 확장될 수 있다. 따라서 신중하게 구성된 체커보드 데이터셋과 수치적으로 안정적인 최적화(well-conditioned optimization)는 신뢰할 수 있는 카메라 기반 인지(camera-based perception)에 필요한 기하학적 기반을 제공한다.

05.03. Temperature Compensation

온도 보상(temperature compensation)은 센서 온도 변화에 따라 달라지는 오차를 보정하여 관성측정장치(Inertial Measurement Unit)의 출력을 교정하는 과정이다. 가속도계(accelerometer)와 자이로스코프(gyroscope)는 미세전자기계시스템(MEMS) 구조, 아날로그 전자회로(analog electronics), 기준 회로(reference circuits), 신호 조절 부품(signal-conditioning components)을 포함하며 이들의 특성은 온도에 따라 변화한다. 따라서 특정 온도에서 측정한 교정 파라미터(calibration parameters)는 로봇, 차량 또는 자율 시스템의 전체 동작 온도 범위에서 동일하게 유효하지 않을 수 있다.

온도 의존 오차(temperature-dependent error)는 특히 센서 바이어스(sensor bias)에 중요하다. 정지된 자이로스코프는 저온 상태, 워밍업(warm-up) 과정, 열적 평형(thermal equilibrium)에 도달한 이후에 서로 다른 영각속도 출력(zero-rate output)을 나타낼 수 있다. 가속도계 영점 오프셋(accelerometer zero offset)도 유사하게 변화하여 기계적 상태가 변하지 않았음에도 겉보기 가속도(apparent acceleration)를 발생시킬 수 있다. 모든 조건에서 고정된 상온 바이어스 보정(room-temperature bias correction)을 사용하면 남아 있는 온도 의존 바이어스가 체계적인 측정 오차(systematic measurement error)가 된다.

스케일 팩터(scale factor) 역시 센서 특성에 따라 물리적 입력과 전기적 출력 사이의 관계가 변화하므로 온도에 따라 달라질 수 있다. 따라서 동일한 각속도(angular velocity)나 가속도(acceleration)가 서로 다른 온도에서는 약간 다른 디지털 측정값을 생성할 수 있다. 그러므로 온도 보상은 단순한 일정 오프셋 보정(constant offset correction)으로 취급하기보다는 앞서 식별된 바이어스, 스케일 팩터, 교차 결합(cross-coupling) 특성과 함께 고려해야 한다.

보상에 사용하는 온도는 가능한 한 실제 감지 소자(sensing element)의 열적 상태를 정확하게 나타내야 한다. 많은 관성측정장치(IMU)는 가속도 및 각속도와 함께 샘플링할 수 있는 내부 온도 측정값(internal temperature measurement)을 제공한다. 이 값은 자체 발열(self-heating), 주변 프로세서, 전력 전자장치(power electronics), 인클로저 설계(enclosure design), 공기 흐름(airflow), 장착 구조 등의 영향을 받기 때문에 주변 공기 온도(ambient air temperature)와 다를 수 있다. 따라서 교정에는 실제 센서 오차와 가장 높은 상관관계를 갖는 온도 신호를 사용해야 한다.

온도 교정 절차(temperature calibration procedure)는 관성측정장치(IMU)를 예상 동작 환경을 대표하는 제어된 온도 범위에 노출시킨다. 저온 영역에서 정상 조건(nominal conditions)을 거쳐 고온 영역까지 여러 온도 지점에서 측정 데이터를 수집한다. 각 온도 지점에서는 기준 측정값(reference measurements)을 기록하기 전에 센서가 열적 평형에 가까워질 수 있도록 충분한 시간을 제공해야 한다. 안정적인 열적 조건은 실제 온도 의존성과 일시적인 열 구배(transient thermal gradients) 및 무작위 측정 잡음(random measurement noise)을 분리하는 데 도움이 된다.

바이어스 특성화(bias characterization)를 위해 각 안정화된 온도에서 관성측정장치(IMU)를 정지 상태로 유지하면서 가속도계와 자이로스코프 출력을 기록할 수 있다. 자이로스코프 측정값은 보정 이후 이상적으로 0의 각속도에 가까워야 하며, 가속도계 측정값은 선택된 자세에서 알려진 중력 벡터(gravity vector)와 일치해야 한다. 반복 측정을 통해 평균 바이어스(mean bias)와 변동성(variability)을 추정할 수 있으며, 이를 통해 X, Y, Z축 각각에 대한 온도-바이어스 관계(temperature-versus-bias relationship)를 얻을 수 있다.

이렇게 얻은 교정 데이터는 이산 룩업 값(discrete lookup values), 구간별 보간 함수(piecewise interpolation functions), 다항식 모델(polynomial models) 또는 기타 파라미터화된 관계(parameterized relationships)로 표현할 수 있다. 단순한 모델에서는 바이어스를 b(T) = b₀ + b₁(T − T₀)로 근사할 수 있으며, 여기서 T₀는 기준 온도(reference temperature)이다. 비선형 열적 거동(nonlinear thermal behavior)을 갖는 센서는 고차 항(higher-order terms)이나 구간별 모델(piecewise models)이 필요할 수 있다. 모델 복잡도(model complexity)는 사용 가능한 가장 높은 수학적 차수를 자동으로 선택하기보다 실제 측정된 거동을 반영해야 한다.

제조 비대칭(manufacturing asymmetry)으로 인해 각 축마다 열 민감도(thermal sensitivity)가 서로 다르므로 일반적으로 각 가속도계와 자이로스코프 축에 대해 별도의 보상 모델(compensation model)이 필요하다. 따라서 전체 6축 모델에는 온도 의존 바이어스 함수(temperature-dependent bias functions) bax(T), bay(T), baz(T), bgx(T), bgy(T), bgz(T)가 포함될 수 있다. 스케일 팩터의 온도 의존성이 유의미하다면 가산 바이어스(additive bias)와 승산 감도 오차(multiplicative sensitivity error)를 혼동하지 않으면서 해당 온도 의존 스케일 파라미터도 보정 모델에 포함할 수 있다.

실시간 동작(runtime) 중 시스템은 현재 관성측정장치 온도를 읽고 이에 대응하는 교정 파라미터를 계산하거나 보간(interpolation)한다. 이렇게 추정된 온도 의존 바이어스를 측정된 가속도와 각속도에서 제거한다. 개념적으로 보정 신호는 a_corr = a_meas − b_a(T)와 ω_corr = ω_meas − b_g(T)로 표현할 수 있으며, 교정된 센서 모델에 스케일 및 교차 결합 효과가 포함되어 있다면 이에 대한 추가 보정도 함께 적용한다.

교정 파라미터가 여러 개의 이산 온도 지점(discrete temperature points)에 저장되어 있을 때 보간은 유용하게 사용된다. 인접한 교정 온도 사이의 선형 보간(linear interpolation)은 계산 비용이 낮으며 파라미터 변화가 부드러운 경우에 적합하다. 룩업 테이블 방식(lookup-table approach)은 고차 다항식을 사용하지 않고도 측정된 비선형 거동을 보존할 수 있다. 선택된 표현 방식은 메모리 사용량(memory usage), 계산 비용(computation cost), 수치적 안정성(numerical stability), 교정 정확도(calibration accuracy), 임베디드 또는 엣지 플랫폼(embedded or edge platform)의 처리 자원을 균형 있게 고려해야 한다.

열 이력 현상(thermal hysteresis)은 특정 온도에서의 센서 출력이 관성측정장치(IMU)가 가열되면서 해당 온도에 도달했는지 또는 냉각되면서 도달했는지에 따라 달라질 수 있기 때문에 보상을 복잡하게 만든다. 내부 온도 구배(internal temperature gradients)로 인해 패키지 온도 측정값(package temperature measurement)이 실제 감지 구조의 온도 변화를 지연하여 반영할 수도 있다. 높은 정확도가 필요한 경우 교정 데이터셋에서는 가열 및 냉각 거동을 모두 조사해야 한다. 상당한 열 이력이 존재한다면 단순한 단일값 온도 보정(single-valued temperature correction)만으로 센서 거동을 완전히 표현하기 어려울 수 있다.

워밍업 거동(warm-up behavior) 역시 실용적으로 중요한 요소이다. 전원을 켠 이후 전자회로의 자체 발열로 인해 관성측정장치 온도와 바이어스는 안정된 동작 조건에 접근하기 전까지 빠르게 변화할 수 있다. 시동 직후부터 동작해야 하는 시스템은 완전한 열적 평형을 기다릴 수 없는 경우가 있다. 이러한 시스템에서는 열 과도 상태(thermal transients)에서도 보상 모델을 검증해야 하며, 워밍업 시간을 허용할 수 있는 시스템은 고정밀 관성 측정값을 사용하기 전에 안정화 판정 기준(stabilization criterion)을 정의할 수 있다.

온도 교정 장비(temperature calibration equipment)는 관성 측정을 손상시키는 기계적 외란을 발생시키지 않으면서 충분한 환경 안정성(environmental stability)을 제공해야 한다. 온도 챔버(temperature chamber) 또는 제어된 열 고정장치(controlled thermal fixture)는 관성측정장치가 견고하게 고정된 상태에서 대표적인 열적 조건을 경험하도록 해야 한다. 케이블, 고정장치, 진동, 결로(condensation), 공기 흐름, 챔버 움직임은 모두 기록 데이터에 영향을 줄 수 있다. 따라서 열 교정 환경은 온도뿐 아니라 의미 있는 관성 측정에 필요한 기계적 기준 조건(mechanical reference conditions)도 함께 제어해야 한다.

샘플링 설정(sampling configuration)은 모든 온도 지점에서 일관되게 유지되어야 한다. 측정 범위(measurement range), 샘플링 주파수(sampling frequency), 디지털 필터링(digital filtering), 펌웨어 설정(firmware configuration), 센서 동작 모드(sensor operating mode)가 실험 중 의도하지 않게 변경되어서는 안 된다. 그렇지 않으면 온도 변화처럼 보이는 현상이 실제로는 설정 차이에서 발생할 수 있다. 공학적 추적성(engineering traceability)을 유지하기 위해 각 온도 데이터셋에는 센서 식별정보, 하드웨어 개정판(hardware revision), 펌웨어 버전, 데이터 취득 설정, 기준 조건, 안정화 판정 기준을 연결하여 기록해야 한다.

이상치(outliers)와 불안정한 열적 구간(unstable thermal intervals)은 보상 파라미터를 피팅(fitting)하기 전에 신중하게 처리해야 한다. 온도가 빠르게 변화하는 동안 수집된 데이터는 안정화 이후 수집된 데이터와 동일한 물리적 상태를 나타내지 않을 수 있다. 통계적 평균화(statistical averaging)는 무작위 잡음을 줄일 수 있지만 체계적인 열 지연(systematic thermal lag)이나 부정확한 기준 조건을 보정할 수는 없다. 따라서 온도 교정에서는 모든 취득 샘플을 무분별하게 하나의 모델에 결합하기보다 안정적인 측정 구간과 과도 구간(transient periods)을 구분해야 한다.

보상 품질(compensation quality)은 전체 교정 온도 범위에서 보정 전후의 잔류 오차(residual errors)를 비교하여 평가해야 한다. 정지 시험(stationary test)에서 보정된 자이로스코프 평균은 0에 가깝게 유지되어야 하며, 보정된 가속도계 출력은 예상되는 중력 벡터와 일관성을 유지해야 한다. 전체 평균 오차가 낮더라도 저온 또는 고온 한계 영역에서 국부적인 오차(localized errors)가 숨겨질 수 있으므로 각 축과 각 온도 영역에 대한 잔류 바이어스를 개별적으로 검토해야 한다.

검증(validation)에는 보상 모델을 피팅하는 데 직접 사용하지 않은 온도 조건이나 데이터셋도 활용해야 한다. 이를 통해 모델이 단순히 교정 샘플을 재현하는 것이 아니라 실제 센서 거동을 표현하는지 확인할 수 있다. 반복적인 열 사이클(repeated thermal cycles)은 반복성(repeatability), 열 이력, 파라미터 안정성(parameter stability), 개체 간 편차(unit-to-unit variation)를 평가하는 데 유용하다. 합격 기준(acceptance limits)은 후속 위치추정(localization), 내비게이션(navigation), 자세 추정(attitude estimation), 제어 기능(control functions)에 요구되는 정확도를 반영해야 한다.

이동 로봇(mobile robot)과 자율 시스템(autonomous system)에서 부적절한 온도 보상은 플랫폼이 워밍업되거나 서로 다른 환경 사이를 이동할 때 자세 드리프트(orientation drift), 허위 가속도(false acceleration), 속도 오차(velocity error), 위치 추정 성능 저하(degraded position estimation)로 나타날 수 있다. 이러한 오차는 센서 융합(sensor fusion)을 통해 전파되어 카메라, 라이다(LiDAR), 위성항법시스템(GNSS), 휠 오도메트리(wheel odometry), 운동 제어(motion-control) 계산에 영향을 줄 수 있다. 따라서 온도 보상은 시동, 실내 운용, 실외 배치, 환경 변화 전반에서 관성 정보의 일관성을 향상시킨다.

관성측정장치 교정 순서(IMU calibration sequence)에서 온도 보상은 6축 바이어스(six-axis bias)와 스케일 팩터 또는 교차 결합 오차(scale-factor or cross-coupling errors)의 특성화 이후에 수행되며, 관성측정장치-바디 프레임 정렬(IMU-to-body-frame alignment)과 최종 교정 검증(final calibration validation)에 앞서 위치한다. 이러한 구성은 온도에 의존하는 센서 고유 거동(intrinsic sensor behavior)을 기하학적 장착 정렬(geometric mounting alignment)과 분리한다. 이 단계들을 함께 적용하면 원시 가속도계와 자이로스코프 측정값을 의도된 동작 온도 범위 전체에서 신뢰성 있는 상태 추정(state estimation)을 지원할 수 있는 안정적인 관성 데이터로 변환할 수 있다.

05.04. IMU to Body Frame Alignment

관성측정장치-바디 프레임 정렬(IMU-to-body-frame alignment)은 관성측정장치(Inertial Measurement Unit)의 로컬 좌표계(local coordinate system)와 로봇, 차량 또는 이동 플랫폼을 표현하는 데 사용되는 좌표계 사이의 회전 관계(rotational relationship)를 정의한다. 관성측정장치(IMU)를 정밀하게 장착하더라도 센서의 감지 축(sensing axes)이 기계적인 바디 축(body axes)과 완벽하게 일치하는 경우는 드물다. 작은 장착 각도 오차(mounting-angle error)는 가속도와 각속도 측정값을 잘못된 방향으로 해석하게 하므로 명시적인 기하학적 교정(geometric calibration)이 필요하다.

관성측정장치 프레임(IMU frame)은 일반적으로 센서 제조사가 X_IMU, Y_IMU, Z_IMU로 표시되는 세 개의 직교 축(orthogonal axes)을 이용하여 정의한다. 바디 프레임(body frame)은 플랫폼의 기계 및 내비게이션 규약에 따라 전방(forward), 횡방향(lateral), 수직방향(vertical) 등으로 독립적으로 정의된다. 정렬 교정(alignment calibration)은 관성측정장치 프레임에서 생성된 측정 벡터를 바디 프레임을 기준으로 일관성 있게 표현하기 위해 필요한 변환(transformation)을 결정한다.

정렬 불일치(misalignment)는 여러 물리적 원인에서 발생할 수 있다. 인쇄회로기판 배치 공차(PCB placement tolerance), 센서 패키지 방향(sensor-package orientation), 브래킷 가공 오차(bracket machining error), 조립 공차(assembly tolerance), 장착 홀 유격(mounting-hole clearance), 구조 변형(structural deformation), 정비 과정의 센서 교체 등이 공칭 장착 방향과 실제 장착 방향 사이에 작은 회전을 발생시킬 수 있다. 캐드 모델(CAD model)에서 완벽한 정렬을 규정하더라도 실제 제작된 시스템에는 롤(roll), 피치(pitch), 요(yaw) 오프셋이 존재할 수 있으므로 이를 0으로 가정하지 말고 측정해야 한다.

정렬 관계(alignment relationship)는 일반적으로 3차원 회전 행렬(three-dimensional rotation matrix)로 표현한다. R_BI가 관성측정장치 프레임에서 바디 프레임으로의 회전을 나타내는 경우, 관성측정장치 측정 벡터 v_I는 개념적으로 v_B = R_BI v_I와 같이 변환할 수 있다. 가속도계와 자이로스코프는 모두 관성측정장치 감지 축을 따라 측정되는 방향성 물리량(directional quantities)이므로 센서 자체의 고유 교정(intrinsic calibration)이 이미 수행되었다면 동일한 기하학적 변환을 두 벡터에 적용할 수 있다.

회전 행렬(rotation matrix)은 9개의 요소를 포함하지만 실제로는 세 개의 독립적인 회전 자유도(rotational degrees of freedom)만을 표현한다. 따라서 정렬은 롤, 피치, 요 각도 또는 다른 3개 파라미터 표현 방식으로도 나타낼 수 있다. 오일러 각(Euler-angle) 표현은 장착 각도 오프셋을 직접적으로 설명하기 때문에 공학 문서에서 직관적이며, 회전 행렬은 실시간 벡터 변환(runtime vector transformation)에 편리하고 센서 처리 과정에서 축 관계를 반복적으로 재구성할 필요가 없다는 장점이 있다.

정렬 교정은 주요 관성측정장치 고유 오차(intrinsic IMU errors)를 보정한 이후 수행해야 한다. 6축 바이어스(six-axis bias), 스케일 팩터 및 교차 결합 오차(scale-factor and cross-coupling errors), 온도 의존 거동(temperature-dependent behavior)이 보정되지 않으면 방향을 추정하는 데 사용되는 측정값을 오염시킬 수 있다. 따라서 교정 구조에서는 이러한 센서 고유 보정 이후, 최종 관성측정장치 교정 검증(final IMU calibration validation) 이전에 관성측정장치-바디 프레임 정렬을 배치하여 센서 측정 특성과 장착 기하학(installation geometry)을 분리한다.

중력(gravity)은 정지된 가속도계가 감지 축에 투영된 중력장을 측정하기 때문에 정렬의 일부를 추정하는 데 유용한 기준을 제공한다. 플랫폼을 알려진 바디 자세(known body orientation)에 배치하면 바디 프레임에서 예상되는 중력 벡터(expected gravity vector)를 관성측정장치 프레임에서 측정된 보정 가속도 벡터(corrected acceleration vector)와 비교할 수 있다. 두 방향의 차이를 통해 특히 롤과 피치에 관련된 회전 정렬 오차(rotational misalignment)를 확인할 수 있다.

단일 정지 중력 관측(single stationary gravity observation)만으로는 중력 벡터를 중심으로 하는 회전이 측정된 중력 방향을 변화시키지 않기 때문에 세 개의 회전 자유도를 모두 결정할 수 없다. 따라서 완전한 3축 정렬(three-axis alignment)을 추정하려면 추가적인 자세 또는 독립적인 방향 기준(independent directional reference)이 필요하다. 플랫폼이나 관성측정장치를 여러 개의 알려진 자세에 배치하여 중력이 서로 다른 축을 자극하도록 하면 보다 완전한 회전 추정을 위한 다수의 벡터 대응 관계(vector correspondences)를 얻을 수 있다.

요 정렬(yaw alignment)은 중력만으로 헤딩 기준(heading reference)을 제공할 수 없기 때문에 특별한 주의가 필요하다. 알려진 바디 축을 중심으로 하는 제어된 회전(controlled rotation), 정확하게 정의된 기계식 지그(mechanical fixture), 외부 모션 추적 장비(external motion-tracking equipment), 내비게이션 기준(navigation reference) 또는 바디 헤딩을 확립할 수 있는 기타 측정 방법을 이용하여 요 정렬을 추정할 수 있다. 선택한 방법은 불충분한 정적 데이터에서 요 오차를 추론하는 대신 실제 물리적 기준 정보로 결정할 수 있도록 충분한 관측 가능성(observability)을 제공해야 한다.

동적 회전(dynamic rotation)도 정렬 추정을 지원할 수 있다. 플랫폼을 알려진 기계적 바디 축을 중심으로 회전시키면 보정된 자이로스코프는 해당 변환 방향을 따라 주로 각속도를 측정해야 한다. 서로 다른 여러 축을 중심으로 제어된 회전을 수행하면 관성측정장치 프레임과 바디 프레임 사이의 방향 관계를 얻을 수 있다. 가속도계 기반 중력 관측(accelerometer-based gravity observation)과 자이로스코프 기반 회전 관측(gyroscope-based rotational observation)을 결합하면 3차원 정렬의 관측 가능성을 향상시킬 수 있다.

측정을 수집하기 전에 기준 바디 좌표계(reference body coordinate system)를 명확하게 설정해야 한다. 좌표계의 원점(origin)과 축 방향(axis directions)은 위치추정(localization), 내비게이션(navigation), 제어(control), 센서 융합(sensor fusion) 소프트웨어에서 사용하는 좌표 규약(coordinate convention)을 따라야 한다. 특히 부호 규약(sign convention)이 중요하며, 잘못된 축 방향이나 오른손 좌표계(right-handed coordinate system)와 왼손 좌표계(left-handed coordinate system)의 혼동은 수치적으로는 타당해 보이지만 실제 적용 시 근본적으로 잘못된 물리적 동작을 발생시키는 변환을 만들 수 있다.

교정 데이터(calibration data)는 하나의 자세나 하나의 움직임에 의존하지 않고 여러 개의 독립적인 관측값을 포함해야 한다. 알려진 각각의 바디 프레임 기준 벡터(body-frame reference vector)를 이에 대응하는 보정된 관성측정장치 프레임 측정값과 쌍으로 구성할 수 있다. 그러면 정렬 문제는 전체 측정 벡터 집합을 예상되는 바디 프레임 방향으로 가장 잘 매핑하는 회전을 추정하는 문제가 된다. 다양한 관측값을 사용하면 수치적 조건(numerical conditioning)이 향상되고 무작위 측정 잡음이나 개별 설정 오차에 대한 민감도가 감소한다.

최적화 절차(optimization procedure)는 모든 기준 관측값에 걸친 방향 불일치(directional discrepancy)를 최소화하여 정렬 회전을 추정할 수 있다. 결과 회전은 서로 수직인 단위 축(mutually perpendicular unit axes)과 적절한 행렬식(determinant)을 갖는 물리적으로 유효한 직교정규 변환(orthonormal transformation)을 유지해야 한다. 이러한 회전 제약조건(rotational constraints)을 유지하는 것은 중요하다. 회전 기하학을 보존하지 않고 행렬 요소를 독립적으로 피팅하면 의도하지 않은 스케일링(scaling), 전단(shearing) 또는 기타 비물리적 효과가 포함된 변환이 생성될 수 있기 때문이다.

작은 장착 오차(small mounting errors)는 때때로 세 개의 소각도 파라미터(small-angle parameters)를 사용하여 근사할 수 있다. 이러한 표현은 기계적 정렬 오차가 몇 도 이하인 경우 해석을 단순화할 수 있지만 각도 오프셋이 증가할수록 근사 정확도가 떨어진다. 따라서 소프트웨어 구현에는 일반적인 회전 표현(general rotation representation)을 사용하는 것이 바람직하며, 소각도 값은 설치 오차의 크기와 방향을 전달하는 공학적 지표(engineering indicator)로 별도로 보고할 수 있다.

교정된 변환(calibrated transformation)은 올바른 방향으로 적용해야 한다. 관성측정장치 프레임 벡터를 바디 프레임 벡터로 변환하는 행렬은 그 역방향 변환과 서로 바꾸어 사용할 수 없다. 순수 회전 행렬(pure rotation matrix)의 경우 역행렬(inverse matrix)은 전치행렬(transpose matrix)과 같지만 프레임 표기(frame notation)를 혼동하는 것은 여전히 일반적인 통합 오류(integration error)의 원인이다. 교정 기록과 소프트웨어 인터페이스에서는 소스 프레임(source frame), 목적지 프레임(destination frame), 축 규약(axis convention), 회전 정의(rotation definition), 파라미터 순서(parameter ordering)를 명확하게 식별해야 한다.

기계적 장착 안정성(mechanical installation stability)은 정렬 교정이 얼마나 오랫동안 유효하게 유지되는지를 결정한다. 관성측정장치 브래킷이 움직이거나 체결부가 느슨해지고, 센서 인쇄회로기판이 교체되거나 섀시가 수리되며, 구조 하중으로 장착 영역이 영구적으로 변형되면 기존 변환은 더 이상 실제 물리 시스템을 정확하게 표현하지 못할 수 있다. 따라서 정렬 파라미터는 설치된 센서와 기계적 구성에 연결하여 관리하고 관련 하드웨어가 변경되는 경우 재교정(recalibration)을 수행해야 한다.

검증(validation)은 정렬 추정에만 사용된 데이터에 의존하지 않고 별도의 관측값을 이용하여 변환을 확인해야 한다. 알려진 정적 자세에서 변환된 가속도는 바디 프레임에서 예상되는 중력 방향을 가리켜야 한다. 제어된 회전에서는 변환된 각속도가 명령된 바디 축(commanded body axis)을 주로 따라야 한다. 직교 축에서 나타나는 잔류 성분(residual components)은 남아 있는 정렬 오차를 직관적으로 나타내지만 센서 고유 잡음과 축간 센서 불완전성도 함께 고려해야 한다.

이동 로봇(mobile robot)과 자율주행 차량(autonomous vehicle)에서는 비교적 작은 정렬 오차도 상위 수준의 상태 추정(higher-level estimation)에 전파될 수 있다. 잘못 회전된 가속도 벡터는 허위 횡가속도(false lateral acceleration)나 종가속도(longitudinal acceleration)를 발생시킬 수 있으며, 각속도 정렬 오차는 롤, 피치, 요의 전파를 왜곡할 수 있다. 이러한 오차는 관성항법(inertial navigation), 휠 오도메트리 융합(wheel-odometry fusion), 위성항법시스템 통합(GNSS integration), 라이다 위치추정(LiDAR localization), 카메라 안정화(camera stabilization), 지도작성(mapping), 궤적 추정(trajectory estimation), 폐루프 운동 제어(closed-loop motion control)에 영향을 줄 수 있다.

다중 센서 시스템(multi-sensor system)에서는 각 센서가 궁극적으로 플랫폼 좌표계와 일관된 관계를 가져야 하므로 정렬이 특히 중요하다. 관성측정장치 측정값은 카메라, 라이다, 위성항법시스템 수신기(GNSS receiver), 조향 시스템(steering system), 로봇 제어기(robot controller)에 고속 움직임 정보(high-rate motion information)를 제공할 수 있다. 정확하게 교정된 관성측정장치-바디 변환(IMU-to-body transformation)은 신뢰할 수 있는 관성 기준(inertial reference)을 확립하고 장착 기하학 오차가 시간 동기화, 위치추정 또는 다른 센서 교정 문제로 잘못 판단되는 것을 방지한다.

교정 파라미터(calibration parameters)는 관성측정장치, 플랫폼, 장착 구성(mounting configuration), 교정 방법(calibration method), 좌표 규약, 소프트웨어 버전, 검증 결과를 식별할 수 있도록 충분한 추적성(traceability)을 갖추어 저장해야 한다. 프레임 의미(frame semantics)가 명확하게 정의되지 않은 회전 행렬은 쉽게 잘못 적용될 수 있기 때문에 이러한 정보 관리는 양산 및 현장 정비에서 중요하다. 추적 가능한 파라미터 관리(traceable parameter management)는 생산 개체 간 비교와 비정상적인 조립 편차(abnormal assembly variation)의 검출도 가능하게 한다.

관성측정장치 교정 순서(IMU calibration sequence)에서 관성측정장치-바디 프레임 정렬은 센서 자체의 고유 오차가 보정된 측정값을 전체 로봇 플랫폼에서 요구하는 기하학적 좌표계로 변환한다. 바이어스 교정(bias calibration)은 영점 기준(zero reference)을 확립하고, 스케일 팩터 및 교차 결합 교정(scale-factor and cross-coupling calibration)은 측정 감도를 보정하며, 온도 보상(temperature compensation)은 열적 조건에 따른 특성을 안정화한다. 이후 정렬 교정은 설치 방향을 보정하고, 최종 검증(final validation)을 통해 이러한 보정이 하나의 일관된 교정 관성측정장치 시스템(calibrated IMU system)으로 함께 작동하는지 확인한다.

05.05. IMU Calibration Validation

관성측정장치 교정 검증(IMU calibration validation)은 전체 관성측정장치(Inertial Measurement Unit) 교정 과정이 대상 로봇 또는 차량 시스템에서 요구되는 정확도(accuracy), 안정성(stability), 일관성(consistency)을 만족하는 측정값을 생성하는지 확인하는 과정이다. 검증은 6축 바이어스 보정(six-axis bias correction), 스케일 팩터 및 교차 결합 교정(scale-factor and cross-coupling calibration), 온도 보상(temperature compensation), 관성측정장치-바디 프레임 정렬(IMU-to-body-frame alignment)이 완료된 이후 수행한다. 각각의 교정 파라미터를 독립적인 수학적 값으로 평가하는 것이 아니라 통합된 최종 결과를 평가한다.

주요 목적은 보정된 가속도계(accelerometer)와 자이로스코프(gyroscope) 출력이 정의된 허용 한계(acceptance limits) 내에서 알려진 물리적 조건을 정확하게 나타내는지 판단하는 것이다. 따라서 검증에서는 가속도(acceleration), 각속도(angular velocity), 자세(orientation), 운동(motion)을 독립적으로 확인할 수 있는 제어된 기준 상태(controlled reference states)를 사용해야 한다. 교정된 관성측정장치 출력과 이러한 기준값을 비교하고, 그 결과로 발생하는 잔류 오차(residual errors)를 분석하여 전체 센서 모델이 예상대로 동작하는지 판단한다.

정적 검증(static validation)은 가속도계와 자이로스코프의 동작을 평가하는 가장 단순한 방법을 제공한다. 관성측정장치가 정지 상태로 유지될 때 물리적인 회전이 존재하지 않으므로 보정된 자이로스코프 출력은 0에 가까워야 한다. 가속도계는 알려진 센서 자세에 따라 중력장(gravitational field)을 측정해야 한다. 반복적인 정지 상태 측정을 통해 교정 이후에도 남아 있을 수 있는 잔류 바이어스(residual bias), 단기 잡음(short-term noise), 출력 안정성(output stability), 불일치(inconsistency)를 확인할 수 있다.

모든 가속도계 축을 효과적으로 평가하기 위해서는 여러 개의 정적 자세(static orientations)가 필요하다. 관성측정장치를 배치하여 중력이 양의 X, Y, Z 방향과 음의 X, Y, Z 방향으로 작용하도록 할 수 있으며, 더 높은 신뢰도가 필요한 경우 추가적인 중간 자세(intermediate orientations)를 사용할 수 있다. 보정된 측정값은 예상되는 중력 벡터(expected gravity vector)를 일관되게 따라야 한다. 크기 또는 방향의 차이는 잔류 바이어스, 스케일 팩터 오차(scale-factor error), 축간 결합(cross-axis coupling), 정렬 오차(alignment error)를 나타낼 수 있다.

자이로스코프 검증(gyroscope validation)은 정지 상태 시험뿐 아니라 제어된 각운동(controlled angular motion)을 포함해야 한다. 관성측정장치 또는 플랫폼을 알려진 축을 중심으로 정의된 각속도로 회전시키면 측정된 각속도를 기준 운동(reference motion)과 비교할 수 있다. 여러 개의 양의 각속도와 음의 각속도에서 시험하면 잔류 바이어스, 스케일 팩터 오차, 축 비대칭(axis asymmetry), 교차 축 응답(cross-axis response)을 확인할 수 있다. 동적 측정(dynamic measurement)은 영각속도 관측(zero-rate observation)만으로는 충분히 평가할 수 없는 동작 특성도 검증한다.

교차 축 검증(cross-axis validation)은 하나의 물리적 축에 대한 입력이 다른 축에 잘못 나타나는지를 확인한다. 제어된 단일 축 가속 또는 회전 중에는 해당 교정 바디 축(calibrated body axis)에서 지배적인 응답이 나타나야 한다. 직교 축(orthogonal axes)에 상당한 성분이 나타난다면 불완전한 교차 결합 보정(incomplete cross-coupling correction), 기계적 지그 오차(mechanical fixture error), 잘못된 프레임 정렬(frame alignment)을 의미할 수 있다. 이러한 시험은 관성측정장치-바디 프레임 변환(IMU-to-body-frame transformation)이 적용된 이후 특히 유용하다.

정렬 검증(alignment validation)은 보정된 관성 벡터(inertial vectors)가 의도된 바디 좌표계(body coordinate system)에서 표현되는지를 확인한다. 알려진 정적 자세에서는 중력이 바디 프레임에서 예상되는 방향을 가리켜야 한다. 바디 축을 중심으로 제어된 회전을 수행하면 변환된 자이로스코프 벡터는 해당 축과 주로 정렬되어야 한다. 이러한 관측은 추정된 회전뿐 아니라 변환 방향, 부호, 축 규약(axis conventions)을 포함한 프레임 변환의 소프트웨어 구현도 함께 검증한다.

온도 검증(temperature validation)은 의도된 열적 동작 범위(thermal operating range) 전체에서 교정이 효과적으로 유지되는지를 판단한다. 관성측정장치는 대표적인 저온, 정상 온도, 고온 조건에서 시험해야 하며, 응용 시스템에서 필요한 경우 열 과도 상태(thermal transitions)도 포함해야 한다. 온도에 따른 잔류 가속도계 및 자이로스코프 오차를 비교하여 보상 모델이 원래 교정된 온도 주변에서만 좋은 성능을 제공하는 것이 아니라 체계적인 열 드리프트(systematic thermal drift)를 실제로 억제하는지 확인한다.

워밍업 시험(warm-up testing)은 전원을 켠 직후 센서 특성이 빠르게 변화할 수 있기 때문에 중요하다. 시동부터 열적 안정화(thermal stabilization)에 이르는 동안 측정값을 관찰하여 이 기간의 잔류 바이어스가 허용 가능한 수준인지 판단해야 한다. 즉시 동작해야 하는 시스템에서는 과도 상태 성능(transient performance)에 대한 허용 기준이 필요할 수 있으며, 워밍업이 허용되는 시스템에서는 고정밀 관성 데이터를 유효한 것으로 판단하기 전에 안정화 시간(stabilization time) 또는 온도 조건을 정의할 수 있다.

반복성 시험(repeatability testing)은 반복된 측정에서 교정 성능이 재현되는지를 평가한다. 관성측정장치를 동일한 기준 자세, 온도 또는 동적 조건으로 여러 번 복귀시킨 후 보정된 출력을 비교할 수 있다. 반복 측정 사이에 큰 차이가 발생한다면 기계적 불안정성(mechanical instability), 열 이력(thermal hysteresis), 측정 잡음(measurement noise), 지그 불확도(fixture uncertainty), 파라미터 불안정성(parameter instability)을 의미할 수 있다. 한 번의 성공적인 검증만으로 장기적인 신뢰성을 입증할 수 없기 때문에 반복성은 매우 중요하다.

가능한 경우 독립적인 검증 데이터(independent validation data)를 사용해야 한다. 교정 파라미터를 추정하는 데 사용한 것과 정확히 동일한 측정 데이터를 다시 검증에 사용하면 보고된 성능이 지나치게 낙관적으로 나타날 수 있다. 별도의 자세, 각속도, 온도 또는 측정 시퀀스(measurement sequences)를 사용하면 교정 모델이 단순히 교정 관측값을 재현하는 것이 아니라 피팅 데이터셋(fitting dataset)을 넘어 실제 동작 조건에서도 일반화되는지를 보다 강하게 입증할 수 있다.

잔류 오차(residual error)는 남아 있는 교정 불완전성(calibration imperfection)을 직접적으로 나타낸다. 각 시험 조건에서 기준값을 보정된 관성측정장치 측정값에서 빼면 잔류 벡터(residual vector)를 얻을 수 있다. 평균 잔류값(mean residual)은 남아 있는 체계적 오차(systematic error)를 나타내고, 표준편차(standard deviation) 및 관련 통계값은 측정값의 분산(measurement dispersion)을 나타낸다. 모든 채널을 하나로 평균하면 특정 방향에서만 발생하는 큰 오차를 숨길 수 있으므로 각 축의 잔류값을 개별적으로 검토해야 한다.

일부 교정 문제는 전체 평균값만으로 확인하기 어렵기 때문에 시간 영역 분석(time-domain analysis)도 중요하다. 보정된 출력에서 드리프트(drift), 계단 변화(step), 진동(oscillation), 워밍업 추세(warm-up trend), 천천히 변화하는 바이어스를 검사할 수 있다. 장시간 정지 상태 기록(long stationary recording)은 잔류 안정성 문제를 확인하는 데 특히 유용하다. 따라서 관성측정장치가 의도된 동작 시간 동안 상태 추정에 적합한지를 판단할 때 순간 정확도뿐 아니라 시간에 따른 거동(temporal behavior)도 함께 고려해야 한다.

허용 한계(acceptance limits)는 일반적인 센서 사양만을 기준으로 선택하는 것이 아니라 시스템 요구사항(system requirements)을 기반으로 정의해야 한다. 단시간 안정화(short-duration stabilization)에 사용하는 관성측정장치는 관성항법(inertial navigation)이나 고정밀 위치추정(high-precision localization)에서는 허용할 수 없는 수준의 오차를 허용할 수도 있다. 따라서 잔류 바이어스, 스케일 오차(scale error), 정렬 오차, 온도 드리프트, 반복성, 잡음에 대한 한계값은 이러한 측정 오차가 내비게이션, 지도작성(mapping), 제어(control), 센서 융합(sensor fusion) 성능에 어떻게 전파되는지를 반영해야 한다.

검증에 사용되는 기준 장비(reference equipment) 자체도 충분한 정확도와 추적성(traceability)을 제공해야 한다. 정밀 지그(precision fixture)는 정적 자세를 설정할 수 있으며, 교정된 레이트 테이블(calibrated rate table)은 알려진 각운동을 제공할 수 있다. 요구 정확도에 따라 외부 모션 캡처 시스템(external motion-capture system), 정밀 경사계(precision inclinometer) 또는 기타 기준 계측기(reference instruments)를 활용할 수도 있다. 시험에서 교정의 합격과 불합격을 의미 있게 구분하려면 기준 장비의 불확도(reference uncertainty)가 허용되는 관성측정장치 오차보다 충분히 작아야 한다.

지그의 움직임이나 진동이 관성측정장치 오차로 잘못 해석될 수 있으므로 기계적 시험 조건(mechanical test conditions)을 제어해야 한다. 특히 바디 프레임 정렬을 검증할 때 센서 장착 구조는 실제 사용되는 설치 형상(installation geometry)을 재현해야 한다. 케이블 힘(cable forces), 구조 유연성(structural flexibility), 느슨한 체결부, 외부 진동, 플랫폼 움직임은 시험 결과를 오염시킬 수 있다. 따라서 검증에서는 센서 교정 오차와 물리적 시험 환경에서 발생하는 불확도를 구분해야 한다.

수치적인 교정 파라미터와 함께 소프트웨어 구현(software implementation)도 검증해야 한다. 올바른 교정 계수(correct coefficients)를 사용하더라도 파라미터 순서(parameter ordering), 단위(units), 축 부호(axis signs), 행렬 방향(matrix direction), 온도 보간(temperature interpolation), 처리 순서(processing sequence)가 잘못 구현되면 잘못된 출력이 생성될 수 있다. 따라서 종단 간 검증(end-to-end validation)은 양산 소프트웨어와 독립적으로 수행한 오프라인 계산만 검증하는 것이 아니라 실제 배포 시스템에서 사용되는 전체 교정 데이터 경로(calibrated data path)를 평가해야 한다.

교정 결과(calibration results)는 센서 식별정보(sensor identity), 교정 파라미터 세트(calibration parameter set), 시험 설정(test configuration), 기준 장비, 환경 조건(environmental conditions), 소프트웨어 버전, 허용 기준과 함께 기록해야 한다. 합격 또는 불합격 판정(pass or fail decision)은 비공식적인 관찰이 아니라 측정된 근거(measured evidence)에 대해 추적 가능해야 한다. 이러한 기록은 양산 품질관리(manufacturing quality control), 현장 정비(field service), 파라미터 버전 관리(parameter version management), 개체 간 비교, 제품 수명 동안의 교정 성능 저하(calibration degradation) 조사에 활용할 수 있다.

현장 검증(field validation)은 완전한 로봇 플랫폼에 장착된 관성측정장치를 평가함으로써 제어된 실험실 시험을 보완할 수 있다. 대표적인 실제 운용 조건에서 관성 출력은 휠 오도메트리(wheel odometry), 위성항법시스템(GNSS), 라이다 위치추정(LiDAR localization), 시각 기반 운동 추정(visual motion estimates) 또는 기타 독립적인 운동 정보와 비교할 수 있다. 지속적인 불일치는 부품 수준 시험에서 발견되지 않았던 장착 상태 변화나 교정 성능 저하를 나타낼 수 있지만, 외부 기준에서 발생하는 오차와는 신중하게 구분해야 한다.

검증 결과가 허용 한계를 벗어난 경우를 위해 재교정 기준(recalibration criteria)을 설정해야 한다. 센서 교체(sensor replacement), 장착 변경(mounting modification), 기계적 충격(mechanical shock), 구조 수리(structural repair), 펌웨어 변경(firmware changes), 장기 드리프트(long-term drift), 비정상적인 온도 거동(abnormal temperature behavior)은 교정 과정의 일부 또는 전체를 다시 수행해야 하는 원인이 될 수 있다. 따라서 검증은 최종 양산 검사(final manufacturing check)의 역할뿐 아니라 기존 교정 결과를 계속 신뢰할 수 있는지를 판단하는 메커니즘으로도 기능한다.

전체 교정 공학 구조(calibration engineering structure)에서 관성측정장치 교정 검증은 6축 바이어스 교정(six-axis bias calibration)으로 시작하여 스케일 팩터 및 교차 결합 보정(scale-factor and cross-coupling correction), 온도 보상, 관성측정장치-바디 프레임 정렬로 이어지는 일련의 과정을 완성한다. 성공적인 검증은 이러한 보정들이 통합적으로 작동하여 위치추정(localization), 내비게이션(navigation), 지도작성, 센서 융합, 운동 제어(motion control)에 적합한 안정적이고 기하학적으로 일관된 관성 측정값(inertial measurements)을 생성한다는 것을 입증한다.


저자: Richard Minsoo Go

LinkedIn: Richard Minsoo Go

Top comments (0)