본문 바로가기
On Going/Point Cloud Data

[IMU] What is an IMU(Inertial Measurement Unit)- 관성측정 장치?

by 에아오요이가야 2026. 3. 22.

IMU란?
  컴퓨터보다 오래된 기계장치. 관성을 이용해 움직임을 측정하는 센서 모듈.
---                                                                        

  3대 센서

센서 측정하는것
Accelerometer(가속도계) 3축 선형 가속도(x,y,z) + 중력 3축
Gyroscope(자이로스코프) 3축 각속도(roll, pitch, yaw 회전 속도) 3축
Magnetometer(자력계) 자기장 방향(나침반 역할) 선택사항

 

- Accelerometer + Gyroscope = IMU (6축)                                        

- Accelerometer + Gyroscope + Magnetometer = AHRS (9축, Attitude and Heading   Reference System)
---                                                                           

 IMU가 아는 것과 모르는 것

구분 내용
직접 아는 것 가속도, 회전 속도
계산으로 추정하는 것 기울기 (중력 방향으로부터), 자세 변화
잘 못 아는것 절대 위치 ( 적분 오차 누적이 심함)

---                         

LiDAR 전처리에서 IMU가 쓰이는 두 지점
1. Deskew — 시간 축 보정
 ▎"스캔 도는 동안 로봇이 움직여서 생긴 찌그러짐을 펴준다"

 

LiDAR는 한 바퀴 스캔하는 데 ~100ms가 걸린다.

그 사이에 로봇이 움직이면 포인트마다 찍힌 위치 기준이 달라져서 점군이 찌그러진다.

 

IMU 데이터로 보정하는 원리:
각속도 (gyroscope) → 적분 → 회전량 (orientation) : "이 시간 동안 얼마나 돌았나"
가속도 (accelerometer) → 중력 제거 → 적분 1번 → 속도 → 적분 2번 → 위치 변화 : "이 시간 동안 얼마나 이동했나"

 

 스캔 한 바퀴 동안 IMU 데이터를 시간순으로 쌓아서 각 포인트의 자세를 보간한다:


t=0ms    점A 찍힘 → IMU 상태: (x0, y0, z0, roll0, pitch0, yaw0)                

t=10ms   점B 찍힘 → IMU 적분: (x1, y1, z1, roll1, pitch1, yaw1)                

t=50ms   점C 찍힘 → IMU 적분: (x2, y2, z2, roll2, pitch2, yaw2)           

     ...                                                                           

 t=100ms  점Z 찍힘 → IMU 적분: (xN, yN, zN, rollN, pitchN, yawN)
                

각 포인트를 해당 시점의 IMU 자세로 역보정하면 → "마치 한 순간에 다 찍힌 것처럼" 깨끗한 점군이 된다.
                                                    

2. Gravity Alignment — 공간 축 보정
                                            

▎ "센서가 기울어져 있으니 중력 기준으로 수평을 맞춘다"

 

로봇이 가만히 있으면 가속도계가 측정하는 건 중력뿐이다 (9.8 m/s²).
- IMU가 수평이면 → Z축으로 9.8 측정
- IMU가 기울어져 있으면 → X, Y, Z에 9.8이 분산되어 측정

  이 3축 가속도의 비율로 "중력이 센서 기준으로 어느 방향인지" → "센서가 얼마나 기울어져 있는지" 역산할 수 있다.

  코드에 calibration_time = 3.0 같은 설정이 있는 이유가 이것이다 — 시작할 때 잠깐 가만히 있으면서 중력 방향을 평균내서 잡는다.

  ---
  핵심 구분

  Deskew Gravity Alignment
보정 축 시간 축 공간 축
문제 스캔 중 로봇이 움직여서 점군이 찌그러짐 센서 좌표계의 Z축이 실제 중력과 불일치
해결 각 포인트를 찍힌 시점의 자세로 역보정 좌표 프레임 자체를 회전시켜 중력 정렬
IMU 사용 각속도 적분 + 가속도 이중적분 정지 시 가속도 벡터로 중력 방향 추출

 

  ---
  주의사항

  - 가속도 이중적분의 한계: 이론적으로 위치를 구할 수 있지만 드리프트가 심하다.
   Deskew 수준(~100ms)에서는 쓸 만하지만, 수 초 이상 적분하면 오차가 급격히
  발산한다.
  - 실제 시스템의 구조: 위치는 LiDAR 매칭(ICP 등)으로 잡고, IMU는 그 사이사이
  짧은 구간의 보간용으로 쓰는 것이 일반적이다.
  - Gravity Alignment 업데이트: 초기 캘리브레이션 1회로 끝나는 게 아니라,
  런타임에도 가속도 크기가 ~9.8에 가까울 때(정지 상태)만 골라서 지속 보정하는
  시스템도 있다. 움직이는 중에는 관성 가속도가 섞여 중력 방향을 깨끗하게
  분리하기 어렵기 때문이다.

댓글