주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

Rotation Angles to Quaternions

회전 각도로부터 쿼터니언 계산

  • Rotation Angles to Quaternions block

라이브러리:
Aerospace Blockset / Utilities / Axes Transformations

설명

Rotation Angles to Quaternions 블록은 세 개의 회전 각도(R1, R2, R3)로 표현된 회전을 4개 요소로 구성된 쿼터니언 벡터(q0, q1, q2, q3)로 변환합니다. 여기서 쿼터니언은 스칼라 우선 규칙을 사용하여 정의됩니다. Aerospace Blockset™는 스칼라 우선 규칙을 사용하여 정의된 쿼터니언을 사용합니다. Rotation Order 블록 파라미터는 회전 순서와 입력값 내 회전 각도의 순서를 모두 지정합니다. 예를 들어, Rotation Order의 값이 ZYX라면, 블록 입력의 회전 순서는 z-y-x (요, 피치, 롤) 순서가 됩니다. 회전 각도는 오른손 법칙에 따른 프레임 A에서 프레임 B로의 일련의 내재적 수동 변환을 나타냅니다. 결과 쿼터니언은 오른손 법칙에 따른 프레임 A에서 프레임 B로의 수동 회전을 나타냅니다. 쿼터니언에 대한 자세한 내용은 알고리즘 항목을 참조하십시오.

제한 사항

  • ZYX, ZXY, YXZ, YZX, XYZ, XZY 구현의 제한 사항으로 인해 R2 각도를 ±90도 사이로 생성하며, R1 및 R3 각도는 ±180도 사이로 생성합니다.

  • ZYZ, ZXZ, YXY, YZY, XYX, XZX 구현의 제한 사항으로 인해 R2 각도는 0도에서 180도 사이, R1 및 R3 각도는 ±180도 사이로 생성합니다.

포트

입력

모두 확장

회전 각도로, 라디안 단위의 3×1 벡터로 지정됩니다.

데이터형: double

출력

모두 확장

쿼터니언으로, 4×1 벡터 형태로 반환됩니다.

데이터형: double

파라미터

모두 확장

세 개의 입력 회전 각도에 대한 회전 순서를 지정합니다.

프로그래밍 방식 사용

블록 파라미터: rotationOrder
유형: 문자형 벡터
: 'ZYX' | 'ZYZ' |'ZXY' | 'ZXZ' | 'YXZ' | 'YXY' | 'YZX' | 'YZY' | 'XYZ' | 'XYX' | 'XZY' | 'XZX'
디폴트 값: 'ZYX'

알고리즘

쿼터니언 벡터는 단위 벡터 (μx,μy,μz)를 중심으로 각도 θ만큼 회전한 것을 나타냅니다. 단위 쿼터니언은 크기가 1이며, 다음과 같은 벡터 형식으로 표현될 수 있습니다:

q=[q0q1q2q3]=[cos(θ/2)sin(θ/2)μxsin(θ/2)μysin(θ/2)μz]

쿼터니언의 또 다른 표현은 복소수 형태입니다.

q=q0+iq1+jq2+kq3

여기서 곱셈을 위해 다음이 적용됩니다.

i2=j2=k2=1ij=ji=kjk=kj=iki=ik=j

이 방식으로 쿼터니언을 표현하는 장점은 두 번 이상의 회전 후 결과 변환을 쿼터니언 곱으로 쉽게 표현할 수 있다는 점입니다.

확장 기능

모두 확장

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2007b에 개발됨