본문 바로가기
정기연재 - 기계공학/[로봇공학] 성환's 로봇공학 이야기

로봇공학입문 세번째: 로봇의 자유도 구하기

by STEMSNU 2015. 6. 30.

로공입 세번째: 로봇의 자유도(Degrees of Freedom)

로봇의 자유도 구하기

저번 글에서는 하나의 body에 대한 자유도를 구하는 방법을 알아보았습니다.
이번에는 여러개의 body로 이루어진 메커니즘의 자유도를 구해보도록 해보죠.

로봇에는 여러개의 body와 그 body 사이를 연결하는 접합부들(joints)로 이루어져있죠. 이러한 로봇의 자유도를 구하는 원리는 완전히 동일합니다.

Degrees of Freedom(이하 dof) = (Sum of freedoms of the bodies) - (Number of independent constraints)

로봇을 구성하는 모든 body가 각각 서로 붙어있지 않고 완전히 각각 따로 논다고 해보죠. 이 때 모든 body 각각의 자유도를 구하여 더합니다. 그리고 body들을 joint로 이으면서 자유도가 줄어들겠죠? 그 줄어든 자유도 만큼을 빼주면 로봇의 자유도가 나오는 것이죠!

Joint의 종류

보통 로봇에 팔(bar)과 팔을 잇는 joint를 몇 종류를 소개시켜드릴게요.


<그림1>

joint의 종류에 따른 joint 자유도는 다음과 같습니다!

Revolute joint(R joint): 빙글빙글 도는 각도 하나만 결정 [dof=1]
Prismatic joint(P joint): 늘어났다 줄어들었다 하나만 결정 [dof=1]
Helical joint(H joint): 도는 각도만 결정되면 위로가는 것 아래로 가는 것 결정되므로 자유도 [dof=1]
Cylindrical joint(C joint): 빙글빙글 돌기도 하고 위아래 움직이기도 하므로 [dof=2]
Universal joint(U joint): R joint 두개 합친거니깐 [dof=2]
Spherical joint(S joint): [dof=3]

각각의 joint는 두개의 bar를 연결하면서 두 bar의 자유도를 joint 자유도 만큼으로 감소합니다

무슨 말인지 모르겠으니 예제를 한 번 풀어볼까요?

예제1


<그림2>

위의 그림에서 보이는 joint는 R-joint네요. 저 body는 완전히 자유로울 때(그냥 공간상에 둥둥 지 알아서 떠다닌다고 생각했을때)는 dof가 3이었는데 joint로 연결되면서 dof가 1로 줄었어요. 보시다시피 각도 하나만으로 body의 configuration(위치&자세)이 결정되기 때문이죠.

그래서 그림2의 메커니즘의 자유도는 1이랍니다.

예제2


<그림3>

그림3에 보이는 joint는 R-joint과 P-joint를 합친거네요? 편하게 RP-joint라 부르도록 하죠.
R-joint는 dof가 1이고 마찬가지로 P-joint도 dof가 1인 joint입니다.
그럼 뻔하죠 RP-joint의 dof는 2입니다.
body하나를 RP-joint를 이용하여 ground와 연결시키면 body의 자유도가 3에서 2로 줄어들 것입니다.

자 이제 joint가 전체 로봇 메커니즘의 자유도를 감소시키는데 어떤 역할을 하는지 느낌 오시나요?

Grubler’s formula

Grubler’s formula는 로봇 메커니즘에 body와 joint들이 여러 개 있을 때의 자유도를 쉽게 구할 수 있는 공식이에요.

이 공식의 유도 과정은 너무 쉬워서 한줄로 설명할게요. 아이디어는 이거에요.

: 모든 body의 갯수(주의! 이 때 ground도 움직이지않는 body라고 보고 body의 개수를 셀 때 포함한다.)
: Joint 들의 갯수
: 번째 Joint의 dof

설명을 조금 더 덧붙이자면 이래요.
우리가 로봇 메커니즘의 dof를 구하는 방법이 무엇이었죠? 

자유로운 body 하나의 평면(planar)에서의 자유도는 3인거 기억하시죠?
따라서 모든 body(ground 빼고)가 각각 완전히 자유로울 때의 자유도()를 구하고, 그 다음 그 body들을 joint로 연결했을 때 줄어드는 자유도() 만큼을 빼줌으로써 구했었죠.

Grubler’s formula:

이 식을 정리하면 다음과 같습니다.

Grubler’s formula 활용 예제


(a)와 같이 메커니즘의 한 쪽 끝은 땅에 붙어있고 다른 쪽 끝이 자유로운 로봇메커니즘을 OPEN CHAIN MECHANISM이라고 한답니다.

(b),(c),(d)는 모든 bar의 양쪽 끝이 어딘가에 연결되어있으므로  CLOSED CHAIN MECHANISM입니다.


자, 그럼 한번 (a),(b),(c),(d)의 자유도를 Grubler's formula로 구해볼까요? N의 갯수에 ground 포함하는거 잊지말구요!

(a): N=5, J=4, R-joint의 f=1 인데 4개 있으므로 가 된다. 

따라서 dof=3(5-1-4)+4=4

(b): N=5, J=5, R-joint의 f=1 인데 5개 있으므로 가 된다. 

따라서 dof=3(5-1-5)+5=2

(c): N=6, J=7, R-joint의 f=1 인데 7개 있으므로 가 된다.

따라서 dof=3(6-1-7)+7=1

(d): N=6, J=7, R-joint의 f=1 인데 7개 있으므로 가 된다.

따라서 dof=3(6-1-7)+7=1


쉽죠? body 갯수(N) 세고, Joint 갯수(J) 세고, Joint 마다 가지는 dof들(f) 전부 다 더한값을 Grubler's formula에 넣기만 하면  로봇의 dof를 구할 수 있답니다.



이런 로봇의 자유도를 구하려면 어떻게 해야할까요? 머리에 쥐가 나요 전 벌써.. 

어려운 메커니즘 자유도를 자신있게 구하려면 오늘 한 내용들을 잘 알고있어야해용. 

Grubler’s formula와 그 유도 과정을 숙지하고 계시다면 다음 글에 있는 한단계 어려운 문제들로 넘어가볼까요?

댓글