Position, Orientation and Coordinate Transformations

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

Position

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

\[\begin{split}\boldsymbol{t} = \begin{bmatrix} x \\ y \\ z \end{bmatrix}\end{split}\]

Orientation

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

\[\begin{split}\boldsymbol{R} = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \\ \end{bmatrix}\end{split}\]

Pose

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

\[\begin{split}\boldsymbol{H} = \begin{bmatrix} \boldsymbol{R} & \boldsymbol{t}\\ 0 & 1\\ \end{bmatrix} = \begin{bmatrix} r_{11} & r_{12} & r_{13} & x\\ r_{21} & r_{22} & r_{23} & y\\ r_{31} & r_{32} & r_{33} & z\\ 0 & 0 & 0 & 1\\ \end{bmatrix}\end{split}\]

Roll-Pitch-Yaw

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

\[\boldsymbol{R}(\phi, \theta, \psi)\]

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

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

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

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

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

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

Axis-Angle / Rotation Vector

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

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

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

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

\[\boldsymbol{r} = \begin{bmatrix} r_x & r_y & r_z \end{bmatrix} = \begin{bmatrix} u_x \theta & u_y \theta & u_z \theta \end{bmatrix}\]

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

Unit Quaternion

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

\[\boldsymbol{q} = \begin{bmatrix} q_{w} & q_{x} & q_{y} & q_{z} \end{bmatrix}\]

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:

\[p^{a} = \boldsymbol{R}^{a}_{b} p^{b} + \boldsymbol{t}^{a}\]

두 프레임 사이의 포즈를 설명하는 homogeneous transformation matrix 를 사용해서 동일한 작업을 수행할 수 있습니다.

\[\widetilde{p}^{a} = \boldsymbol{H}^{a}_{b} \widetilde{p}^{b}\]

where \(\widetilde{p}^{a}\) and \(\widetilde{p}^{b}\) are homogeneous representations of the vectors \(p^{a}\) and \(p^{b}\), respectively.

The homogeneous transformation matrix \(\boldsymbol{H}^{a}_{b}\) in the above equation represents:

  • the operation that transforms a point \(p^{b}\) in frame \(b\) to a point \(p^{a}\) in frame \(a\) (coordinate transformation matrix)

  • the operation that expresses a point \(p^{b}\) 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.