팔레타이징 자동화 시스템
인쇄·출판 공정에서 스태커로 모인 책(인쇄물)을 로봇이 팔레트에 자동 적재하는 산업 자동화 시스템입니다. 작업자가 UI에서 팔레트 종류·치수·모드를 선택하면, 로봇이 해당 조건에 맞춰 픽업-적재를 반복 수행합니다. 수작업 적재를 자동화하면서 높이 한계와 안전 상태를 실시간으로 관리하는 데 중점을 뒀습니다.
- •기간: 2024년 1월 ~ 2025년 2월
- •플랫폼: Desktop (pywebview 기반 로컬 앱)
- •납품처: 코레버출판인쇄(주)
담당 역할
장비 제어 백엔드와 운영 UI를 담당했습니다. 로봇 적재 시퀀스와 함께 현장 공차와 센서 불확실성을 흡수하는 제어 로직에 무게를 두었고, 실행 중 재시작에도 작업 연속성이 유지되도록 상태 영속화를 설계했습니다.
- •팔레트 타입별 좌표계 자동 보정 및 적재 시퀀스 분기
- •일반 / 1열 적재 모드 분리 운영
- •스태커·그리퍼·동력장치 IO 통합 제어 (Modbus RTU + 로봇 IO)
- •실시간 안전 상태 모니터링 및 복합 인터락
- •진행 상태 JSON 영속화 (재기동 시 작업 재개)
기술 스택
| 분류 | 기술 |
| Backend | Python, Flask (Blueprint), Waitress |
| Desktop App | pywebview (로컬 웹 UI 앱 구동) |
| Robot Control | JAKA Robot SDK (jkrc) |
| 설비 통신 | Modbus RTU (minimalmodbus, pyserial) |
| Frontend | HTML, CSS, Vanilla JavaScript (fetch API) |
| 데이터 / 운영 | JSON 기반 상태 캐시 (cache.json, oneLine.json), 파일 로그 |
| 동시성 | threading (스태커 구동 스레드 + 상태 모니터링 루프) |
핵심 기능
팔레트 타입별 운전
목재 바퀴형 / 철제 바퀴형 / 목재 평판형 팔레트를 선택하고, 치수(가로·세로·높이)를 입력하면 자동으로 좌표계가 보정되어 같은 로직으로 안정 적재됩니다.
일반 / 1열 적재 모드
연속 적재(Normal) 모드와 특정 라인 중심 적재(One-line) 모드를 분리 제공합니다. 각 모드의 진행 상태를 cache.json·oneLine.json에 독립 저장해 모드 전환·재기동 시 충돌을 방지합니다.
로봇 동작 자동화
수직/수평 그리퍼 IO 제어로 책을 그립하고, 레이어별 적재 위치로 이동 후 홈 복귀까지 반복 수행합니다. 실제 적재 높이(Z)를 리미트 센서로 측정해 누적 오차를 보정합니다.
스태커 · 주변장치 제어
스태커 시작/정지, 상하·좌우 실린더 수동 제어 API를 제공해 작업자가 현장 상황에 맞춰 개입할 수 있습니다. Modbus RTU와 로봇 디지털 IO를 결합해 실린더·동력장치·경광등을 통합 제어합니다.
실시간 안전 상태 · 인터락
센서 상태, 비상/보호정지, 최대 높이 근접 여부를 종합 판단해 동력장치와 경광등(초록/주황/빨강)을 분기 제어합니다. 복합 조건 게이팅으로 단일 센서 오동작이 전체 라인에 영향을 주지 않도록 했습니다.
운영 편의 기능
즉시 집기, 작업 종료, 데이터 리셋, 파일 로그, 진행 화면 실시간 갱신 등 현장 작업자가 자주 쓰는 기능을 UI로 노출했습니다.
성과
- •코레버출판인쇄(주)에 자동 팔레타이징 장비 1대 납품
- •현장 요구(팔레트 타입별 운전, 모드 분리, 수동 개입, 안전 인터락)를 반영한 제어 앱으로 구축
- •실제 Z좌표 기반 높이 보정으로 레이어 누적 오차를 완화해 상부 레이어 적재 정밀도 개선