1장. 로봇 팔은 무엇을 풀어야 하나
로봇 팔을 움직이려면 다섯 가지 질문에 차례로 답해야 한다. 이 장은 수식 없이 그림으로 그 다섯 질문을 하나씩 본다. 강의 1강(58분)에 해당한다.
1.1 이 교재 쓰는 법
강의를 보기 전에 이 장을 먼저 읽는다. 그림으로 뜻을 잡고, 영상으로 교수의 설명을 듣고, 마지막에 문제를 푼다.
- 절을 하나 읽는다. 그림을 먼저 보고, 그림 아래 설명을 읽는다.
- 슬라이더가 있는 그림은 직접 움직여 본다. 숫자가 어떻게 바뀌는지 본다.
- "잠깐, 생각해 보기"가 나오면 멈춘다. 답을 종이에 적어 본 뒤 다음 줄을 읽는다.
- "영상에서 보기" 링크를 누른다. 강의에서 그 내용이 나오는 장면으로 바로 간다. 영어 자막을 켜고 본다.
- 장 끝 문제를 푼다. 답은 문제 바로 아래에 있으니 풀기 전에는 가리고 본다.
그림의 색은 끝까지 같은 뜻으로 쓴다. 고정된 것(받침, 기준 좌표계)은 회색 선이고, 움직이는 것과 지금 보는 것은 색을 칠한다.
이 장에는 수식이 없다. 다섯 가지 질문의 뜻만 잡으면 된다. 수식은 2장부터 하나씩 나온다.
1.2 종이 팔 하나로 시작하기
책상 위에 종이로 만든 팔이 하나 있다고 하자. 어깨와 팔꿈치에 서보(작은 모터)가 하나씩 들어 있고, 팔은 책상 면을 따라서만 움직인다. 이 교재는 끝까지 이 팔을 예로 쓴다.
이 팔은 네 가지 부분으로 나뉜다.
- 받침(base): 책상에 붙어 움직이지 않는다. 모든 위치를 여기서부터 잰다.
- 링크(link): 단단한 막대다. 종이를 접어 만든 상자 막대라고 생각하면 된다. 휘지 않는다고 본다.
- 관절(joint): 링크와 링크를 잇는 곳이다. 서보가 들어가 돌아간다.
- 손끝(말단 장치, end-effector): 팔 끝에서 실제로 일을 하는 부분이다. 집게, 손가락, 펜 같은 것.
관절이 얼마나 돌았는지를 관절 각도라 하고 θ(세타)로 쓴다. 어깨는 θ₁, 팔꿈치는 θ₂다.
- θ₁은 바닥에 그은 점선에서 링크 1까지 잰 각도다. 그림에서는 50°다.
- θ₂는 링크 1을 곧게 늘인 점선에서 링크 2까지 잰 각도다. 그림에서는 아래로 70° 꺾여 있다. 시계 방향으로 꺾이면 음수로 쓰므로 θ₂ = −70°다.
잠깐, 생각해 보기. 어깨 서보만 10° 더 돌리면 팔꿈치와 손끝은 어떻게 될까?
링크 2와 손끝까지 통째로 10° 따라 돈다. 팔꿈치의 θ₂는 그대로지만 손끝은 움직인다. 관절은 자기 뒤에 달린 것을 모두 들고 돈다. 그래서 손끝 위치는 모든 관절 각도가 함께 정한다. 이 한 문장이 이 수업 전체의 출발점이다.
로봇은 자기 각도를 어떻게 아나
사람은 눈을 감아도 팔이 어디 있는지 안다. 로봇은 관절마다 붙은 각도 센서(엔코더, encoder)로 안다. 관절이 47개인 휴머노이드에는 엔코더도 47개가 든다.
그런데 엔코더는 관절끼리의 각도만 준다. 받침이 책상 어디에 어느 방향으로 놓였는지는 모른다. 그래서 받침을 책상에 고정하거나, 카메라로 한 점을 잡아 기준을 정한다.
알아 두기. 취미용 서보는 "90°로 가"라는 명령을 받지만, 지금 몇 도인지 바깥에 알려 주지 않는 것이 많다. 무언가에 막혀 90°까지 못 갔어도 로봇은 모른다. 실제 각도가 필요하면 각도 센서를 따로 달아야 한다.
영상에서 보기: 01:44 로봇이 자기 위치를 아는 법
1.3 순기구학과 역기구학
팔에 대해 물을 수 있는 첫 질문은 방향이 두 가지다. "각도를 알면 손끝은 어디인가"와 "손끝을 여기 두려면 각도는 얼마인가"다.
순기구학: 각도 → 손끝 위치
아래 그림의 슬라이더를 밀어 어깨와 팔꿈치를 돌려 보자. 두 각도를 정하는 순간 손끝의 자리가 하나로 정해진다. 이것을 순기구학(forward kinematics)이라 한다.
해 볼 것 세 가지:
- θ₂를 0°로 두고 θ₁만 돌려 본다. 손끝이 반지름 18 cm인 원을 따라 돈다. 팔을 다 편 상태다.
- θ₂를 150°까지 접어 본다. 손끝이 받침 쪽으로 돌아온다. 끝까지 접으면 10 − 8 = 2 cm까지 가까워진다.
- θ₁과 θ₂를 반대로 같은 양만큼 돌려 본다(예: 30°와 −30°). 링크 2는 여전히 x축과 나란하다. 링크 2의 방향은 θ₁ + θ₂가 정하기 때문이다.
순기구학은 답이 항상 하나다. 각도를 알면 링크를 차례로 이어 붙이기만 하면 된다. 2장에서는 이 "차례로 이어 붙이기"를 행렬로 적는 법을 배운다.
역기구학: 손끝 위치 → 각도
일을 시킬 때는 거꾸로 말한다. "손끝을 (12, 6) cm에 두어라." 그러면 로봇은 어느 각도로 돌려야 하는지 찾아야 한다. 이것이 역기구학(inverse kinematics)이다.
그림 1-3은 역기구학이 어려운 이유 두 가지를 보여 준다.
- 답이 여러 개다. 같은 목표에 팔꿈치를 위로 올려도, 아래로 내려도 닿는다. 로봇이 둘 중 하나를 골라야 한다. 장애물이 있으면 한쪽은 못 쓴다.
- 답이 없을 수도 있다. 팔 길이를 다 합한 18 cm보다 먼 곳, 2 cm보다 가까운 곳에는 닿지 않는다.
관절이 두 개일 때는 고등학교 삼각함수로 풀 수 있다. 관절이 6개인 산업용 팔은 풀기가 훨씬 어렵다. 관절이 더 많으면 같은 목표에 닿는 자세가 무수히 많아진다(2.3절).
잠깐, 생각해 보기. 사람은 컵에 손을 뻗을 때 어깨를 몇 도 돌릴지 계산할까?
아니다. 손을 컵 쪽으로 끌고 갈 뿐이다. Khatib 교수는 로봇도 그렇게 움직이게 할 수 있다고 말한다. 그 방법은 1.5절에서 본다.
영상에서 보기: 05:31 손을 옮기는 문제 · 06:35 역기구학이 어려운 이유
1.4 위치만으로는 부족하다
위치를 알아도 일을 다 할 수는 없다. 컵을 옮기려면 얼마나 빨리 움직일지, 계란을 쥐려면 얼마나 세게 누를지도 정해야 한다. 그래서 세 번째와 네 번째 질문이 나온다.
속도와 힘: 자코비안
관절을 조금 돌리면 손끝이 조금 움직인다. "관절을 이만큼 빨리 돌리면 손끝은 어느 쪽으로 얼마나 빨리 가나"를 담은 표가 자코비안(Jacobian)이다. 정확히는 숫자를 네모나게 배열한 행렬이다.
놀라운 점은 같은 표가 힘에도 쓰인다는 것이다. 손끝으로 계란을 살짝 눌러야 할 때, 어깨 서보와 팔꿈치 서보가 각각 얼마나 힘을 내야 하는지도 자코비안이 알려 준다. 이를 속도·힘 쌍대성이라 하고 8강에서 배운다.
Khatib 교수는 수업 내내 자코비안을 강조한다. 다음에 볼 동역학도 자코비안으로 만들기 때문이다. "중간고사 전에 자코비안을 확실히 이해하면 동역학은 쉽다"고 말한다.
잠깐, 생각해 보기. 그림 1-2에서 θ₂ = 0°로 팔을 쭉 펴고, θ₁을 조금씩 움직여 보자. 손끝은 어느 방향으로 움직이나? 팔을 편 채로 손끝을 팔 길이 방향으로 밀 수 있을까?
손끝은 팔과 수직인 방향으로만 움직인다. 팔꿈치를 돌려도 마찬가지다. 편 채로는 팔 길이 방향으로 더 나갈 수 없다. 이렇게 어떤 방향으로 움직일 수 없게 되는 자세를 특이점(singularity)이라 한다. 7강에서 다시 나온다.
무게: 자세마다 다르다
네 번째 질문은 "힘을 주면 팔이 어떻게 움직이나"다. 이것을 동역학(dynamics)이라 한다. 출발점은 중학교에서 배우는 힘 = 질량 × 가속도 하나다.
다만 돌리는 운동에서는 질량보다 관성이 중요하다. 같은 무게도 회전축에서 멀수록 돌리기 어렵다. 거리가 2배면 돌리기는 4배 어렵다(거리의 제곱). 아래 그림에서 팔꿈치를 접어 보자.
팔을 다 접으면(150°) 어깨가 느끼는 무게는 편 때의 13% 정도로 줄어든다. 손에 든 물건이 어깨 가까이 오기 때문이다. 팔 모양이 바뀌면 무게도 바뀐다. 그래서 로봇 팔의 "질량"은 숫자 하나가 아니라 자세에 따라 바뀌는 표(질량 행렬)가 된다.
영상에서 보기: 29:30 자코비안 · 34:41 동역학은 F = ma에서 · 36:49 자세마다 바뀌는 관성
1.5 사람처럼 움직이기
다섯 번째 질문은 "그래서 모터에 무엇을 시킬까"다. 이것이 제어(control)다. 제어에는 크게 두 길이 있다.
첫 번째 길: 관절부터 정한다. 역기구학으로 목표 각도를 구하고, 각 서보를 그 각도로 보낸다. 공장 로봇이 오래 쓴 방법이다. 관절이 많으면 역기구학을 풀기 어렵다는 것이 약점이다.
두 번째 길: 손끝부터 정한다. Khatib 교수가 만든 방법이다. 손끝과 목표 사이에 자석이 있다고 상상한다. 자석이 손을 끌어당기면 팔 전체가 따라온다.
- 목표는 손끝을 끌어당긴다.
- 장애물은 손끝과 팔을 밀어낸다. 자석의 같은 극끼리 밀어내는 것과 같다.
- 두 힘을 더하고, 1.4절의 자코비안으로 모터마다 낼 힘으로 바꾼다.
이 방법은 관절 각도를 미리 계산하지 않는다. 장애물이 움직여도 바로 피한다. 강의에서는 휴머노이드 시뮬레이션의 머리카락을 잡아당기면 몸 전체가 자연스럽게 따라오는 장면을 보여 준다.
닿으면서 움직이기
공장 로봇은 울타리 안에서 물건을 집어 옮기기만 했다. 요즘 로봇은 수술을 돕고, 사람과 짐을 나르고, 물건을 만지며 일한다. 무언가에 닿으면 위치보다 힘을 조절해야 한다. 이것이 16강의 힘 제어다. 가볍고 약한 로봇일수록 "세게 누르면 멈추는" 힘 조절이 중요하다.
영상에서 보기: 43:08 손을 목표로 끌어당기기 · 48:14 닿으며 움직이기 · 50:20 장애물 피하기
1.6 앞으로의 길
수업은 1.2~1.5절에서 본 질문 순서 그대로 진행된다. 앞 단계가 뒤 단계의 바탕이라서 순서대로 보는 것이 좋다.
가장 중요한 것은 ①과 ②다. ⑤ 동역학과 ⑥ 제어는 ②의 자코비안을 그대로 가져다 쓴다. ②까지 확실히 익히면 뒤는 훨씬 수월하다.
대부분의 강의는 1990년대 로봇 영상으로 시작한다. 재미로 보면 되고, 바쁘면 건너뛰어도 된다.
영상에서 보기: 22:13 수업 내용 훑기
1.7 확인 문제
답을 종이에 적고 나서 아래 답과 맞춰 본다.
- 관절이 3개인 평면 팔이 있다. 엔코더 3개만으로 팔이 책상 위 어디에 있는지 알 수 있나? 무엇이 더 필요한가?
- "손끝을 컵 위에 놓아라"를 하려면 다섯 질문 중 무엇부터 답해야 하나?
- 그림 1-3의 팔(10 cm + 8 cm)에서 목표가 (20, 0) cm라면 역기구학의 답은 몇 개인가? (18, 0) cm라면?
- 자코비안이 하는 두 가지 일을 한 문장씩 써 보라.
- 팔을 쭉 폈을 때와 접었을 때, 어깨가 느끼는 무게는 어느 쪽이 큰가? 왜 그런가?
- 1.5절의 "자석" 제어는 역기구학을 푸는가?
답
- 알 수 없다. 엔코더는 관절끼리의 각도만 준다. 받침이 책상 어디에 어느 방향으로 놓였는지 알아야 한다. 받침을 고정하거나 카메라로 한 점을 잡는다.
- 역기구학(컵 위 위치 → 관절 각도)이다. 1.5절의 두 번째 길을 쓰면 역기구학 없이 손끝을 컵 쪽으로 직접 끌어당길 수도 있다.
- (20, 0)은 팔 길이 18 cm보다 멀어서 답이 0개다. (18, 0)은 팔을 쭉 편 자세 하나뿐이라 1개다. 팔꿈치 위·아래 두 답이 하나로 합쳐진다.
- (1) 관절이 도는 빠르기를 손끝이 움직이는 빠르기로 바꾼다. (2) 손끝이 내야 할 힘을 모터가 내야 할 토크로 바꾼다.
- 폈을 때다. 무거운 것이 회전축에서 멀수록 돌리기 어렵다. 거리의 제곱으로 커진다.
- 풀지 않는다. 손끝에 걸 힘을 정하고, 자코비안으로 모터마다 낼 힘으로 바꿀 뿐이다.
다 맞혔으면 1강 영상을 한 번 보고 2장으로 넘어간다.