로봇제어기 (Robot Controller)

로봇공학
한 줄 정의: 센서 정보를 받아 제어 알고리즘을 실행하고 액추에이터에 명령을 내리는 하드웨어 및 소프트웨어 시스템 전체를 가리킨다. 실시간 연산이 요구되는 저수준 제어부터 경로계획 등 고수준 판단까지 포함할 수 있다.

쉽게 풀면

로봇의 두뇌 역할을 하는 장치로, 센서 정보를 받아 계산하고 모터에 명령을 내려요. 사람이 눈으로 컵의 위치를 보고 뇌가 팔 근육에 "이만큼 뻗어라"라고 신호를 보내는 것처럼, 로봇제어기는 엔코더나 카메라 같은 센서에서 들어온 정보를 받아 다음 순간 각 관절이 얼마나 움직여야 하는지 계산하고, 그 결과를 액추에이터에 명령으로 전달하는 역할을 쉼 없이 반복합니다.

왜 중요한가

실시간성이 요구되는 저수준 제어부터 경로계획 등 고수준 판단까지 포괄하는 통합 시스템으로, 로봇의 실제 성능과 신뢰성을 좌우하는 핵심 구성요소로 다뤄집니다. 아무리 정교한 제어 알고리즘을 설계해도 이를 정해진 주기 안에 빠짐없이 계산해 실행하는 제어기가 뒷받침되지 않으면 실제 로봇에서는 진동이나 지연 같은 문제로 나타나기 때문에, 하드웨어 선정과 소프트웨어 구조 설계가 로봇 프로젝트의 성패를 가르는 요소로 다뤄집니다.

논문에서는 이렇게 쓰입니다

본 로봇제어기는 1kHz 주기로 관절 토크 명령을 계산하여 각 액추에이터 드라이버에 전송하였다.

논문에서 로봇제어기는 제어 알고리즘이 실제로 실행되는 하드웨어/소프트웨어 플랫폼을 지칭하는 용어로 사용됩니다.

"실시간 운영체제 기반의 로봇제어기에 ROS2 상위 노드를 연동하여, 저수준 제어는 1kHz로, 경로계획과 인식은 비실시간 계층에서 수행하도록 구조화하였다."

제어기가 하나의 단일 장치가 아니라, 실시간성이 요구되는 부분과 그렇지 않은 부분을 계층적으로 나누어 구성하는 소프트웨어 구조로 설계된다는 점을 보여주는 문장이다.

조금 더 깊게 보면

제어기의 성능은 하드웨어 사양뿐 아니라 소프트웨어 아키텍처와 실시간 운영체제 설정에도 크게 좌우되어, 단순 사양 비교만으로 성능을 판단하기는 어렵습니다. 저수준에서는 마이크로초 단위의 정확한 주기로 토크나 전류를 계산해야 하는 실시간 운영체제가 필수적이며, 고수준의 경로계획이나 인식은 상대적으로 여유 있는 시간 내에 처리해도 되는 비실시간 계층에서 수행하는 계층적 구조가 일반적입니다. 최근에는 ROS·ROS2 같은 오픈소스 로봇 소프트웨어 프레임워크가 이런 계층 구조를 표준화하는 역할을 하고 있습니다.

주의할 점

로봇제어기의 제어 주기(샘플링 시간)가 충분히 빠르지 않으면 고성능 제어기를 사용해도 실제 성능이 제한될 수 있다.

관련 용어