본문 바로가기
🤖 Robotics, 로봇/SLAM

[SLAM 기초] 회전표현(Rotation Representation)

by 테크옵저버 2025. 10. 7.
  • Pose & Map 정보는 “회전(Rotation)과 이동(Translation)”이라는 파라미터로 구성
  • 이동 파라미터는 다루기 쉬움, but 회전 파라미터는 표현법도 다양하고 다루기 어려움

1. 회전행렬 (Rotation Matrix)

  • 3-DoF 존재하지만, 실제로는 9개 원소를 이용해 회전 표현함(3x3 Matrix)
  • $R^-1 = R^T, |R|=1$
  • 열벡터(Column Vector) 의 크기는 1 → 정규성(Normality)
  • 다른 열과의 내적 = 0 → 직교성(Orthogonality)

→ 정규직교성(Orthonomality)

 

2. 오일러 각 표현(Euler angle representation)

  • Roll(φ) : Rotation about the x-axis
  • Pitch(θ) : Rotation about the y-axis
  • Yaw(ψ) : Rotation about the z-axis

특징

  • 짐벌락 현상이 발생하면, 아무리 값을 바꾸어도 해가 업데이트 안됨
  • 불연속성(Discontinuity)이 있음. 각도를 나타날때 주기성이 있으므로 하나의 각도에 대해 여러가지 값을 가질 수 있음 → 주기성에 의해 값이 불연속적으로 변화하는 구건 발생하기 때문에, 최적화 관점에서 자코비안 행렬을 구할때 수치적으로 불안전한 상태됨

 

 

3. 축-각도 표현(Axis-angle representation)

  • 4개 파라미터(3차원 벡터 + 1차원 회전각) 필요 or 3개의 파라미터(3차원 벡터 크기값으로 회전각 표현)
  • 축-각도 표현에서 회전행렬로 변환시 → 로드리게스 공식(Rodrigues formula)
  • 각도 θ값이 0일 경우, 회전이 없다는 의미이므로, 축이 어떻게 정의되든지 상관없게 되어 특이점 문제 발생
  • 각도 θ값이 π일 경우, 회전축 방향이 정확히 반대가 된 위치와 동일하므로 모호성 문제 발생(Ambiguity)

4. 사원수(Quaternion)

  • 3개의 허수(Complex number) 과 1개의 실수(Real number)를 이용해 회전 표현 → 다른 방법들에 비해 최적화 관점에서 좋음
  • 하나의 사원수 값은 하나의 회전을 표현한다는 유일성 → 불연속 구간 존재X
  • 짐벌락 같은 특이점 존재하지 않음 → 최적화시 수치적 불안정 유발 X

Summary

  • 공간 복잡도면에서 오일러 각이 가장 효율(파라미터 수 적음) → 임베디드 환경
  • 유일성 측면에서는 회전행렬과 사원수가 좋음(최적화 관점에서 불연속 구간 X)
  • 수치해석 불안정성 측면에서 오일러, 축-각도가 불리함
구분 Parameter 직관성&이해 회전표현 유일성 특이점 존재유무
회전행렬(Rotation Matrix) 9 X O X
오일러 각 표현(Euler angle) 3 O X O
축-각도 표현(Axis-angle) 4(3) X X O
사원수(Quanternion) 4(3) X O X