for Robot Artificial Inteligence

3. Represent 3D Rigid Body Transform using Quternion

|

Representation of the Rotation in 3D

  • 3차원 공간상에서의 회전의 표현 방법
    • Rotation Matrix
      • 좌표계 간의 회전 변환 관계를 나타내는 행렬
      • 3 DOF를 표현하기 위해 9개의 값을 사용하는 중복성 존재
      • 행렬식이 1인 orthogonal matrices이라는 제약 조건에 따라 최적화 문제에 대한 복잡도 증가
    • Euler angle(r,p,y로 표현)
      • 세 축을 중심으로 하는 순차적 회전을 통한 매우 직관적인 표현 방법
      • 특정 상황에서 1 자유도를 잃어버리는 짐벌락(Gimbal rock) 문제가 발생(예로, x축 = y축이 같아지는 현상)
      • 보간과 반복에 적합하지 않아 주로 결과의 신속한 가시화를 위해 사용
    • Quaternion
      • 4개의 값으로 이루어진 확장된 복소수 체계를 이용해 3차원 회전을 표현
      • 행렬에 비해 연산 속도가 빠르고, 차지하는 메모리 양도 적으며, 최단호(shortest arc) 보간으로 오류 발생률이 적다는 장점을 지님

Quaternion

  • definition of the Quaternion

  • 3차원 회전을 표현하기 위하여 확장된 복소수인 사원수(Quaternion)을 사용
  • 3차원 공간을 다루기 위해서는 4차원 공간이 필요
  • 실수부/스칼라부 Re(q) 와 허수부/벡터부 Im(q) 로 구성

  • Quaternion의 basis 간의 곱

Quaternion 특징

  • Quaternion을 이용한 회전
    • 3차원 공간 상의 한 점 p 에 대하여
    • p = [0,x,y,z]
    • n 벡터를 축으로 theta만큼 회전을 나타내는 단위 Quternion을 이용 하면

  • 3차원 공간상에서 회전된 점 p’ 을 계산 가능

  • 계산 결과 실수부는 0이 되고, 허수부의 세 요소는 회전 후의 3차원 점의 좌표로 표현

  • 회전 벡터(Rotation vector)와 Quaternion 간의 변환

Quaternion 구면 선형 보간

Euler Transformation, similarity Transformation, affine transformation, projection transformation comparison

Reference

SLAM KR 视觉SLAM书

Cmake Tutorial : https://github.com/TheErk/Cmake-tutorial.

Wiki

Comments