IMU가 제공하는 값과 위치 추정을 구분한다
IMU의 gyro는 센서 축의 각속도를 rad/s로, 가속도계는 specific force를 m/s²로 측정한다. specific force는 운동 가속도에서 중력 가속도를 뺀 양을 센서 축으로 표현한 것이다. z축이 위를 향하는 정지 센서에서는 +g가 나타날 수 있으므로 이 값을 그대로 위로 움직이는 가속도라고 적분하면 틀린다. 방향 추정값을 출력하는 장치는 내부 융합 결과를 제공하는 것이며 모든 IMU가 전역 pose를 직접 측정하는 것은 아니다.
REP145는 이런 축과 측정의 관례를 설명하는 Draft 지침이다. 실제 장치의 축·중력 처리·내부 보정은 장치 문서와 기록을 확인해야 한다. Jazzy Imu 메시지는 각속도, 가속도와 방향 추정의 공분산을 구별한다. 공분산 전체가 0이면 불확실성이 알려지지 않았다는 뜻이며, 해당 공분산의 첫 원소 −1은 추정값이 제공되지 않는다는 뜻이다. 0을 완벽한 센서로 해석하거나 없는 방향을 단위 quaternion으로 채워 신뢰하지 않는다.
작은 바이어스도 적분하면 누적된다
바이어스는 측정에 지속적으로 더해지는 치우침이다. 정지해 실제 yaw 각속도가 0인데 측정값이 +0.01 rad/s로 일정하다고 하자. 시간 T=10 s 동안 이를 그대로 적분하면 방향 오차는 0.01×10=0.1 rad다. 다른 오차와 보정이 없는 합성 예이며 샘플링이 빠르다고 이 일정 치우침이 사라지지는 않는다. 많은 표본을 평균해도 공통 바이어스는 그대로 남을 수 있다.
위치에 대한 간단한 예는 더 빠르게 커진다. 방향과 중력 보정이 이미 정확하다고 가정한 고정된 한 축에서 남은 가속도 바이어스 b_a=0.02 m/s²가 일정하고 초기 속도·위치 오차는 0이라고 하자. 속도 오차 Δv와 위치 오차 Δx는 다음과 같다.
10 s 뒤 Δv=0.2 m/s, Δx=1 m다. 5 s에서는 0.1 m/s와 0.25 m이므로 시간을 절반으로 줄이면 위치 오차가 1/4이 된다. 이는 실제 IMU 성능 예측이 아니라 일정 오차를 적분한 결과다. 실제로는 초기 상태, 변하는 바이어스, 잡음, 축 회전과 외부 보정 등이 함께 작용한다.
방향이 틀리면 중력을 운동 성분과 섞을 수 있다. 작은 기울기 오차 δθ=0.01 rad일 때 중력의 수평 누설 크기는 1차 근사로 g|δθ|≈9.81×0.01=0.0981 m/s²다. 이 성분이 한 축에 일정하게 남는다고 추가 가정하면 10 s 위치 오차 크기는 약 4.905 m다. 부호는 기울기와 축 규약에 따라 달라진다. 이 수치를 모든 운동에서의 오차 상한이나 실제 장치 정격으로 쓰지 않는다. 자세와 중력 분리가 중요한 이유를 보여 주는 국소 예다.
예측은 이어 가고 외부 관측은 제약을 더한다
관성 정보는 짧은 시간의 운동을 이어 추정하는 데 유용하지만 전역 위치를 독립적으로 고정하는 근거와는 다르다. LiDAR·영상·바퀴와 지도 관측을 결합할 때는 서로 다른 오차 특성을 이용할 수 있다. 예측은 운동 모델로 상태를 다음 시각으로 옮기는 일이고 보정은 새 관측이 주는 관계로 그 추정을 수정하는 일이다. 두 단계를 결합한 필터도 잘못된 시간·좌표·모델을 자동으로 고쳐 주지는 않는다.
robot_localization 공식 개념 문서는 운동 모델로 상태를 예측하고 센서 관측으로 보정하는 EKF/UKF 노드를 설명한다. 이 자료는 여기서 역할 참고로 사용하며 특정 Jazzy 파라미터 기본값이나 실제 실행을 확인한 것으로 쓰지 않는다. 아래 가중 예는 그 필터 전체가 아니라 같은 스칼라 양의 불확실성이 결합에 어떤 영향을 주는지 보는 계산이다.
가중 결합의 계산과 숨은 가정을 확인한다
같은 시각·같은 방향 기준에서 작은 yaw 두 추정값 θ_1=0.12 rad와 θ_2=0.02 rad를 얻었다고 하자. 둘은 같은 참각을 측정하며 무편향이고 서로 독립인 오차를 가진다는 합성 가정이다. 분산 v_1=0.04 rad², v_2=0.01 rad²를 알고 있다고 준다. 분산은 오차 제곱의 평균적 크기이며 표준편차는 그 제곱근이므로 각각 0.2 rad와 0.1 rad다.
그림 M15.05-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
가중치 w를 첫 값에 주고 1−w를 둘째에 주면 추정값은 θ̂=wθ_1+(1−w)θ_2다. 독립 조건에서 결합 분산은 w²v_1+(1−w)²v_2다. 이를 가장 작게 하는 w=v_2/(v_1+v_2)=0.2이므로 둘째 값에 0.8의 큰 가중치를 준다. 덜 불확실한 관측에 더 큰 가중치가 가는 것이다. 결과는 θ̂=0.2×0.12+0.8×0.02=0.04 rad, 분산은 0.008 rad², 표준편차는 약 0.08944 rad다.
분산이 작아졌다는 계산은 가정 안에서의 결과다. 두 값이 같은 IMU 자료를 재가공했거나 동일한 보정 오차를 공유하면 독립이 아니다. 이때 교차 공분산 항을 무시하면 확신을 과장할 수 있다. 둘 다 +0.1 rad의 공통 바이어스를 가진다면 가중합에도 +0.1 rad가 남는다. 불확실성 수치를 작게 써서 관측을 더 신뢰하게 만드는 것은 센서 품질을 개선하는 방법이 아니다.
또한 yaw는 원 위의 각도다. +179°와 −179°를 단순 평균해 0°로 만들면 반대 방향을 얻는다. 위 계산은 같은 각도 구간으로 국소적으로 펼친 두 값에 한정한다. 실제 큰 방향 변화는 각도 차이의 wrap이나 회전 표현을 고려해야 한다. 지도 기준과 IMU의 초기 yaw 기준이 다른 값을 곧바로 평균해서도 안 된다.
추적을 잃었을 때는 재위치추정의 근거가 필요하다
재위치추정은 기존 지도에서 현재 pose를 다시 찾는 문제다. 로봇을 옮겼거나 관측 추적을 잃은 뒤 이전 pose를 계속 믿을 수 없을 때 필요할 수 있다. 과거와 현재 사이에 같은 장소 관계를 추가하는 루프 폐쇄와 관련되지만, 재위치추정이 언제나 새 지도를 만들거나 전체 지도를 최적화한다는 뜻은 아니다. AMCL Jazzy 설명은 알려진 지도와 2D laser에서 pose를 추정하는 문제의 사례다.
서로 같은 모양의 지도 위치 A=10 m와 B=20 m에서 같은 거리 관측이 나온다고 하자. 로봇이 정지해 gyro가 0이라고 알려져도 두 전역 위치를 구분하지 못한다. '회전하지 않는다'는 관측이 '지도 어디에 있다'를 알려주지는 않기 때문이다. 구별되는 랜드마크의 ID와 지도 대응, 다른 시야의 관측 또는 별도 위치 기준이 필요하다. 어느 위치인지 모르면 둘 중 하나를 참값으로 고정하지 않고 후보와 미상을 유지한다.
재획득 후보는 센서·지도 버전, 좌표와 취득 시각, 새 관측에서의 일관성과 독립 기준으로 검증한다. map 보정이 바뀌었다고 실제 로봇이 순간 이동한 것으로 해석하지 않으며 이전 상태와 새 기준을 사용하는 자료를 구분한다. 기존 4.3 TF2 트리 설계와 6.2 정량 진단으로 연결해 보자. 아래 활동은 센서 융합과 재획득의 근거를 계산할 뿐 실제 필터나 위치 추정의 성능을 입증하지 않는다.