10.82 응용 분야별 최적 자세 표현 방법의 권장

10.82 응용 분야별 최적 자세 표현 방법의 권장

1. 응용 분야별 권장의 필요성

자세 표현 방법은 응용 분야의 특성에 따라 적합도가 달라진다. 자세 추정, 자세 제어, 운동 계획, 시뮬레이션, 사용자 인터페이스, 학습 등 다양한 영역에서 요구하는 특성이 서로 다르며, 한 가지 표현이 모든 응용에 최적인 것은 아니다. 응용 분야의 특성을 정확히 이해하고 그에 맞는 표현을 선택하면 알고리즘의 성능, 정확성, 안정성, 유지보수성이 모두 향상된다.

2. 자세 추정 분야

2.1 일반적 권장: 쿼터니언

자세 추정에서는 단위 쿼터니언이 사실상 표준이다. 다음과 같은 이유에서이다.

  • 짐벌 락이 없어 모든 자세 영역에서 안정적이다.
  • 적분이 단순하고 수치적으로 안정적이다.
  • 단위 노름 제약이 명확하고 처리 가능하다.

2.2 알고리즘별 권장

알고리즘권장 표현사유
확장 칼만 필터쿼터니언 + 정규화단위성 유지 필요
곱셈 EKF (MEKF)쿼터니언 + 미소 회전곱셈 갱신
오차 상태 KF (ESKF)쿼터니언 + 회전 벡터오차 상태 분리
무향 칼만 필터쿼터니언 + 시그마 점 처리다양체 구조
입자 필터쿼터니언다양한 분포 처리
마드윅 필터쿼터니언경사 하강 갱신
마호니 필터쿼터니언 또는 SO(3)비선형 보정

2.3 비주얼 SLAM과 시각적 관성 항법

시각적 SLAM과 시각적 관성 항법(VIO)에서는 쿼터니언과 회전 벡터가 모두 사용된다. 비선형 최적화에서는 회전 벡터가 자코비안 계산에 편리하지만, 큰 회전에서의 특이점에 주의해야 한다. 일반적으로 쿼터니언으로 상태를 유지하고, 갱신 시 미소 회전을 회전 벡터로 표현한다.

3. 자세 제어 분야

3.1 일반적 권장: 쿼터니언 또는 회전 행렬

자세 제어에서는 쿼터니언이 가장 일반적이며, 일부 고급 응용에서 회전 행렬 기반 기하학적 제어가 사용된다.

3.2 응용별 권장

응용권장 표현사유
드론 자세 안정화쿼터니언효율성과 안정성
곡예 비행쿼터니언 또는 SO(3)모든 자세에서 동작
우주선 자세 제어쿼터니언 또는 MRP큰 자세 변화 처리
매니퓰레이터 작업 공간 제어쿼터니언표준 인터페이스
보행 로봇 본체 자세 제어쿼터니언빠른 응답성
고정익 비행체쿼터니언 또는 오일러 각작은 자세 변화 가정 시 오일러 각

3.3 절대 피해야 할 경우

90도 이상의 자세 변화나 곡예 비행을 다루는 제어기에서 오일러 각은 짐벌 락 때문에 절대 사용해서는 안 된다.

4. 운동 계획과 경로 생성

4.1 일반적 권장: 쿼터니언

운동 계획에서 자세 보간이 필수이며, 쿼터니언의 SLERP이 부드러운 보간을 제공한다.

4.2 응용별 권장

응용권장 표현사유
단일 경유점 보간쿼터니언 (SLERP)측지선 보간
다중 경유점 보간쿼터니언 (Squad)부드러운 곡선
카메라 경로쿼터니언영화 효과
매니퓰레이터 작업 경로쿼터니언부드러운 자세 변화
시간 매개화쿼터니언 + 시간 함수동적 제약 처리
시간 최적 궤적쿼터니언 + 매개변수 최적화최적화 문제

5. 시뮬레이션과 게임 엔진

5.1 일반적 권장: 쿼터니언과 회전 행렬의 조합

시뮬레이션과 게임 엔진에서는 두 표현이 함께 사용된다. 쿼터니언은 자세 적분과 보간에, 회전 행렬은 GPU 렌더링에 사용된다.

5.2 주요 엔진의 채택

  • Unity: Quaternion 기본, Matrix4x4 렌더링
  • Unreal Engine: FQuat 기본, FMatrix 렌더링
  • Godot: Quat 기본, Basis 렌더링

5.3 물리 엔진

