global 좌표계를 기준으로 할 때, 0번 좌표계를 원점으로 하고 초기 속도/가속도 정보를 가지고 링크 1부터 링크 $n$까지 전진하면서 모든 링크에 부착된 각 좌표계 원점들의 속도와 가속도를 순차적으로 계산하는 것입니다.
일단 다음 그림과 같이 하나의 링크를 세우고, 일반화하여 따져봅니다.
위 그림과 같이 $i-1$번째 링크의 앞/뒤 관절에 붙어 있는 $i-1$번째 좌표계 원점을 $O_{i-1}$로, $i$번째 좌표계 원점을 $O_i$라고 표시합니다.
그러면 $i$번째 좌표계 원점의 직진속도 및 회전속도는 다음 수식과 같이 표현됩니다.
찬찬히 살펴보자면, $i-1$번째 좌표계 원점의 직진속도와 회전속도 + $i$ 번째 관절 변수의 기여도를 합하여 얻는 것을 알 수 있습니다.
위 식에서 사용하는 $a_i$와 $\zeta_i$는 다음과 같습니다.
- $a_i$는 $i$번째 관절 운동이 가능한 방향 벡터. 일반적으로 관절 운동 방향을 $z$축으로 설정하기 때문에 $a_i=[0, 0, 1]^T$입니다. - $\zeta_i$는 $i$번째 관절의 구동형태에 따라서 다음과 같이 정의됩니다.
직진속도 및 회전속도를 구했으니 가속도도 유도해보자면,
$i$번째 좌표계 원점의 직진가속도 및 회전가속도를 $\dot{p_i}$ 와 $\omega_i$ 를 시간에 대한 미분을 하여 다음과 같이 얻을 수 있습니다.
이와 같이, 초기에 글로벌 기준좌표계($0$번째 좌표계)에 설정된 초기조건으로 부터 다음 $1$번 좌표계 원점의 속도/가속도를 얻고, 다시 다음 $2$번 좌표계의 원점의 속도/가속도를 얻고... 이렇게 순차적으로 $n$번 좌표계 원점의 속도/가속도까지 얻을 수 있습니다.
후진 역차
전진 순차는 링크 $1~n$까지 전진하면서 모든 링크에 부착된 좌표계 원점들의 직진 속도, 회전 속도 그리고 직진 가속도, 회전 가속도를 순차적으로 계산하는 것입니다.
후진 역차는 뉴턴 운동방정식을 적용하여 힘과 직진운동 사이의 관계식을 유도하고, 오일러의 회전 운동방정식을 적용하여 모멘트와 회전운동 사이의 관계식을 얻는 것입니다.
후진 역차는 전진 순차를 통해 얻은 모든 기구학 정보들(속도/가속도)을 활용하고, 로봇 말단에 인가되는 힘/모멘트 정도를 말단 조건으로 하여 $i=n$번 좌표계 원점의 힘/모멘트 정보를 얻고, 이를 기반으로 $i=n-1$번 좌표계의 힘/모멘트를 구하고, 또 이를 이용하여 $i=n-2, i=n-3, ... , i=1$좌표계의 힘/모멘트까지 얻는 과정입니다.
$i$번째 링크 무게 중심에서 직진속도는, 전진 순차에서 얻은 $i$번째 좌표계 원점의 직진속도를 활용하여 얻을 수 있습니다.
그리고, $i$번째 링크 무게중심의 직진 가속도는 직진속도를 시간에 대해 미분을 하여 유도할 수 있습니다.
뉴턴 2법칙을 적용하면 다음과 같은 힘의 균형 방정식을 얻을 수 있습니다.
* $외력(F)=관성(m)\cdot가속도(a)$
이때 식 (2.33)에서 $-f_{i+1}$은 $i+1$번째 링크에서 $i$ 번째 링크에 전달해 주는 반작용 힘벡터를 나타내는 것입니다.
식 (2.32)를 식 (2.33)에 적용한 후 정리하면, $i$번째 링크의 직진 운동방정식이 다음과 같이 얻어집니다.
식 (2.34)에서 중력($m_i \hat{g}$)에 의한 효과가 사라지는 이유는 전진 순차에서 초기 가속도로 중력가속도 벡터를 선정함에 의해 자동적으로 포함되기 때문입니다.
따라서 $\ddot{p_0}=-\hat{g}$로 취급하여 모든 링크에 중력의 효과를 부여할 수 있게 됩니다.
다시 $i$번째 링크의 무게중심을 기준으로 작용하는 모든 모멘트를 계산하고 이들의 합으로 모멘트 균형 방정식을 얻을 수 있습니다.