7.6 로봇 궤적에서의 속도와 가속도 해석
1. 관절 공간에서의 속도와 가속도
1.1 관절 변수의 시간 미분
n-자유도 로봇 매니퓰레이터의 관절 변수 벡터를 \mathbf{q}(t) = [q_1(t), q_2(t), \ldots, q_n(t)]^\top라 하면, 관절 속도와 관절 가속도는 각각 시간에 대한 1계 및 2계 도함수로 정의된다.
\dot{\mathbf{q}}(t) = \frac{d\mathbf{q}(t)}{dt} = \begin{bmatrix} \dot{q}_1(t) \\ \dot{q}_2(t) \\ \vdots \\ \dot{q}_n(t) \end{bmatrix}
\ddot{\mathbf{q}}(t) = \frac{d^2\mathbf{q}(t)}{dt^2} = \begin{bmatrix} \ddot{q}_1(t) \\ \ddot{q}_2(t) \\ \vdots \\ \ddot{q}_n(t) \end{bmatrix}
회전 관절의 경우 \dot{q}_i는 각속도(\text{rad/s}), \ddot{q}_i는 각가속도(\text{rad/s}^2)이며, 직선 관절의 경우 각각 선속도(\text{m/s})와 선가속도(\text{m/s}^2)이다.
1.2 저크와 고차 미분
관절 가속도의 시간 미분을 저크(jerk)라 한다.
\dddot{\mathbf{q}}(t) = \frac{d^3\mathbf{q}(t)}{dt^3}
저크는 로봇 구동기의 토크 변화율과 직접 관련되며, 저크가 과도하면 기계적 진동과 마모를 유발한다. 고성능 로봇 시스템에서는 저크 제한 또는 저크 최소화가 궤적 계획의 중요한 조건이 된다.
2. 작업 공간에서의 속도 해석
2.1 자코비안을 이용한 속도 변환
순기구학 함수 \mathbf{x} = f(\mathbf{q})를 시간에 대해 미분하면 연쇄 법칙에 의해:
\dot{\mathbf{x}} = \frac{\partial f}{\partial \mathbf{q}} \dot{\mathbf{q}} = \mathbf{J}(\mathbf{q})\dot{\mathbf{q}}
여기서 \mathbf{J}(\mathbf{q}) \in \mathbb{R}^{m \times n}은 자코비안 행렬이며, m은 작업 공간의 차원, n은 관절의 수이다. 자코비안의 각 성분은 다음과 같다.
J_{ij} = \frac{\partial x_i}{\partial q_j}
2.2 선속도와 각속도
6-자유도 공간에서 말단장치의 속도는 선속도 \mathbf{v} \in \mathbb{R}^3와 각속도 \boldsymbol{\omega} \in \mathbb{R}^3로 구성된다.
\begin{bmatrix} \mathbf{v} \\ \boldsymbol{\omega} \end{bmatrix} = \mathbf{J}(\mathbf{q})\dot{\mathbf{q}} = \begin{bmatrix} \mathbf{J}_v(\mathbf{q}) \\ \mathbf{J}_\omega(\mathbf{q}) \end{bmatrix} \dot{\mathbf{q}}
여기서 \mathbf{J}_v \in \mathbb{R}^{3 \times n}은 선속도 자코비안, \mathbf{J}_\omega \in \mathbb{R}^{3 \times n}은 각속도 자코비안이다.
직렬 매니퓰레이터에서 i번째 관절이 회전 관절인 경우:
\mathbf{J}_{v,i} = \mathbf{z}_{i-1} \times (\mathbf{p}_n - \mathbf{p}_{i-1}), \qquad \mathbf{J}_{\omega,i} = \mathbf{z}_{i-1}
i번째 관절이 직선 관절인 경우:
\mathbf{J}_{v,i} = \mathbf{z}_{i-1}, \qquad \mathbf{J}_{\omega,i} = \mathbf{0}
여기서 \mathbf{z}_{i-1}은 i번째 관절 축의 방향 벡터, \mathbf{p}_{i-1}은 i번째 관절의 위치, \mathbf{p}_n은 말단장치의 위치이다.
3. 작업 공간에서의 가속도 해석
3.1 말단장치 가속도
말단장치 속도 \dot{\mathbf{x}} = \mathbf{J}(\mathbf{q})\dot{\mathbf{q}}를 시간에 대해 다시 미분하면:
\ddot{\mathbf{x}} = \dot{\mathbf{J}}(\mathbf{q})\dot{\mathbf{q}} + \mathbf{J}(\mathbf{q})\ddot{\mathbf{q}}
\dot{\mathbf{J}}의 성분은 다변수 연쇄 법칙에 의해 다음과 같이 계산된다.
\dot{J}_{ij} = \sum_{k=1}^{n} \frac{\partial J_{ij}}{\partial q_k}\dot{q}_k
\dot{\mathbf{J}}\dot{\mathbf{q}} 항은 관절 속도에 의해 발생하는 비선형 가속도로, 원심가속도(centripetal acceleration)와 코리올리 가속도(Coriolis acceleration)의 기여를 포함한다.
3.2 가속도의 분해
말단장치 가속도를 두 성분으로 분해할 수 있다.
\ddot{\mathbf{x}} = \underbrace{\mathbf{J}(\mathbf{q})\ddot{\mathbf{q}}}_{\text{관절 가속도 기여}} + \underbrace{\dot{\mathbf{J}}(\mathbf{q})\dot{\mathbf{q}}}_{\text{비선형 속도 기여}}
제어 관점에서, 원하는 말단장치 가속도 \ddot{\mathbf{x}}_d를 달성하기 위한 관절 가속도는 다음과 같이 구한다.
\ddot{\mathbf{q}} = \mathbf{J}^{-1}(\mathbf{q})\left[\ddot{\mathbf{x}}_d - \dot{\mathbf{J}}(\mathbf{q})\dot{\mathbf{q}}\right]
자코비안이 정방이 아니거나 특이점 근처인 경우에는 유사역행렬(pseudoinverse) \mathbf{J}^\dagger를 사용한다.
\ddot{\mathbf{q}} = \mathbf{J}^\dagger(\mathbf{q})\left[\ddot{\mathbf{x}}_d - \dot{\mathbf{J}}(\mathbf{q})\dot{\mathbf{q}}\right]
4. 다항식 궤적 계획
4.1 차 다항식 궤적
시작점과 끝점에서의 위치와 속도가 주어진 경우, 3차 다항식으로 궤적을 계획할 수 있다.
q(t) = a_0 + a_1 t + a_2 t^2 + a_3 t^3
경계 조건 q(0) = q_0, q(t_f) = q_f, \dot{q}(0) = v_0, \dot{q}(t_f) = v_f로부터:
\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 1 & t_f & t_f^2 & t_f^3 \\ 0 & 1 & 2t_f & 3t_f^2 \end{bmatrix} \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ a_3 \end{bmatrix} = \begin{bmatrix} q_0 \\ v_0 \\ q_f \\ v_f \end{bmatrix}
속도와 가속도는 미분으로 구한다.
\dot{q}(t) = a_1 + 2a_2 t + 3a_3 t^2
\ddot{q}(t) = 2a_2 + 6a_3 t
3차 다항식 궤적은 가속도가 선형으로 변하므로, 가속도의 불연속이 시작점과 끝점에서 발생할 수 있다.
4.2 차 다항식 궤적
시작점과 끝점에서의 위치, 속도, 가속도가 모두 주어진 경우 5차 다항식을 사용한다.
q(t) = a_0 + a_1 t + a_2 t^2 + a_3 t^3 + a_4 t^4 + a_5 t^5
경계 조건은 q(0) = q_0, \dot{q}(0) = v_0, \ddot{q}(0) = \alpha_0, q(t_f) = q_f, \dot{q}(t_f) = v_f, \ddot{q}(t_f) = \alpha_f이다. 이 6개의 조건으로 6개의 계수를 유일하게 결정할 수 있다.
\begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 2 & 0 & 0 & 0 \\ 1 & t_f & t_f^2 & t_f^3 & t_f^4 & t_f^5 \\ 0 & 1 & 2t_f & 3t_f^2 & 4t_f^3 & 5t_f^4 \\ 0 & 0 & 2 & 6t_f & 12t_f^2 & 20t_f^3 \end{bmatrix} \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ a_3 \\ a_4 \\ a_5 \end{bmatrix} = \begin{bmatrix} q_0 \\ v_0 \\ \alpha_0 \\ q_f \\ v_f \\ \alpha_f \end{bmatrix}
5차 다항식 궤적은 C^2 연속성을 보장하며, 가속도가 부드럽게 변화한다.
4.3 사다리꼴 속도 프로파일
산업용 로봇에서 널리 사용되는 사다리꼴 속도 프로파일(trapezoidal velocity profile)은 세 구간으로 나뉜다.
가속 구간 (0 \leq t \leq t_a):
\dot{q}(t) = a_{\max} t, \qquad q(t) = q_0 + \frac{1}{2}a_{\max} t^2
등속 구간 (t_a \leq t \leq t_a + t_c):
\dot{q}(t) = v_{\max}, \qquad q(t) = q(t_a) + v_{\max}(t - t_a)
감속 구간 (t_a + t_c \leq t \leq t_f):
\dot{q}(t) = v_{\max} - a_{\max}(t - t_a - t_c), \qquad q(t) = q(t_a + t_c) + v_{\max}(t - t_a - t_c) - \frac{1}{2}a_{\max}(t - t_a - t_c)^2
여기서 v_{\max}는 최대 속도, a_{\max}는 최대 가속도이다. 가속 시간은 t_a = v_{\max}/a_{\max}이며, 총 이동 거리로부터 등속 구간의 시간 t_c를 결정한다.
q_f - q_0 = v_{\max}t_a + v_{\max}t_c = v_{\max}\left(\frac{v_{\max}}{a_{\max}} + t_c\right)
5. S-곡선 속도 프로파일
사다리꼴 프로파일의 단점인 가속도 불연속을 해소하기 위해 S-곡선(S-curve) 프로파일을 사용한다. 이 프로파일에서는 저크 \dddot{q}(t)가 유한하며, 가속도가 연속적으로 변화한다. 7개의 구간으로 나뉜다.
- 저크 증가 (가속도 선형 증가)
- 등가속 (저크 = 0)
- 저크 감소 (가속도 선형 감소)
- 등속 (가속도 = 0)
- 저크 감소 (감속 시작)
- 등감속 (저크 = 0)
- 저크 증가 (감속 완료)
각 구간에서의 위치는 가속도를 적분하여 속도를, 속도를 적분하여 위치를 구한다.
6. 특이점에서의 속도 해석
자코비안 행렬이 랭크를 잃는 특이 형상(singular configuration)에서는 속도 관계에 문제가 발생한다. 특이점에서:
\text{rank}(\mathbf{J}(\mathbf{q}_s)) < \min(m, n)
이 경우 다음의 현상이 나타난다.
- 특정 작업 공간 방향으로의 말단장치 속도를 생성할 수 없다.
- 역방향으로, 유한한 말단장치 속도에 대해 관절 속도가 무한대로 발산할 수 있다.
\dot{\mathbf{q}} = \mathbf{J}^{-1}(\mathbf{q})\dot{\mathbf{x}} \to \infty \quad \text{as} \quad \mathbf{q} \to \mathbf{q}_s
이를 회피하기 위해 감쇠 최소자승법(Damped Least Squares, DLS)을 사용한다.
\dot{\mathbf{q}} = \mathbf{J}^\top(\mathbf{J}\mathbf{J}^\top + \lambda^2\mathbf{I})^{-1}\dot{\mathbf{x}}
여기서 \lambda > 0은 감쇠 계수이다.
7. 에너지와 적분
관절 구동기가 소비하는 에너지는 토크와 속도의 곱을 시간에 대해 적분하여 구한다.
E = \int_{t_0}^{t_f} \boldsymbol{\tau}^\top \dot{\mathbf{q}}\,dt
에너지 효율적 궤적은 이 적분값을 최소화하는 궤적으로, 최적화 문제로 정식화된다.
\min_{\mathbf{q}(\cdot)} \int_{t_0}^{t_f} \boldsymbol{\tau}(\mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}})^\top \dot{\mathbf{q}}(t)\,dt
참고 문헌
- Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control. 3rd ed. Pearson.
- 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. Wiley.
- Biagiotti, L., & Melchiorri, C. (2008). Trajectory Planning for Automatic Machines and Robots. Springer.
v 0.1