로봇 통합 제어 플랫폼
서로 다른 산업용 로봇 브랜드(JAKA · Doosan · UR · Fairino · UFACTORY · AUBO)를 하나의 REST API로 추상화한 통합 제어 백엔드와, 그 위에서 코드 없이 로봇 작업을 구성·실행하는 노코드 워크플로우 프론트엔드로 이루어진 플랫폼입니다. 브랜드마다 다른 SDK·명령 체계를 공통 인터페이스로 흡수해, 상위 애플리케이션 개발자가 동일한 API로 로봇을 제어하고, 운영자는 노드를 드래그·연결하는 것만으로 로봇 동작 시퀀스를 만들고 실행할 수 있도록 구성했습니다.
- •기간: 2024년 ~ (백엔드 통합 API 완료 후 프론트엔드 추가 개발 중)
- •구성: Python · Flask 통합 제어 API(백엔드) + Next.js 노코드 워크플로우 플랫폼(프론트엔드)
- •성격: R&D 과제 기반 통합 플랫폼
담당 역할
2024년 백엔드 통합 API 설계·구현을 담당했고, 이어서 이를 소비하는 프론트엔드 워크플로우 플랫폼을 추가 개발하고 있습니다.
백엔드
- •공통 인터페이스(
core_robot) 및 브랜드별 어댑터 설계 — 신규 브랜드는 어댑터만 확장 - •JWT + Redis 기반 로봇 세션·상태 관리, 다중 로봇 환경의 데이터 격리
- •동작(포즈) CRUD 및 순서 제어, 저장 시퀀스 일괄 반복 실행
프론트엔드
- •비주얼 플로우 에디터 — 노드 그래프로 로봇 작업을 구성
- •클라이언트 워크플로우 실행 엔진 — 노드별 실행 상태·일시정지/재개/중지·실행 로그
- •로봇 3D 뷰(URDF) 및 연결·전원·서보·모션을 다루는 제어 패널
- •다국어(국/영) · 다크/라이트 테마 · httpOnly 쿠키 인증
기술 스택
| 분류 | 기술 |
| 백엔드 언어 / 프레임워크 | Python, Flask |
| 인증 / 세션 / 저장 | PyJWT, Redis (Hash · Sorted Set) |
| 로봇 SDK | JAKA (jkrc), Doosan (C++ 바인딩), UR (ur-rtde), Fairino, UFACTORY (xArmAPI), AUBO |
| 프론트엔드 | Next.js 16 (App Router), React 19, TypeScript |
| 상태 / 서버 상태 | Zustand, TanStack Query |
| 플로우 에디터 / 3D | React Flow(@xyflow/react), three.js + urdf-loader |
| UI / i18n | Tailwind CSS, shadcn/ui, next-intl(국/영) |
핵심 기능
멀티 브랜드 로봇 통합 제어 API (백엔드)
/set_ip로 로봇 타입·IP를 등록하면 JWT 토큰을 발급하고, 이후 /power_on, /power_off, /enable_robot, /disable_robot, /shut_down 등 공통 엔드포인트로 브랜드 차이에 관계없이 동일한 방식으로 로봇을 제어합니다.
동작(포즈) 관리 · 시퀀스 실행 (백엔드)
/save_move, /update_move, /copy_move, /delete_move, /reorder_moves로 모션을 저장·수정·복사·삭제·재정렬하고, /run_all_moves로 저장된 시퀀스를 지정 횟수만큼 반복 실행합니다. 사용자·로봇 단위로 네임스페이스를 분리해 다중 로봇 환경에서도 데이터가 섞이지 않습니다.
노코드 비주얼 워크플로우 에디터 (프론트엔드)
전원·서보·이동·대기·조건·반복·거리·카메라·코드 노드를 드래그해 연결하면 로봇 작업 시퀀스가 됩니다. 노드별 속성 패널에서 좌표·각도·반복 횟수 등을 설정하고, 작성한 워크플로우는 프로젝트 단위로 저장·재사용합니다.
워크플로우 실행 엔진 (프론트엔드)
작성한 노드 그래프를 순회하며 통합 제어 API를 순차 호출합니다. 실행 중 노드별 진행 상태를 실시간 표시하고, 일시정지 · 재개 · 중지와 실행 로그 패널을 제공해 운영자가 현장에서 흐름을 직접 통제할 수 있습니다.
로봇 3D 뷰 & 제어 패널 (프론트엔드)
URDF 기반 3D 뷰어로 로봇 자세를 시각화하고, 연결·재연결·전원·서보·joint/linear 모션·정지(abort)를 한 패널에서 조작합니다. 좁은 화면에서는 패널이 플로팅 형태로 전환되도록 처리했습니다.
성과
중소기업기술정보진흥원 창업성장기술개발(R&D) 국책과제 *「Unified 로봇 API 기술을 활용한 로봇 애플리케이션 개발 플랫폼 구축」* 의 일부로 수행했습니다. 브랜드별 제어 방식 차이를 API 계층에서 흡수하고, 그 위에 코드 없이 로봇 작업을 설계·실행하는 프론트엔드를 얹어, 비개발자도 통합된 방식으로 다종 로봇을 운용할 수 있는 기반을 만들었습니다.
