티스토리 뷰

반응형

좌표축 간의 관계를 표현하고,

표현법에 의해서 원하는 Homogeneous Transformation을 어떻게 생성하는지를 자동화하는 기법

 

가정

1. 해석하고 싶은 매니퓰레이터(예시 : 로봇)가 있다면,

이러한 매니퓰레이너는 n+1 link로 구성이 된다.

 

고정되어 있는 바닥이 하나의 링크라고 표현해서, n+1개의 링크로 표현

 

2 . joint가 n개가 있다.

3. 각각의 링크에는 좌표계가 하나씩 붙어 있다.(어떤 점이라도 상관 없음)

 

 

축 정하는 방법

기본적인 D-H 파라미터를 잡기 위해서 가장 기본적으로 z축을 잡아야 한다.

z축을 잡는 가장 기본적인 방법은 joint의 i+1번째에 위치시키는 걸 원칙으로 한다.

 

즉, i 번째의 joint에 i 번째 프레임(링크)을 잡는 게 아니라,

i+1번째의 joint에 i번째 프레임(링크)을 잡는다.

 

첫 번째 joint가 있다면, 0번째 프레임(바닥)이 붙게 된다.

두 번째 joint가 있다면, 1번째 프레임(첫번째 링크)가 붙게 된다.

 

이렇게 i 번째 프레임에다가 z1축을 잡았다고 했을 때, 그 다음으로 필요한 건 z축과 관계되는 x,y 축을 잡아주는 것

이 x,y 축을 결정하기 위해서 필요한 건 이전의 축이다.

 

i-1번째 축에서 i축을 연결했을 때, 공통으로 수직되게 연결 될 수 있는 하나의 선(커먼 노멀) 방향

이 커먼 노멀 방향을 x축으로 설정한다.

 

쉽게 설명하면, Zi-1과 Zi를 같은 평면에 두고, 둘의 수직 방향으로 나가는 곳(커먼 노멀) 방향으로 x축을 잡는다.

이렇게 2개의 축이 결정되면, 나머지 y축은 오른손 법칙에 따라서 자동으로 결정(x축에서 z축으로 오른손 법칙을 쓰면 그 방향이 y의 +)

 

조인트에 따른 z축

Rotational/translational

revolute joint는 회전축에 대해서 잡아준다.

translational 하는 경우(prismatic)에는 이동하는 방향에 대해서 z축을 잡아준다.

 

x축을 결정하기 위해서는 z-1 번째 축이 존재해야 한다.

그렇지만 우리는 0번째 프레임부터 시작하기 때문에 z-1 번째 축이 존재하지 않는다.

그렇기 떄문에 x축을 결정할 수 없게 된다.

 

하지만 0번째 프레임은 기준좌표계이므로 편하게 x축을 결정

비슷하게 마지막 축에서는 Zn축 같은 경우에는 joint가 존재하지 않는다.

링크의 끝점은 조인트가 존재하지 않기 때문에 z축을 결정할 수 없다.

 

일반적으로는 두 가지 방법을 쓴다.

 

1. 바로 이전 축의 Z축, Zn-1번째와 같은 축을 잡아준다.

2. end-effector에서, 밖으로 향하는 방향(목표하는 물체를 가리키는 방향)으로 잡아주는 경우

 

입맛대로 결정

 

만약에 Prismatic joint라고 하면 z축은 위쪽 아니면 아래쪽인데,

벡터의 방향은 보통 prismatic joint가 늘어나는 방향으로 설정한다.

 

만약에 zi-1과 zi축이 수평으로 연결되어 있을 경우에는, x축이 무수히 많다.

보통은 원점을 기준으로 해서, xi-1과 xi축이 교차할 수 있도록 보통은 설계한다.

 

마지막 케이스 - zi-1번째 축과 zi 축이 평행하면서도 아예 같은 방향으로 일치

평면 전체가 x축이 되기 때문에, 임의로 x축의 방향이 설정된다.

 

이때는 zi-1과 zi축 거리도 일정 부분 필요한데, 그 거리도 임의로 원점을 잡아줌으로서 임의로 잡을 수 있게 된다.

 

D-H 파라미터 정의

세타 : angle between Xi-1 and Xi, Zi-1이 기준.

(얼마만큼 각도가 로테이션되어 있느냐. zi-1축을 기준으로 회전했다고 볼 수 있다.)

 

di : distance between two common normal(Xi-1. Zi-1이 기준

Zi-1 방향으로의 i-1 프레임의 원점 벡터와, Xi축을 늘려서 Zi-1이랑 만나게 되는 지점까지의 거리

 

ai : distance between Zi-1 and Zi. Xi가 기준

Xi축 방향으로 얼마나 떨어져 있는지에 대한 거리

 

alpha i: angle between Zi-1 and Zi. Xi가 기준

Xi를 기준으로 했을 때, Zi-1과 Zi가 얼마나 틀어져 있는지에 대한 기준

 

Tranformation과 Rotation

 

각 링크를 거꾸로 가면서 곱해준다.

Translation을 해주고, Rot을 해도 되고, Rot을 한 뒤에 Trans를 해도 된다.

 

이렇게 4개의 호모지니어스 트랜스포메이션을 활용해서 전부다 연산을 취하면, D-H matrix(Ai)를 얻는다.

이걸 위에서 구한 세타, alpha, d, a를 넣어서 계산을 한다.

 

이걸 D-H transformationd이라고 한다.

3*3은 rotation 의미하고, 마지막 3*1은 translation을 의미한다.

 

revolute joint의 경우, 세타는 변수

나머지 d,a,alpha는 변하지 않는다.(한 번 로봇이 만들어지면 constant)

 

prismatic joint의 경우, d가 변수

나머지 세타,a, alpha가 변하지 않는다.

 

 

Workspace

가각의 조인트값들을 전부다 이용해서 만들어낼 수 있는 공간

Forward kenematics를 이용해서 구성한다.

 

반응형