6.82 말단 장치의 위치와 자세 표현

로봇 매니퓰레이터의 궁극적인 목적은 말단 장치(end-effector)를 원하는 위치와 자세로 배치하는 것이다. 이를 위해서는 말단 장치의 공간 상태를 수학적으로 엄밀하게 표현할 수 있어야 한다. 본 절에서는 강체 변환의 이론적 기반 위에서 말단 장치의 위치와 자세를 동차 변환 행렬, 회전 행렬, 위치 벡터 등을 결합하여 표현하는 방법론을 다룬다.

1. 말단 장치 좌표계의 정의

말단 장치의 공간 상태를 기술하기 위해서는 먼저 말단 장치에 부착된 좌표계(tool frame 또는 end-effector frame)를 정의하여야 한다. 기준 좌표계(base frame) \{0\}에 대하여 말단 장치 좌표계 \{n\}의 위치와 자세는 다음의 두 가지 요소로 구성된다.

  • 위치(position): 기준 좌표계 원점에서 말단 장치 좌표계 원점까지의 변위를 나타내는 3차원 위치 벡터
  • 자세(orientation): 기준 좌표계의 축 방향에 대한 말단 장치 좌표계의 축 방향 배치를 나타내는 회전 상태

위치는 3개의 독립적인 매개변수(3 자유도)로, 자세는 3개의 독립적인 매개변수(3 자유도)로 표현되므로, 3차원 공간에서 말단 장치의 완전한 상태 기술에는 총 6 자유도가 필요하다.

2. 위치 벡터에 의한 위치 표현

기준 좌표계 \{0\}에 대한 말단 장치 좌표계 \{n\}의 원점 위치는 3차원 위치 벡터로 표현한다.

\mathbf{p}_n^0 = \begin{bmatrix} p_x \\ p_y \\ p_z \end{bmatrix} \in \mathbb{R}^3

여기서 p_x, p_y, p_z는 각각 기준 좌표계의 x, y, z 축 방향 성분이다. 다관절 로봇에서 이 위치 벡터는 각 관절 변수 \mathbf{q} = [q_1, q_2, \dots, q_n]^\top의 함수로 표현되며, 이를 순기구학(forward kinematics) 관계식이라 한다.

\mathbf{p}_n^0 = f(\mathbf{q})

3. 회전 행렬에 의한 자세 표현

말단 장치 좌표계 \{n\}의 자세는 기준 좌표계 \{0\}에 대한 3 \times 3 회전 행렬로 표현한다.

R_n^0 = \begin{bmatrix} \mathbf{n} & \mathbf{s} & \mathbf{a} \end{bmatrix} = \begin{bmatrix} n_x & s_x & a_x \\ n_y & s_y & a_y \\ n_z & s_z & a_z \end{bmatrix} \in SO(3)

여기서 \mathbf{n}, \mathbf{s}, \mathbf{a}는 각각 말단 장치 좌표계의 x, y, z 축 방향을 기준 좌표계에서 표현한 단위 벡터이다. 로봇 공학에서 관례적으로 다음과 같이 명명한다.

기호명칭의미
\mathbf{n}법선 벡터(normal)말단 장치의 접근 평면에 수직인 방향
\mathbf{s}슬라이딩 벡터(sliding)그리퍼 손가락의 슬라이딩 방향
\mathbf{a}접근 벡터(approach)말단 장치가 대상물에 접근하는 방향

회전 행렬 R_n^0는 특수 직교군 SO(3)의 원소로서 다음의 조건을 만족한다.

R_n^{0\top} R_n^0 = I_3, \quad \det(R_n^0) = +1

이 직교성 조건과 행렬식 조건은 9개의 행렬 성분에 대해 6개의 구속 조건을 부과하므로, 실질적으로 3개의 독립 매개변수만으로 자세를 결정할 수 있다.

4. 동차 변환 행렬에 의한 통합 표현

말단 장치의 위치와 자세를 하나의 수학적 구조로 통합하여 표현하기 위해 4 \times 4 동차 변환 행렬(homogeneous transformation matrix)을 사용한다.

T_n^0 = \begin{bmatrix} R_n^0 & \mathbf{p}_n^0 \\ \mathbf{0}^\top & 1 \end{bmatrix} = \begin{bmatrix} n_x & s_x & a_x & p_x \\ n_y & s_y & a_y & p_y \\ n_z & s_z & a_z & p_z \\ 0 & 0 & 0 & 1 \end{bmatrix} \in SE(3)

