Position, Orientation and Coordinate Transformations

좌표 프레임은 강체에 부착되어 강체 사이의 상대 포즈(위치 및 방향)를 나타냅니다. 그런 다음 이 두 좌표 프레임 간의 기하학적 관계가 지정됩니다.

Position

다른 프레임에 대한 한 프레임의 원점 위치는 translation vector (3x1)로 설명할 수 있습니다. :

t=[xyz]

Orientation

한 좌표 프레임의 다른 프레임에 대한 방향은 rotation matrix (3x3) 로 설명할 수 있습니다.

R=[r11r12r13r21r22r23r31r32r33]

Pose

homogeneous transformation matrix (4x4)는 동시에 다른 좌표 프레임을 기준으로 한 좌표 프레임의 위치와 방향을 나타냅니다.

H=[Rt01]=[r11r12r13xr21r22r23yr31r32r33z0001]

Roll-Pitch-Yaw

강성 차체는 최대 3개의 회전 자유도를 갖습니다. 즉, 임의의 강성 차체 방향을 설명하는 데는 세 개의 독립적인 양만 있으면 충분합니다. 이러한 방향의 최소 표현 중 하나는 roll-pitch-yaw representation 표현이며, roll (ϕ), pitch (θ), 및 yaw (ψ) 각도로 정의됩니다.:

R(ϕ,θ,ψ)

롤-피치-요(roll-pitch-yaw) 표현의 장점은 3개의 값만 필요하다는 것입니다. 이러한 값은 다른 표현에 비해 기하학적으로 이해하기 쉽습니다. 단점은 다음과 같습니다.:

  • 값이 연속적이지 않습니다.

  • 최종 방향은 다음에 따라 다릅니다.

    • 회전을 적용하는 순서입니다.

    • 이동 축(intrinsic rotations) 또는 고정 축(extrinsic rotations)에 대한 회전 적용.

롤-피치-요(roll-pitch-yaw) 표현은 로봇 공급업체 사이에서 일반적입니다. 그러나 모든 로봇 공급업체가 동일한 규칙을 가정하는 것은 아닙니다. 롤-피치-요 각도를 다른 표현으로 변환하려면 규칙, 즉 회전 순서와 회전 순서가 고유한지 외부적인지를 이해하는 것이 필요합니다.

Axis-Angle / Rotation Vector

Axis-angle 표현은 다음을 설명합니다.

  • 회전 방향의 축을 나타내는 단위 벡터(u)에 의한 회전입니다.

  • 각도(θ)는 축에 대한 회전의 크기를 설명합니다.

총 4개의 매개 변수가 있습니다. 단위 벡터의 각 요소에 각도를 곱하는 것은 파라미터의 수를 최소화하기 위한 일반적인 방법이며, 그 결과는 회전 벡터(r)입니다.:

r=[rxryrz]=[uxθuyθuzθ]

롤-피치-요 각도보다 축-각도 표현의 장점은 연속성과 회전 순서 문제가 없다는 것입니다. 그러나 물리적인 방향과 회전 벡터의 수치를 일치시키는 것은 어렵습니다. 또 다른 단점은 3D 포인트에 직접 회전을 적용할 수 없다는 것입니다. 이를 위해서는 다른 표현으로의 변환이 필요합니다.

Unit Quaternion

Unit quaternions 4개의 매개변수로 축 각도 표현을 인코딩하는 간단하지만 강력한 방법을 나타냅니다.

q=[qwqxqyqz]

Unit quaternions은 회전 행렬보다 더 간결하고 수치적으로 안정적이며 효율적이기 때문에 두 좌표 프레임 간의 방향을 나타내는 가장 좋은 방법으로 간주됩니다. 롤-피치-요(roll-pitch-yaw) 표현과 비교할 때 Unit quaternions은 gimbal lock(방향을 고유하게 표현하는 것이 불가능)을 겪지 않습니다. 또한 축-각도 표현과 달리 Unit quaternions을 3차원 점에 직접 적용할 수 있습니다.

Coordinate Transformations

Any coordinate transformation of a rigid body in 3D can be described with a rotation and a translation. For example, it is possible to transform a point (or a point cloud) from one coordinate frame (b) to another coordinate frame (a). This can be performed with a rotation matrix and a translation vector:

pa=Rbapb+ta

The same can be done with a homogeneous transformation matrix describing the pose between the two frames:

p~a=Hbap~b

where p~a and p~b are homogeneous representations of the vectors pa and pb, respectively.

The homogeneous transformation matrix Hba in the above equation represents:

  • the operation that transforms a point pb in frame b to a point pa in frame a (coordinate transformation matrix)

  • the operation that expresses a point pb defined relative to frame b as it would be defined relative to frame a (coordinate transformation matrix)

  • the pose (position and orientation) of frame b with respect to frame a

  • the transform (position and orientation) from frame a to frame b expressed as a homogenous transformation matrix

In code samples, we use the following notation for this transformation matrix: a_to_b_transform or b_pose_in_a_frame.