물리 엔진(Bullet, PhysX, ODE)은 쿼터니언으로 강체의 자세를 표현한다. 적분과 충돌 검출 모두에 사용된다.

6. 컴퓨터 비전과 그래픽스

6.1 일반적 권장: 분야에 따라 다양

컴퓨터 비전과 그래픽스에서는 응용에 따라 다양한 표현이 사용된다.

응용권장 표현
카메라 자세 추정회전 행렬 또는 쿼터니언
번들 조정회전 벡터
객체 자세 추정쿼터니언
6D 자세 학습분야별 최신 표현
키프레임 보간쿼터니언
GPU 변환4x4 행렬

6.2 신경망 기반 자세 추정

신경망에서 자세를 출력할 때 쿼터니언이 일반적이지만 단위 노름 제약이 학습을 어렵게 한다. 최근에는 6차원 표현(Zhou et al., 2019)이나 SVD 기반 표현이 제안되고 있다.

7. 사용자 인터페이스

7.1 일반적 권장: 오일러 각 (단, 내부는 쿼터니언)

사용자가 자세를 직접 입력하거나 시각적으로 확인할 때 오일러 각이 가장 직관적이다. 다만 내부 처리는 항상 쿼터니언으로 변환하여 수행한다.

7.2 응용별 권장

응용사용자 인터페이스내부 처리
드론 RC 컨트롤러오일러 각 (롤, 피치, 요)쿼터니언
매니퓰레이터 티칭오일러 각 또는 회전 행렬쿼터니언
3D 모델링 도구오일러 각쿼터니언
시뮬레이션 시각화오일러 각 + 좌표축쿼터니언
API 입출력쿼터니언 또는 오일러 각쿼터니언

8. 관성 항법과 우주공학

8.1 일반적 권장: 쿼터니언 또는 MRP

관성 항법과 우주공학에서는 큰 자세 변화와 정밀한 자세 추정이 필요하므로, 특이점이 없거나 적은 표현이 선호된다.

8.2 응용별 권장

응용권장 표현사유
위성 자세 결정쿼터니언표준
우주선 자세 제어쿼터니언 또는 MRP큰 자세 변화
미사일 항법쿼터니언곡예 운동
항공기 자세 추정쿼터니언안정성
잠수정 자세 제어쿼터니언6자유도 운동

9. 임베디드 시스템

9.1 일반적 권장: 쿼터니언

임베디드 시스템에서는 메모리와 계산 자원이 제약된다. 쿼터니언이 효율과 안정성의 균형을 제공한다.

9.2 마이크로컨트롤러별 고려사항

환경권장 표현데이터 형식
Cortex-M0/M3쿼터니언단정도 부동 소수점
Cortex-M4/M7 (FPU)쿼터니언단정도 또는 배정도
ESP32쿼터니언단정도
AVR 8비트회전 행렬 또는 오일러 각고정 소수점
FPGA회전 행렬 또는 쿼터니언고정 소수점

10. 인간 동작 분석

10.1 일반적 권장: 쿼터니언

인체의 관절 자세를 분석하는 응용에서는 쿼터니언이 표준이다.

10.2 응용별 권장

응용권장 표현
모션 캡처쿼터니언
스포츠 과학 분석쿼터니언
재활 치료 평가쿼터니언 또는 오일러 각
보행 분석쿼터니언
인체 동역학 시뮬레이션쿼터니언

11. 학습 기반 시스템

11.1 일반적 권장: 응용에 따라 다양

학습 기반 시스템에서는 자세 표현의 선택이 학습의 어려움에 영향을 준다.

11.2 권장 사항

  • 출력 자세: 6D 표현(Zhou et al.) 또는 단위 쿼터니언
  • 손실 함수: 측지 손실(geodesic loss) 또는 쿼터니언 거리
  • 학습 데이터 표현: 쿼터니언 또는 회전 행렬

11.3 회전 표현의 연속성

신경망의 출력으로 회전을 표현할 때 연속성이 중요하다. 쿼터니언은 이중 포복으로 인해 비연속적일 수 있으며, 6D 표현은 이를 해결한다.

12. 매니퓰레이터와 산업 자동화

12.1 일반적 권장: 쿼터니언

매니퓰레이터의 작업 공간 자세 표현에 쿼터니언이 가장 적합하다.

12.2 응용별 권장

응용권장 표현
픽 앤 플레이스쿼터니언
정밀 조립쿼터니언
용접쿼터니언
도장쿼터니언
가공쿼터니언 또는 회전 행렬
컴플라이언스 제어쿼터니언
임피던스 제어쿼터니언