이 행렬은 특수 유클리드 군 SE(3)의 원소이며, 회전과 병진을 단일 행렬 연산으로 결합한다. n개의 관절을 가진 직렬 매니퓰레이터에서 말단 장치의 동차 변환 행렬은 각 링크 간 변환 행렬의 연쇄 곱으로 계산된다.

T_n^0 = T_1^0 \, T_2^1 \, T_3^2 \cdots T_n^{n-1} = \prod_{i=1}^{n} T_i^{i-1}

여기서 T_i^{i-1}은 좌표계 \{i-1\}에서 좌표계 \{i\}로의 동차 변환 행렬이며, Denavit-Hartenberg 파라미터를 이용하여 체계적으로 구성할 수 있다.

5. 오일러 각에 의한 자세의 매개변수 표현

회전 행렬의 9개 성분 대신, 3개의 독립적인 각도 매개변수로 자세를 표현할 수 있다. 대표적으로 ZYZ 오일러 각 (\phi, \theta, \psi)를 사용하면 회전 행렬을 다음과 같이 분해한다.

R = R_z(\phi) \, R_y(\theta) \, R_z(\psi)

이를 전개하면 다음과 같다.

R = \begin{bmatrix} c\phi \, c\theta \, c\psi - s\phi \, s\psi & -c\phi \, c\theta \, s\psi - s\phi \, c\psi & c\phi \, s\theta \\ s\phi \, c\theta \, c\psi + c\phi \, s\psi & -s\phi \, c\theta \, s\psi + c\phi \, c\psi & s\phi \, s\theta \\ -s\theta \, c\psi & s\theta \, s\psi & c\theta \end{bmatrix}

여기서 c\phi = \cos\phi, s\phi = \sin\phi 등의 약칭을 사용하였다. 오일러 각 표현은 직관적이나, \theta = 0 또는 \theta = \pi인 경우 짐벌 락(gimbal lock) 특이점이 발생하여 \phi\psi를 독립적으로 결정할 수 없게 되는 한계가 존재한다.

6. 롤-피치-요 각에 의한 자세 표현

고정 축 회전(fixed-axis rotation) 방식으로 자세를 표현하는 롤-피치-요(roll-pitch-yaw) 각 (\gamma, \beta, \alpha)도 널리 사용된다. 이 경우 회전 행렬은 다음과 같이 구성된다.

R = R_z(\alpha) \, R_y(\beta) \, R_x(\gamma)

여기서 \alpha, \beta, \gamma는 각각 z축(요), y축(피치), x축(롤)에 대한 회전각이다. 이동 로봇 및 항공기 분야에서 특히 많이 채택되며, 마찬가지로 \beta = \pm \pi/2에서 특이점이 발생한다.

7. 축-각 표현과 로드리게스 공식

임의의 회전은 하나의 회전축 \hat{\mathbf{k}} \in \mathbb{R}^3 (\|\hat{\mathbf{k}}\| = 1)과 그 축에 대한 회전각 \theta로 표현할 수 있다. 로드리게스(Rodrigues) 공식에 의하면 이에 대응하는 회전 행렬은 다음과 같다.

R(\hat{\mathbf{k}}, \theta) = I_3 + \sin\theta \, [\hat{\mathbf{k}}]_\times + (1 - \cos\theta) \, [\hat{\mathbf{k}}]_\times^2

여기서 [\hat{\mathbf{k}}]_\times\hat{\mathbf{k}} = [k_x, k_y, k_z]^\top의 반대칭 행렬(skew-symmetric matrix)이다.

[\hat{\mathbf{k}}]_\times = \begin{bmatrix} 0 & -k_z & k_y \\ k_z & 0 & -k_x \\ -k_y & k_x & 0 \end{bmatrix}

축-각 표현은 짐벌 락 문제가 없으며, 리 군 SO(3)과 리 대수 \mathfrak{so}(3) 사이의 지수 사상(exponential map)과 직접적으로 연결된다.

R = \exp(\theta \, [\hat{\mathbf{k}}]_\times)

8. 단위 쿼터니언에 의한 자세 표현

