7.31 경로 적분과 선적분의 로봇 궤적 응용
1. 스칼라 선적분
1.1 정의
공간 곡선(space curve) \mathcal{C}가 매개변수 표현 \mathbf{r}(t) = (x(t), y(t), z(t))^T, t \in [a, b]로 주어지고, 스칼라 함수 f: \mathbb{R}^3 \to \mathbb{R}가 \mathcal{C} 위에서 연속일 때, 스칼라 선적분(scalar line integral)은
\int_{\mathcal{C}} f \, ds = \int_a^b f(\mathbf{r}(t)) \lVert \mathbf{r}'(t) \rVert \, dt
로 정의된다. 여기서 ds = \lVert \mathbf{r}'(t) \rVert \, dt는 호 길이 미소 요소(arc length element)이며,
\lVert \mathbf{r}'(t) \rVert = \sqrt{\left(\frac{dx}{dt}\right)^2 + \left(\frac{dy}{dt}\right)^2 + \left(\frac{dz}{dt}\right)^2}
이다.
1.2 호 길이의 계산
f \equiv 1로 놓으면 스칼라 선적분은 곡선 \mathcal{C}의 호 길이(arc length) L이 된다.
L = \int_{\mathcal{C}} ds = \int_a^b \lVert \mathbf{r}'(t) \rVert \, dt
호 길이는 매개변수 표현에 의존하지 않는 곡선의 기하학적 불변량(geometric invariant)이다.
2. 벡터 선적분
2.1 정의
벡터장(vector field) \mathbf{F}: \mathbb{R}^3 \to \mathbb{R}^3에 대한 벡터 선적분(vector line integral) 또는 경로 적분(path integral)은
\int_{\mathcal{C}} \mathbf{F} \cdot d\mathbf{r} = \int_a^b \mathbf{F}(\mathbf{r}(t)) \cdot \mathbf{r}'(t) \, dt
로 정의된다. \mathbf{F} = (F_1, F_2, F_3)^T이고 d\mathbf{r} = (dx, dy, dz)^T이면
\int_{\mathcal{C}} \mathbf{F} \cdot d\mathbf{r} = \int_{\mathcal{C}} F_1 \, dx + F_2 \, dy + F_3 \, dz
로 성분별로 표기할 수 있다. 벡터 선적분은 물리학에서 힘 \mathbf{F}가 경로 \mathcal{C}를 따라 물체에 수행하는 일(work)에 해당한다.
2.2 경로 의존성
일반적으로 벡터 선적분의 값은 시작점과 끝점뿐 아니라 경로 \mathcal{C} 자체에 의존한다. 즉, 동일한 시작점과 끝점을 연결하는 서로 다른 경로 \mathcal{C}_1과 \mathcal{C}_2에 대해
\int_{\mathcal{C}_1} \mathbf{F} \cdot d\mathbf{r} \neq \int_{\mathcal{C}_2} \mathbf{F} \cdot d\mathbf{r}
가 일반적이다. 경로에 무관한 조건은 보존력장에서 성립한다.
3. 보존력장과 포텐셜 함수
3.1 보존력장의 정의
벡터장 \mathbf{F}가 스칼라 포텐셜 함수(scalar potential function) \phi의 그래디언트로 표현될 때, 즉
\mathbf{F} = -\nabla \phi
일 때, \mathbf{F}를 보존력장(conservative field)이라 한다. 보존력장에서의 선적분은 경로에 무관하며, 시작점과 끝점의 포텐셜 차에 의해 결정된다.
\int_{\mathcal{C}} \mathbf{F} \cdot d\mathbf{r} = -\int_{\mathcal{C}} \nabla \phi \cdot d\mathbf{r} = \phi(\mathbf{r}(a)) - \phi(\mathbf{r}(b))
이는 미적분학의 기본 정리를 선적분으로 확장한 결과이다.
3.2 보존력장의 판정
C^1급 벡터장 \mathbf{F} = (F_1, F_2, F_3)^T가 단순 연결(simply connected) 영역에서 보존력장이 되기 위한 필요충분 조건은 회전(curl)이 0인 것이다.
\nabla \times \mathbf{F} = \mathbf{0}
성분으로 표기하면
\frac{\partial F_3}{\partial y} = \frac{\partial F_2}{\partial z}, \quad \frac{\partial F_1}{\partial z} = \frac{\partial F_3}{\partial x}, \quad \frac{\partial F_2}{\partial x} = \frac{\partial F_1}{\partial y}
이다.
4. 로봇 궤적의 호 길이
4.1 작업 공간에서의 경로 길이
로봇 말단 장치(end-effector)의 궤적이 \mathbf{p}(t) \in \mathbb{R}^3, t \in [t_0, t_f]로 주어질 때, 작업 공간에서의 경로 길이는
L = \int_{t_0}^{t_f} \lVert \dot{\mathbf{p}}(t) \rVert \, dt = \int_{t_0}^{t_f} \sqrt{\dot{x}^2(t) + \dot{y}^2(t) + \dot{z}^2(t)} \, dt
이다. 여기서 \dot{\mathbf{p}}(t)는 말단 장치의 데카르트 속도(Cartesian velocity) 벡터이다. 경로 길이는 궤적의 시간 매개변수화(time parameterization)에 의존하지 않으며, 동일한 기하학적 경로를 다른 속도 프로파일로 추종하더라도 경로 길이는 동일하다.
4.2 관절 공간에서의 경로 길이
관절 공간 \mathbb{R}^n에서의 궤적 \mathbf{q}(t)에 대해, 관절 공간 경로 길이는
L_q = \int_{t_0}^{t_f} \lVert \dot{\mathbf{q}}(t) \rVert \, dt = \int_{t_0}^{t_f} \sqrt{\sum_{i=1}^{n} \dot{q}_i^2(t)} \, dt
이다. 관절 공간의 유클리드 거리와 작업 공간의 유클리드 거리는 일반적으로 일치하지 않는다. 관성 행렬(inertia matrix) \mathbf{M}(\mathbf{q})를 계량 텐서(metric tensor)로 사용한 리만 거리(Riemannian distance)
L_M = \int_{t_0}^{t_f} \sqrt{\dot{\mathbf{q}}^T \mathbf{M}(\mathbf{q}) \dot{\mathbf{q}}} \, dt
는 에너지 관점에서 보다 물리적으로 의미있는 경로 길이 측도(measure)이다.
5. 힘에 의한 일의 선적분
5.1 일반화 힘에 의한 일
n 자유도 로봇에서 일반화 힘(generalized force) \boldsymbol{\tau}가 관절 공간 궤적 \mathbf{q}(t)를 따라 수행하는 일은 벡터 선적분으로 표현된다.
W = \int_{\mathcal{C}} \boldsymbol{\tau} \cdot d\mathbf{q} = \int_{t_0}^{t_f} \boldsymbol{\tau}(t)^T \dot{\mathbf{q}}(t) \, dt
이 적분은 각 관절 토크와 해당 관절 속도의 곱의 합을 시간에 대해 적분한 것이며, 시스템에 투입된 총 기계적 에너지에 해당한다.
5.2 중력에 의한 일
중력장 \mathbf{g}에 의한 로봇 링크의 위치 에너지 변화는 보존력에 대한 선적분으로 계산된다. k번째 링크의 질량 중심(center of mass) 위치가 \mathbf{r}_k(\mathbf{q})일 때, 중력 포텐셜 에너지는
V(\mathbf{q}) = -\sum_{k=1}^{n} m_k \mathbf{g}^T \mathbf{r}_k(\mathbf{q})
이며, 중력에 의한 일은 경로에 무관하게
W_{\text{grav}} = V(\mathbf{q}(t_0)) - V(\mathbf{q}(t_f))
로 결정된다. 이는 중력이 보존력이므로 선적분이 경로 독립적이기 때문이다.
5.3 마찰에 의한 에너지 소산
점성 마찰(viscous friction) 토크 \boldsymbol{\tau}_f = -\mathbf{B} \dot{\mathbf{q}}에 의한 에너지 소산은
W_{\text{diss}} = -\int_{t_0}^{t_f} \dot{\mathbf{q}}^T \mathbf{B} \dot{\mathbf{q}} \, dt
이다. 감쇠 행렬 \mathbf{B}가 양정치이면 W_{\text{diss}} < 0이 보장되어, 마찰은 항상 시스템으로부터 에너지를 소산시킨다. 마찰 토크 \boldsymbol{\tau}_f는 속도에 의존하므로 회전이 0이 아니며, 따라서 비보존력(non-conservative force)이다. 이에 따라 마찰에 의한 에너지 소산은 경로에 의존한다.
6. 경로 적분의 수치적 계산
6.1 이산 궤적에서의 근사
실제 로봇 시스템에서 궤적은 이산 시간 간격 \Delta t로 샘플링된다. N개의 시간 단계에 대해 호 길이의 수치적 근사는
L \approx \sum_{k=0}^{N-1} \lVert \mathbf{p}_{k+1} - \mathbf{p}_k \rVert
이며, 이는 궤적을 선분(line segment)으로 이산화한 것이다. 사다리꼴 공식(trapezoidal rule)을 적용하면
L \approx \sum_{k=0}^{N-1} \frac{\lVert \dot{\mathbf{p}}_k \rVert + \lVert \dot{\mathbf{p}}_{k+1} \rVert}{2} \Delta t
로 더 정확한 근사가 가능하다.
6.2 일의 수치적 계산
일반화 힘에 의한 일의 수치적 근사는
W \approx \sum_{k=0}^{N-1} \frac{\boldsymbol{\tau}_k^T \dot{\mathbf{q}}_k + \boldsymbol{\tau}_{k+1}^T \dot{\mathbf{q}}_{k+1}}{2} \Delta t
이다. 토크와 속도 데이터가 센서로부터 직접 측정되는 경우, 잡음에 의한 적분 오차를 최소화하기 위해 평활화(smoothing)를 사전 적용하는 것이 권장된다.
7. 호 길이 매개변수화
7.1 정의
궤적을 호 길이(arc length) s로 매개변수화하면, 매개변수 s와 경로상의 위치가 1:1로 대응한다. 호 길이 매개변수 s는
s(t) = \int_{t_0}^t \lVert \dot{\mathbf{p}}(\tau) \rVert \, d\tau
로 정의되며, s \in [0, L]이다. 호 길이로 매개변수화된 궤적 \mathbf{p}(s)의 접선 벡터(tangent vector)는 단위 벡터가 된다.
\left\lVert \frac{d\mathbf{p}}{ds} \right\rVert = 1
7.2 로봇 궤적 계획에서의 활용
호 길이 매개변수화는 궤적의 기하학적 형상과 시간 프로파일을 분리하여 독립적으로 설계할 수 있게 한다. 기하학적 경로 \mathbf{p}(s)가 주어지면, 속도 프로파일 \dot{s}(t)를 별도로 설정하여 실제 시간 궤적 \mathbf{p}(s(t))를 생성한다. 속도는
\dot{\mathbf{p}} = \frac{d\mathbf{p}}{ds} \dot{s}
가속도는
\ddot{\mathbf{p}} = \frac{d\mathbf{p}}{ds} \ddot{s} + \frac{d^2\mathbf{p}}{ds^2} \dot{s}^2
으로 계산된다. 이 분리는 속도와 가속도 제약 조건하에서의 시간 최적 궤적(time-optimal trajectory) 생성에 핵심적으로 활용된다.
8. 폐곡선에 대한 선적분과 순환
닫힌 경로(closed path) \mathcal{C}에 대한 벡터 선적분
\oint_{\mathcal{C}} \mathbf{F} \cdot d\mathbf{r}
을 순환(circulation)이라 한다. 보존력장에서는 순환이 항상 0이다. 비보존력장에서의 순환은 한 주기 동안 시스템에 투입되거나 소산되는 순 에너지(net energy)에 해당한다.
로봇이 반복 작업(cyclic task)을 수행하여 관절 궤적이 \mathbf{q}(t_0) = \mathbf{q}(t_f)인 경우, 마찰에 의한 한 주기당 에너지 소산은
E_{\text{cycle}} = -\oint_{\mathcal{C}} \boldsymbol{\tau}_f \cdot d\mathbf{q} = \int_{t_0}^{t_f} \dot{\mathbf{q}}^T \mathbf{B} \dot{\mathbf{q}} \, dt > 0
이며, 이 양은 한 주기마다 모터가 보충해야 하는 에너지에 해당한다.
9. 참고 문헌
- Marsden, J. E., & Tromba, A. J. (2012). Vector Calculus. 6th ed. W. H. Freeman.
- Apostol, T. M. (1969). Calculus, Vol. 2. 2nd ed. Wiley.
- 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.
- LaValle, S. M. (2006). Planning Algorithms. Cambridge University Press.
v 0.2