반응형
로봇 매니퓰레이터는 기본적으로 복잡한 시스템을 갖기 때문에, 시스템 자체에 대한 이해에 시간을 쏟지 않으면 전반적인 개념을 잡기 매우 어렵다. 로봇을 실제로 만들기 위해서는 통신이나 기구, 회로 등 하드웨어에 대한 깊은 이해와 그럼에도 생기는 시행착오에 대응하기 위한 경험을 필수적으로 요구하지만, 일단 여기서는 매니퓰레이터를 원하는 대로 움직이고자 하는 학생이 생각할 만한 이론적인 이야기만 하려고 한다.
휴머노이드가 보행 중 작업을 하는 경우는 박사과정쯤 되어야 이야기를 시작할 수 있을 정도로 복잡도가 높기 때문에, 여기에서는 바닥에 고정된 로봇 팔 하나를 기준으로 설명한다. 사실 도중에 신경써야 할 것이 훨씬 많아져서 그렇지 기본적인 구조는 휴머노이드까지 가더라도 크게 달라지지는 않는다.
로봇을 움직이기 위해서는 대체로 아래와 같은 단계를 밟는다.
- 로봇에 부착된 각종 센서를 통해서, 로봇의 현재 상태를 측정한 값을 읽어온다. 매니퓰레이터라면 기본적으로 보통 엔코더(Encoder)를 통해 관절의 각도를 읽어올 수 있고, 경우에 따라 관절 토크 센서(Joint Torque Sensor) 혹은 끝단 힘 센서(End-Effector Force/Torque Sensor)를 통해 로봇이 받는 힘을 측정할 수 있는 경우까지는 흔히 볼 수 있다. 그 외에는 각 관절의 온도나 진동을 측정해서 하드웨어의 고장을 예측하거나 하는 경우도 있지만, 이것은 움직이는 것을 목적으로 하는 측정은 아니므로 여기에서 다루지는 않는다. 이 단계에서 최소 관절의 각도를, 추가적으로는 관절의 각속도나 토크 정보를 알 수 있다.
- 로봇의 경로(Path) 및 궤적(Trajectory)을 생성한다. 비슷한 말처럼 들리는 말이지만, 경로는 어떤 목적을 가지고 로봇을 움직이는가를 의미하고 궤적은 실제 로봇의 움직임을 의미한다. 즉, "A지점에서 물건을 집어 B지점을 지나 C지점에 가져다 놓아야 한다"의 경우 경로를 계획한 것이고, "그 작업을 위해서 로봇의 위치, 속도, 가속도 그래프를 시간에 따라 그려야 한다"라면 궤적을 생성한 것이다. 요즘은 경로 부분은 인공지능을 통해서 생성하는 경우도 흔히 있지만, 궤적 부분은 연산 시간의 문제로 그렇게 하는 경우가 비교적 적다.
- 움직일 궤적이 정해졌다면, 로봇을 실제로 그 궤적대로 움직여야 한다. 이 과정에서 궤적이 로봇 관절 각도, 각속도, 각가속도 수준의 값을 제공한다면 그대로 제어하는 것이 가능하지만 로봇의 끝단(End Effector)의 위치, 속도, 가속도 등을 제공한다면 이것을 로봇 관절을 기준으로 환산해 줄 필요가 있다. 이것을 로봇 기구학(Robot Kinematics)라고 부르며, 관절의 상태를 끝단의 상태로 환산하면 정기구학(Forward Kinematics), 끝단의 상태를 관절의 상태로 환산하면 역기구학(Inverse Kinematics)라고 부른다.
- 관절 수준에서의 궤적을 얻었다면 로봇을 실제로 그 궤적대로 움직이는, 제어(Control)할 차례이다. 제어에는 수많은 기법들이 있는데 크게 분류하면 로봇의 기계적인 특징들을 참고로 하여 로봇을 움직이는 모델 기반 제어(Model Base Control)과 비교적 범용적으로 쓸 수 있는 형태의 비-모델 기반 제어(Non-model Based Control)이 있다. 모델 기반 제어의 경우 기계적인 특성값들에 대한 정보가 필요하여 로봇 동역학(Robot Dynamics)의 계산이 필요하다. 이 과정에서 로봇이 효과적으로 움직이도록 제어기 내부의 수치를 조정하게 되는데, 이것을 튜닝(Tuning)이라고 한다.
- 제어의 결과 로봇 관절에 내릴 명령값을 얻었으면, 이것을 로봇 관절에 있는 모터로 보내 실제로 그렇게 움직여야 한다.
실제로 값을 읽고 쓰는 부분에 대해서는 설계 변경까지 가지 않는다면 개입할 여지가 거의 없으므로, 수행할 작업은 크게 아래와 같게 된다.
- 경로 계획 (Path Planning)
- 궤적 생성 (Trajectory Generation)
- 기구학 및 동역학 연산 (Kinematics & Dynamics Calculation)
- 제어 (Control)
실제로 쓸 만한 성능으로 로봇을 움직이려면, 위의 작업이 최소 1초에 500번은 수행될 필요가 있으며, 더 빠르게 실행할 수 있을수록 좋다. 이는 로봇이 컴퓨터에 의해 제어되는 이산 시스템(Discrete System)이라서 그런 것이며, 로봇의 정보를 읽고 쓰는 주기는 일정해야 시스템이 안정하다. 때문에 이 모든 계산들은 평균적으로 빠른 알고리즘보다는 최악의 경우만을 상정했을 때 기준으로 빠른 알고리즘이 유리하다.
반응형