단위 쿼터니언(unit quaternion) \mathbf{q} = (q_0, q_1, q_2, q_3), \|\mathbf{q}\| = 1을 이용한 자세 표현은 특이점이 없고 보간이 용이하여 로봇 제어 및 컴퓨터 그래픽스 분야에서 광범위하게 활용된다. 축-각 표현 (\hat{\mathbf{k}}, \theta)와의 관계는 다음과 같다.

\mathbf{q} = \left(\cos\frac{\theta}{2}, \; \hat{\mathbf{k}} \sin\frac{\theta}{2}\right)

단위 쿼터니언으로부터 회전 행렬로의 변환은 다음과 같이 이루어진다.

R = \begin{bmatrix} 1 - 2(q_2^2 + q_3^2) & 2(q_1 q_2 - q_0 q_3) & 2(q_1 q_3 + q_0 q_2) \\ 2(q_1 q_2 + q_0 q_3) & 1 - 2(q_1^2 + q_3^2) & 2(q_2 q_3 - q_0 q_1) \\ 2(q_1 q_3 - q_0 q_2) & 2(q_2 q_3 + q_0 q_1) & 1 - 2(q_1^2 + q_2^2) \end{bmatrix}

쿼터니언 표현의 주요 장점은 다음과 같다.

  • 짐벌 락 특이점이 존재하지 않는다
  • 4개의 매개변수와 1개의 구속 조건(\|\mathbf{q}\| = 1)으로 표현되어 수치적 안정성이 우수하다
  • 구면 선형 보간(SLERP: Spherical Linear Interpolation)을 통한 부드러운 자세 보간이 가능하다
  • 연속적인 회전의 합성이 쿼터니언 곱으로 효율적으로 수행된다

9. 작업 공간 벡터에 의한 말단 장치 상태 기술

말단 장치의 완전한 공간 상태는 위치와 자세를 결합한 작업 공간 벡터(task-space vector)로 기술할 수 있다. 오일러 각 또는 롤-피치-요 각을 사용하는 경우 다음과 같이 6차원 벡터로 표현한다.

\mathbf{x} = \begin{bmatrix} \mathbf{p} \\ \boldsymbol{\Phi} \end{bmatrix} = \begin{bmatrix} p_x \\ p_y \\ p_z \\ \phi_1 \\ \phi_2 \\ \phi_3 \end{bmatrix} \in \mathbb{R}^6

여기서 \mathbf{p} \in \mathbb{R}^3는 위치 벡터, \boldsymbol{\Phi} \in \mathbb{R}^3는 자세를 나타내는 각도 매개변수 벡터이다. 이 표현은 자코비안 행렬을 이용한 미분 기구학 관계에서 핵심적인 역할을 한다.

\dot{\mathbf{x}} = J(\mathbf{q}) \, \dot{\mathbf{q}}

여기서 J(\mathbf{q}) \in \mathbb{R}^{6 \times n}는 자코비안 행렬, \dot{\mathbf{q}} \in \mathbb{R}^n는 관절 속도 벡터이다.

10. 자세 표현 방법의 비교

말단 장치의 자세를 표현하는 다양한 방법의 특성을 비교하면 다음과 같다.

표현 방법매개변수 수특이점보간 용이성합성 연산
회전 행렬9 (6 구속)없음불편행렬 곱
오일러 각3있음보통행렬 곱으로 변환 필요
롤-피치-요3있음보통행렬 곱으로 변환 필요
축-각4 (1 구속)\theta = 0보통로드리게스 공식
단위 쿼터니언4 (1 구속)없음SLERP쿼터니언 곱

실제 로봇 시스템에서는 응용 목적에 따라 적절한 표현 방법을 선택하여야 한다. 경로 계획 및 보간에는 쿼터니언이, 기구학 모델링에는 동차 변환 행렬이, 직관적 지정에는 오일러 각이 각각 유리하다.


11. 참고 문헌

  • Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control. 3rd ed. Pearson Prentice Hall.
  • Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
  • Spong, M. W., Hutchinson, S., & Vidyasagar, M. (2006). Robot Modeling and Control. John Wiley & Sons.
  • Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
  • Corke, P. (2017). Robotics, Vision and Control: Fundamental Algorithms in MATLAB. 2nd ed. Springer.

v 0.1