6.11 벡터 연산의 로봇 기구학 응용
1. 벡터 연산과 로봇 기구학의 관계
로봇 기구학(robot kinematics)은 로봇 링크와 관절의 기하학적 관계를 다루는 분야로서, 모든 분석이 3차원 공간에서의 벡터 연산을 기반으로 수행된다. 본 절에서는 앞서 다룬 내적, 외적, 사영, 직교 분해 등의 벡터 연산이 로봇 기구학의 구체적 문제에서 어떻게 적용되는지를 체계적으로 기술한다.
2. 위치와 자세의 벡터 표현
2.1 점의 위치 벡터
3차원 공간에서 점의 위치는 기준 좌표계에 대한 위치 벡터(position vector)로 표현된다. 좌표계 \{A\}에 대한 점 P의 위치 벡터는 다음과 같이 표기한다.
{}^A\mathbf{p} = \begin{bmatrix} p_x \\ p_y \\ p_z \end{bmatrix}
여기서 좌측 상첨자 A는 벡터가 표현된 기준 좌표계를 명시한다. 로봇공학에서는 일반적으로 월드 좌표계, 로봇 베이스 좌표계, 링크 좌표계, 말단 장치 좌표계, 센서 좌표계 등 다수의 좌표계를 동시에 다루므로 이 표기 규약은 모호성을 방지하는 데 필수적이다.
강체의 자세
3차원 공간에서 강체의 자세는 단위 벡터로 구성된 직교 정규 기저로 표현된다. 좌표계 \{B\}의 세 축 방향 단위 벡터를 \hat{\mathbf{x}}_B, \hat{\mathbf{y}}_B, \hat{\mathbf{z}}_B라 하면, 이들은 다음 조건을 만족한다.
\hat{\mathbf{x}}_B \cdot \hat{\mathbf{y}}_B = 0, \quad \hat{\mathbf{y}}_B \cdot \hat{\mathbf{z}}_B = 0, \quad \hat{\mathbf{z}}_B \cdot \hat{\mathbf{x}}_B = 0
\|\hat{\mathbf{x}}_B\| = \|\hat{\mathbf{y}}_B\| = \|\hat{\mathbf{z}}_B\| = 1
\hat{\mathbf{x}}_B \times \hat{\mathbf{y}}_B = \hat{\mathbf{z}}_B \quad (\text{우수 좌표계})
이 세 단위 벡터를 기준 좌표계에서 표현한 것을 열로 가지는 행렬이 회전 행렬이다.
{}^A R_B = \begin{bmatrix} {}^A\hat{\mathbf{x}}_B & {}^A\hat{\mathbf{y}}_B & {}^A\hat{\mathbf{z}}_B \end{bmatrix}
두 좌표계 간의 점 변환
좌표계 \{B\}에 대한 점 P의 위치를 좌표계 \{A\}에 대한 위치로 변환하는 식은 회전과 병진의 결합으로 표현된다.
{}^A\mathbf{p} = {}^A R_B \cdot {}^B\mathbf{p} + {}^A\mathbf{p}_{B_{\text{org}}}
여기서 {}^A\mathbf{p}_{B_{\text{org}}}는 좌표계 \{B\}의 원점을 좌표계 \{A\}에서 표현한 위치 벡터이다.
3. 회전 관절에 의한 운동
3.1 회전축과 점의 운동
회전 관절(revolute joint)이 단위 벡터 \hat{\mathbf{z}} 방향의 축에 대해 각속도 \dot{\theta}로 회전할 때, 회전축으로부터 위치 벡터 \mathbf{r}에 있는 점의 선속도는 외적으로 계산된다.
\mathbf{v} = \dot{\theta} \hat{\mathbf{z}} \times \mathbf{r} = \boldsymbol{\omega} \times \mathbf{r}
여기서 \boldsymbol{\omega} = \dot{\theta}\hat{\mathbf{z}}는 각속도 벡터이다. 이 식은 강체 운동학에서 가장 기본적인 관계 중 하나이며, 자코비안 행렬의 회전 관절 열벡터 계산에 사용된다.
회전 관절의 자코비안 기여
DH 규약에 따른 매니퓰레이터에서, 회전 관절 i가 말단 장치 위치 \mathbf{p}_e에 미치는 자코비안의 선속도 부분은 다음과 같이 계산된다.
J_{v,i} = \mathbf{z}_{i-1} \times (\mathbf{p}_e - \mathbf{p}_{i-1})
여기서 \mathbf{z}_{i-1}은 i번째 관절축의 단위 벡터이고, \mathbf{p}_{i-1}은 i번째 관절 좌표계의 원점 위치이다. 회전 관절의 각속도 부분은 단순히 관절축 방향이다.
J_{\omega,i} = \mathbf{z}_{i-1}
직동 관절에 의한 운동
직동 관절(prismatic joint)이 단위 벡터 \hat{\mathbf{z}} 방향으로 속도 \dot{d}로 이동할 때, 강체의 모든 점은 동일한 속도로 이동한다.
\mathbf{v} = \dot{d}\hat{\mathbf{z}}
직동 관절 i의 자코비안 기여는 다음과 같다.
J_{v,i} = \mathbf{z}_{i-1}, \quad J_{\omega,i} = \mathbf{0}
직동 관절은 회전이 없으므로 각속도 부분이 영벡터이다.
두 점 사이의 벡터와 거리
두 점 P_1과 P_2 사이의 변위 벡터(displacement vector)는 단순히 두 위치 벡터의 차이이다.
\mathbf{d}_{12} = \mathbf{p}_2 - \mathbf{p}_1
이 변위 벡터의 노름이 두 점 사이의 유클리드 거리이다.
d_{12} = \|\mathbf{p}_2 - \mathbf{p}_1\| = \sqrt{(\mathbf{p}_2 - \mathbf{p}_1)^\top (\mathbf{p}_2 - \mathbf{p}_1)}
이 거리는 로봇의 작업 공간 거리 평가, 경로 길이 계산, 충돌 감지 등에 본질적으로 사용된다.
두 방향 사이의 각도
말단 장치의 접근 방향(approach direction) \hat{\mathbf{a}}와 목표 방향 \hat{\mathbf{a}}_d 사이의 사잇각은 내적으로 계산된다.
\theta = \arccos(\hat{\mathbf{a}} \cdot \hat{\mathbf{a}}_d)
이 각도는 자세 정렬의 척도로 사용되며, 정렬이 완전하면 \theta = 0이고 반대 방향이면 \theta = \pi이다.
4. 평면과 직선의 교차
4.1 직선과 평면의 교차
법선 벡터 \mathbf{n}과 한 점 \mathbf{p}_0로 정의되는 평면과, 점 \mathbf{q}_0에서 시작하여 방향 \mathbf{d}를 가지는 직선의 교차점은 다음과 같이 계산된다.
\mathbf{q}_0 + t \mathbf{d} \in \text{평면} \implies \mathbf{n} \cdot (\mathbf{q}_0 + t\mathbf{d} - \mathbf{p}_0) = 0
이로부터
t = \frac{\mathbf{n} \cdot (\mathbf{p}_0 - \mathbf{q}_0)}{\mathbf{n} \cdot \mathbf{d}}
이 식은 로봇의 광선-평면 교차 검출, 광선 추적, 시각 센서의 광선 모델 등에 활용된다.
4.2 두 직선 사이의 최단 거리
두 직선 L_1: \mathbf{p}_1 + t\mathbf{d}_1과 L_2: \mathbf{p}_2 + s\mathbf{d}_2 사이의 최단 거리는 다음과 같이 계산된다.
d = \frac{|(\mathbf{p}_2 - \mathbf{p}_1) \cdot (\mathbf{d}_1 \times \mathbf{d}_2)|}{\|\mathbf{d}_1 \times \mathbf{d}_2\|}
분자는 스칼라 삼중적이며, 분모는 두 방향 벡터의 외적의 크기이다. 이 거리는 두 회전축 사이의 공통 수선(common normal)의 길이이며, DH 파라미터의 정의에서 사용된다.
평면 위로의 사영
3차원 점 \mathbf{p}를 법선 벡터 \hat{\mathbf{n}}과 한 점 \mathbf{p}_0로 정의되는 평면 위로 사영한 결과는 다음과 같다.
\mathbf{p}_{\text{사영}} = \mathbf{p} - (\hat{\mathbf{n}} \cdot (\mathbf{p} - \mathbf{p}_0)) \hat{\mathbf{n}}
이 사영은 작업 평면 제약(planar workspace constraint)을 가지는 로봇에서 임의의 목표 위치를 작업 평면에 투영하는 데 사용된다.
5. 회전축의 결정
두 자세를 표현하는 회전 행렬 R_1과 R_2 사이의 상대 회전 R_{12} = R_1^\top R_2로부터 회전축을 추출하는 것은 회전 행렬의 고유벡터 문제이다. 회전축 \hat{\mathbf{n}}은 R_{12}의 고유값 1에 대응하는 고유벡터이며, 회전각은 \cos\theta = (\text{tr}(R_{12}) - 1)/2로 계산된다. 이 분석은 자세 보간과 자세 오차 정의의 기반이 된다.
6. 강체 변환의 합성
좌표계 \{A\}, \{B\}, \{C\}가 차례로 정의되어 있을 때, 좌표계 \{C\}에 대한 점 P의 위치를 좌표계 \{A\}에 대한 위치로 변환하는 식은 다음과 같이 두 단계의 변환으로 합성된다.
{}^A\mathbf{p} = {}^A R_B \cdot {}^B\mathbf{p} + {}^A\mathbf{p}_{B_{\text{org}}}
{}^B\mathbf{p} = {}^B R_C \cdot {}^C\mathbf{p} + {}^B\mathbf{p}_{C_{\text{org}}}
이를 결합하면
{}^A\mathbf{p} = {}^A R_B \cdot {}^B R_C \cdot {}^C\mathbf{p} + {}^A R_B \cdot {}^B\mathbf{p}_{C_{\text{org}}} + {}^A\mathbf{p}_{B_{\text{org}}}
이며, 회전 행렬은 {}^A R_C = {}^A R_B \cdot {}^B R_C로 합성된다. 이 합성 규칙은 다관절 로봇의 순기구학에서 각 관절 좌표계 사이의 변환을 차례로 곱하여 말단 장치 위치를 계산하는 데 적용된다.
작업 공간의 도달성 분석
특정 점 \mathbf{p}_d가 로봇의 작업 공간에 속하는지를 판정하기 위해서는, 로봇 베이스로부터 목표 점까지의 거리와 로봇의 최대 도달 반경을 비교한다.
\|\mathbf{p}_d - \mathbf{p}_{\text{베이스}}\| \leq \sum_{i=1}^{n} L_i
여기서 L_i는 각 링크의 길이이다. 이는 필요 조건일 뿐 충분 조건이 아니지만, 도달성 사전 검증에 유용하다.
7. 힘과 토크의 변환
힘 벡터 \mathbf{f}와 토크 벡터 \boldsymbol{\tau}로 구성된 렌치(wrench)는 좌표계 변환 시 외적을 포함하는 변환 규칙을 따른다. 좌표계 \{B\}의 원점에서의 렌치 ({}^B\mathbf{f}, {}^B\boldsymbol{\tau})가 좌표계 \{A\}의 원점에서 다음과 같이 변환된다.
{}^A\mathbf{f} = {}^A R_B \cdot {}^B\mathbf{f}
{}^A\boldsymbol{\tau} = {}^A R_B \cdot {}^B\boldsymbol{\tau} + {}^A\mathbf{p}_{B_{\text{org}}} \times {}^A\mathbf{f}
토크 변환에 외적이 등장하는 것은 작용점의 변경에 따른 모멘트 변화를 반영한다.
참고문헌
- Craig, J. J. (2018). Introduction to Robotics: Mechanics and Control (4th ed.). Pearson.
- Spong, M. W., Hutchinson, S., & Vidyasagar, M. (2020). Robot Modeling and Control (2nd ed.). Wiley.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
- Lynch, K. M., & Park, F. C. (2017). Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press.
Version: 1.0