로봇 제어기 특성
📌 개요
- 모니터링 툴 개발의 전제 = 감시 대상인 로봇 제어기(Robot Controller)가 어떤 장치이고 어떤 정보를 내놓는지 파악
- 제어기 = 로봇의 "두뇌" → 모션 제어·입출력·통신·안전 기능 총괄
- 모니터링 프로그램 = 제어기가 외부로 제공하는 상태 정보(관절 위치, 전류, 알람 등)를 받아서 동작
- 출제 포인트: 제어기의 구성 요소·계층 구조, 실시간성 요구, 개방형/폐쇄형 분류, 모니터링 대상 상태 정보
📖 핵심 개념
로봇 제어기란 무엇인가
- 로봇 제어기(Robot Controller) = 로봇의 동작을 계산하고 명령하는 컴퓨터 시스템
- 비유: 팔다리(머니퓰레이터·구동부)를 움직이는 두뇌와 신경에 해당
제어기가 수행하는 핵심 기능은 네 가지다.
- 모션 제어(Motion Control): 목표 경로를 따라 각 관절의 위치·속도·토크를 계산하고 서보 드라이브에 지령 (→ 액추에이터 제어구조 설계)
- 입출력(I/O) 처리: 센서 입력을 읽고 그리퍼·컨베이어 등 주변장치에 신호 출력
- 통신(Communication): 상위 서버·티치 펜던트·다른 장비와 데이터 교환
- 안전(Safety) 기능: 비상정지, 속도 제한, 충돌 감지, 인터록(Interlock) 처리
제어기의 하드웨어 구성
| 구성 요소 | 역할 |
|---|---|
| 메인 프로세서(Main Processor) | 작업 프로그램 해석, 경로 계산, 시스템 전체 관리 |
| 모션 제어부(Motion Control Unit) | 각 축의 실시간 위치·속도 제어 연산 |
| 서보 드라이브(Servo Drive) | 제어 지령을 받아 모터에 전류를 공급하는 전력 변환 장치 |
| I/O 모듈 | 디지털·아날로그 입출력 (센서, 밸브, 릴레이 등) |
| 통신 인터페이스 | 이더넷, 필드버스(EtherCAT, CAN 등), 시리얼, 무선 |
| 티치 펜던트(Teach Pendant) | 작업자가 로봇을 수동 조작(조그)·교시·설정하는 휴대 단말 |
| 전원부·안전 회로 | 전원 공급, 비상정지 체인, 안전 릴레이 |
계층 구조 — 상위 제어와 하위 제어
-
로봇 제어기는 보통 계층(Hierarchy) 으로 나뉨
-
핵심: 계층마다 요구되는 제어 주기(실시간성) 가 다름
-
상위 제어기(High-level Controller): 작업 계획, 경로 생성, 사용자 인터페이스, 서버 통신 담당. 주기 수십 ms 수준 또는 비실시간 — 일반 OS(Linux 등)로 충분한 영역
-
하위 제어기(Low-level Controller): 관절 서보 제어, 센서 실시간 처리 담당. 주기 1 ms 이하의 경성 실시간(Hard Real-time) — RTOS나 전용 하드웨어가 필요 (→ 로봇 소프트웨어 운영체제)
-
모니터링 프로그램은 대부분 상위(비실시간) 영역에서 동작 → 하위 계층이 만들어 내는 실시간 데이터를 전달받아 표시
-
이유: 모니터링이 실시간 제어 루프를 방해하면 안 되기 때문
제어기의 분류 — 폐쇄형 vs 개방형
- 폐쇄형(전용) 제어기(Closed/Proprietary Controller): 로봇 제조사가 하드웨어·소프트웨어를 일체형으로 공급. 안정적이고 안전 인증이 잘 되어 있으나, 내부 구조가 공개되지 않아 제조사가 제공하는 인터페이스(API)로만 상태를 읽을 수 있다
- 개방형 제어기(Open Controller): PC 기반 또는 공개 플랫폼 기반으로 표준 OS·미들웨어(ROS 등) 위에 구성. 사용자가 기능을 추가·수정하기 쉬워 모니터링 툴 개발 자유도가 높다
- 임베디드 제어기(Embedded Controller): 소형 로봇·모듈에 내장되는 저전력 보드 형태 (→ 임베디드 프로그래밍 특성)
모니터링 관점에서 본 제어기 특성
모니터링 툴 개발자가 파악해야 할 것은 "제어기가 무엇을, 어떤 통로로, 얼마나 자주 내놓는가"이다.
- 상태 데이터(State Data): 관절별 위치·속도·전류·토크, TCP 포즈, 서보 온도, 부하율 — 주기적으로 갱신되는 수치
- 알람·이벤트(Alarm/Event): 에러 코드, 경고, 비상정지 발생 — 비주기적으로 발생하는 사건
- I/O 상태: 디지털·아날로그 입출력의 현재 값
- 가동 정보: 운전 모드(자동/수동), 프로그램 실행 상태, 가동 시간
- 제공 통로: 필드버스, 이더넷 소켓, 제조사 API/SDK, OPC UA 같은 표준 인터페이스 (→ 로봇 구성 요소 간 통신 프로토콜)
안전 관련 특성
제어기는 산업 안전 규격에 따라 안전 기능을 갖추며, 모니터링 툴도 이 상태를 표시해야 한다.
- 비상정지(Emergency Stop, E-Stop): 즉시 동력을 차단하는 최우선 기능
- 데드맨 스위치(Deadman Switch/Enabling Device): 티치 펜던트에서 손을 떼거나 꽉 쥐면 정지 — 수동 조작 중 안전 확보
- 인터록(Interlock): 안전 도어 열림 등 조건 위반 시 동작 차단
- 속도·영역 제한: 교시 모드 저속 제한, 작업 영역(Safety Zone) 제한
📊 다이어그램 · 수식
로봇 제어기 구성과 모니터링 데이터 흐름
graph TD
TP["티치 펜던트
(교시·수동조작)"] --- MP
SRV["상위 서버 · 모니터링 툴"] -- "이더넷 (상태 데이터·알람)" --- MP
subgraph CTRL["로봇 제어기"]
MP["메인 프로세서
작업 해석·경로 계산"] --> MC["모션 제어부
실시간 축 제어 (≤1ms)"]
MP --> IO["I/O 모듈"]
SAFE["안전 회로
비상정지·인터록"] --> MP
end
MC --> SD["서보 드라이브"] --> M["모터·액추에이터"]
M -- "엔코더 피드백" --> MC
IO --- EXT["센서·주변장치"]제어 계층별 요구 주기
| 계층 | 담당 | 대표 제어 주기 | 실시간성 |
|---|---|---|---|
| 작업 계획·UI·서버 통신 | 상위 제어기 | 수십 ms ~ 초 | 비실시간/연성 |
| 궤적 생성(보간) | 상위~중간 | 수 ms ~ 수십 ms | 연성~경성 |
| 관절 서보 제어 | 하위 제어기 | 0.1 ~ 1 ms | 경성 실시간 |
🎯 핵심 요약 · 암기 포인트
✏️ 예상문제
1. 로봇 제어기의 계층 구조에서 경성 실시간(Hard Real-time) 이 요구되는 기능은?
① 사용자 인터페이스 표시 ② 관절 서보 제어 ③ 서버로의 로그 전송 ④ 작업 통계 리포트 생성
정답 및 해설
정답: ② 관절 서보 제어는 0.1~1 ms 주기를 어기면 진동·폭주 등 제어 실패로 직결되므로 경성 실시간이 필요하다. ①③④는 조금 늦어도 시스템이 파괴되지 않는 비실시간~연성 작업이다.
2. 티치 펜던트(Teach Pendant)에 대한 설명으로 옳지 않은 것은?
① 로봇을 수동으로 조그(Jog) 조작할 수 있다 ② 작업 위치를 교시(Teaching)하는 데 사용한다 ③ 데드맨 스위치 등 안전장치가 부착된다 ④ 관절 서보 제어 연산을 직접 수행한다
정답 및 해설
정답: ④ 서보 제어 연산은 제어기 내부의 모션 제어부가 수행한다. 티치 펜던트는 작업자용 조작·교시·설정 단말이며, 수동 조작 중 안전을 위해 데드맨 스위치를 갖춘다.
3. 개방형(Open) 제어기의 특징으로 가장 적절한 것은?
① 제조사가 하드웨어와 소프트웨어를 일체형으로만 공급한다 ② 내부 구조가 비공개라 제조사 API로만 접근한다 ③ 표준 OS와 공개 미들웨어 기반이라 사용자가 기능을 추가·수정하기 쉽다 ④ 안전 인증을 받을 수 없다
정답 및 해설
정답: ③ 개방형 제어기는 PC·공개 플랫폼 기반으로 ROS 같은 미들웨어를 활용해 확장이 쉽다. ①②는 폐쇄형(전용) 제어기의 설명이고, ④ 개방형이라도 설계에 따라 안전 인증을 받을 수 있다.
4. 모니터링 툴이 제어기로부터 받는 정보 중 비주기적(이벤트성) 정보에 해당하는 것은?
① 관절별 현재 위치 ② 서보 모터 온도 ③ 비상정지 발생 알람 ④ TCP 현재 포즈
정답 및 해설
정답: ③ 알람·에러 코드·비상정지는 사건이 발생할 때만 전달되는 비주기적 이벤트다. ①②④는 일정 주기로 계속 갱신되는 상태 데이터다.
🔗 관련 노트
- 로봇 모니터링 프로그램 — 이 제어기 정보를 수집·표시하는 프로그램
- 액추에이터 제어구조 설계 — 제어기 내부의 제어 루프 구조
- 로봇 소프트웨어 운영체제 — 실시간성과 RTOS
- 로봇 구성 요소 간 통신 프로토콜 — 제어기 내·외부 통신
- 로봇 구성요소 — 로봇 전체 구성에서 제어기의 위치
- _MOC 로봇운영소프트웨어