13. 분포와 불확실성의 표현

13.1 권장 분포

자세의 불확실성을 표현하는 분포는 회전 다양체의 구조를 고려해야 한다.

분포적용 다양체응용
가우시안(접선 공간)\mathfrak{so}(3)EKF
Bingham\mathbb{S}^3쿼터니언 추정
von Mises-Fisher\mathbb{S}^3모드 추정
행렬 FisherSO(3)회전 행렬 추정

14. 권장 사항 결정 흐름

자세 표현을 선택할 때 다음의 흐름이 도움이 된다.

  1. 큰 자세 변화 또는 모든 자세 영역이 필요한가?
  • 그렇다면 쿼터니언 또는 회전 행렬을 사용한다.
  • 그렇지 않다면 오일러 각도 가능하다.
  1. 자세 적분이나 추정이 필요한가?
  • 그렇다면 쿼터니언이 표준이다.
  1. 자세 보간이 필요한가?
  • 그렇다면 쿼터니언과 SLERP을 사용한다.
  1. 사용자 인터페이스가 필요한가?
  • 그렇다면 오일러 각을 노출하되 내부 처리는 쿼터니언으로 한다.
  1. 메모리 또는 계산 효율이 우선인가?
  • 임베디드 환경에서 쿼터니언이 균형 잡힌 선택이다.
  1. 비선형 최적화가 필요한가?
  • 쿼터니언 또는 회전 벡터를 사용한다.
  1. 신경망 학습이 필요한가?
  • 출력 표현으로 6D 표현이나 단위 쿼터니언을 사용한다.

15. 기존 시스템과의 호환성

15.1 ROS와의 호환성

ROS 생태계와 통합하려면 쿼터니언이 표준이다. tf2, geometry_msgs 등 모든 인터페이스가 쿼터니언을 사용한다.

15.2 산업 표준과의 호환성

산업 매니퓰레이터의 표준 인터페이스는 회사마다 다르다. ABB, KUKA, FANUC 등은 각각 다른 자세 표현을 사용하며, 일부는 오일러 각, 일부는 쿼터니언을 사용한다.

15.3 라이브러리 호환성

Eigen, Sophus, manif 등 주요 라이브러리는 쿼터니언과 다른 표현 사이의 변환 함수를 제공한다. 호환성을 위해서는 변환 정확성을 검증해야 한다.

16. 미래의 발전과 권장의 변화

16.1 학습 기반 표현의 발전

신경망의 회전 표현 연구가 활발하며, 새로운 표현 방법이 제안되고 있다. 향후에는 학습 기반 응용에서 권장 표현이 변할 수 있다.

16.2 미분 가능 프로그래밍

미분 가능 프로그래밍의 발전으로 회전 다양체 위의 자동 미분이 가능해지고 있다. 이는 자세 표현 선택의 제약을 완화한다.

16.3 양자 컴퓨팅

양자 컴퓨팅에서 회전을 다루는 새로운 방법이 연구되고 있다. 양자 회로에서의 회전 표현이 미래의 한 방향이다.

17. 종합 권장

대부분의 로봇공학 응용에서 단위 쿼터니언이 가장 균형 잡힌 선택이다. 다음과 같은 이유에서이다.

  • 짐벌 락이 없어 모든 자세 영역에서 동작한다.
  • 매개변수가 4개로 효율적이다.
  • 회전 합성이 단순하다.
  • 매끄러운 보간이 가능하다.
  • 수치적으로 안정적이다.
  • 표준 라이브러리와 인터페이스에서 광범위하게 지원된다.

특별한 요구사항이 없는 한 쿼터니언을 기본으로 선택하고, 필요할 때만 다른 표현으로 변환하여 사용하는 것이 권장된다.

18. 참고 문헌

  • Diebel, J. (2006). “Representing attitude: Euler angles, unit quaternions, and rotation vectors.” Stanford University Technical Report.
  • Shuster, M. D. (1993). “A survey of attitude representations.” Journal of the Astronautical Sciences, 41(4), 439–517.
  • Zhou, Y., Barnes, C., Lu, J., Yang, J., & Li, H. (2019). “On the continuity of rotation representations in neural networks.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 5745–5753.
  • Markley, F. L., & Crassidis, J. L. (2014). Fundamentals of Spacecraft Attitude Determination and Control. Springer.
  • Sola, J., Deray, J., & Atchuthan, D. (2018). “A Micro Lie Theory for State Estimation in Robotics.” arXiv:1812.01537.

version: 1.0