본문 바로가기

Robotics

3강 순기구학(Forward Kinematics) & DH 파라미터

순기구학(Forward Kinematics)

순기구학 문제는 로봇 팔이 주어졌을 때, 팔들의 각도를 알고 있을 때, 말단 장치(end effector)의 위치와 방향을 알아내는 것이다.

 

순기구학을 풀기 위해서는 2강에서 배운 동차 변환 지식이 머릿 속에 있어야 한다.

각 관절에 좌표계를 부여해서 {Base} 좌표계 기준으로 {End effector} 좌표계로 변환하면 된다. 

 

동차 변환을 하기 전에 DH 파라미터에 대한 개념이 잡히면 순기구학을 계산하기 쉽다. 4X4 행렬을 연속적으로 곱해주기만 하면 되니까. (행렬 곱은 직접 할 필요는 없고 컴퓨터가 잘 해주니 걱정 말자ㅎ)

 

DH 파라미터에 대한 개념을 공부하고 DH 파라미터 표 (table)을 잘 기입해준다면 순기구학은 계산한 것이나 다름없다.

이 블로그에서 설명할 DH 파라미터는 Modified 버전이니 참고하자.

(참고로 class한 버전도 있다.)

DH 파라미터 (DH Parameter)

DH 파라미터를 알아보기 전에 이전에 공부했던 동차 변환 행렬(Homogeneous Transformation Matrix) 복습해보자.

동차 변환 행렬 복습

동차 변환 행렬은 좌표계 두 개가 있을 때, 이 둘 사이를 변환 관계를 설명해주는 행렬이다. 결국 변환은 위치와 방향의 조합이며 3D 공간에서는 4X4 행렬로 표현 가능하다. 그리고 H_A_B는 좌표계 B에서 좌표계 A로 변환해주는 동차 변환 행렬인 것을 기억하자.

 

관절 {i-1} 번째, 링크 {i-1} 번째, 그리고 관절 {i} 번째의 관계

 

{i-1}번째 관절(=좌표계)에서 {i}번째 관절(=좌표계)로 변환하는 것이 주목적이다. 보통 직렬 구조의 매니퓰레이터라면 아래와 같은 구조일테니 말이다.

"관절 - 링크 - 관절 - 링크 - 관절 ..."

 

그리고 순서를 붙여주면

"관절1 - 링크1 - 관절2 - 링크2 - 관절3 ..."

이렇게 된다.

 

위를 일반화 하면 

"관절{i-1} - 링크{i-1} - 관절{i}"

이다.

 

{i-1}번째 좌표계에서 {i}번째 좌표계로 변환하려면

 

1. x축 회전(α), 이동(a)

2. z축 회전(θ), 이동(d)

 

이 두 개만 기억하면 된다. 이를 행렬 곱으로 나타내면

위 식과 같다.

R,Q,P에 대한 임시 좌표계를 설정하는 이유는 "x축 회전(α), 이동(a)" 그리고 " z축 회전(θ), 이동(d)"을 하기 위함이다.

  • H_{i-1}_R : x축 회전(α)
  • H_R_Q : x축 이동(a)
  • H_Q_P : z축 회전(θ)
  • H_P_{i} : z축 이동(d)

α, a, θ, d을 계산하는 팁이 있는데, 아래와 같다.

  • α {i-1} : 두 joint z축 간의 각도
  • a {i-1} : 두 joint z축 간의 길이
  • θ {i} : 두 joint x축 간의 각도
  • d {i} : 두 joint x축 간의 길이

 

결국, {i-1} 좌표계(=관절)에서 얻은 {i} 좌표계(=관절)까지의 변환은 

위와 같다.

 

2축 매니퓰레이터 예제 (Two-Axis Manipulator Example)

예제를 통해 알아보자.

2축 매니퓰레이터
2축 매니퓰레이터 DH 파라미터 테이블

 

위와 같다. 위를 검증하고 싶다면

 

https://vis-ro.web.app/robotics/modified-dh-model

 

VisRo Robotics: Making Robotics Easy to Learn through Visualization

 

vis-ro.web.app

위 사이트에서 실시간으로 확인해볼 수 있으니 확인해보자.

 

DH 파라미터 검증