제로웍스 로봇서비스 개발 가이드

제로웍스 로봇이 비스캣 관제와 연동해야 할 인증·미션·메시징 규약을 제공합니다.

이 가이드 구성

아래 세 문서로 나뉩니다. 먼저 시나리오로 전체 흐름을 잡고, API 문서에서 채널·페이로드를 확인하세요.

1. 연동 개요

주문은 오토메타 커머스 앱 → 오토메타 커머스 백엔드 → 비스캣 관제 경로로 진입하고, 관제가 미션을 생성해 대기 큐에 적재합니다. 로봇 서비스는 mode → goal → mission 3계층으로 정의하며, 한 mission(고객 오더 단위)은 여러 goal에 걸칠 수 있습니다(픽업 goal + 하차 goal). 관제가 수행 가능한 후보 로봇에게 MQTT로 미션을 제시(입찰 요청)하면 로봇들이 goal별 예상 도착시간을 입찰하고, 관제가 최소 도착시간 기준으로 배차를 결정해 통보합니다. 단지 인프라(엘리베이터·로비폰) 제어는 관제가 처리하므로, 로봇은 단지 인프라를 직접 호출하지 않습니다.

2. 로봇(제로웍스)이 구현할 책임

구분책임채널
인증비밀키·인증서 발급 수신(REST), 인증서로 MQTT 연결REST
맵 등록UI 버튼으로 지도·노드를 siteId·제시 mapId 기준 업로드(등록 개시 → 업로드 URL에 PUT → commit)REST
미션 입찰입찰 요청(offer) 수신 → goal별 예상 도착시간 자체 계산해 입찰(bid) 회신 → 배차 결과(result) 수신MQTT
배송 가능여부 견적견적 질의(quote/offer — quoteId·deliveryType·목적지 요약의 축약 본문) 수신 → goal별 수행 가능 여부·도착 예상 시각(available·estArrival) 회신(quote/bid). 응답 형식은 배차 입찰과 동일, 입찰과 달리 미션 미생성·낙찰 없음MQTT
goal 수행낙찰 goal을 arrivalOrder 순으로 수행, 진행 상태(standby/doing/done·progress·estArrival) 발행. 관제가 발급한 goal·mission id 를 그대로 echoMQTT
상태·알람상태/배터리/위치 발행(retain, 변동 필드만). 보행자 안전 이벤트·소프트웨어 인벤토리 발행. 이상 시 알람(code·level·msg) 발행MQTT
인프라 요청엘베·로비폰이 필요한 시점에 r2s/{robot_id}/resource로 관제에 요청 → resource/ready 수신 후 진행. 탑승·하차 완료 보고 필수(누락 시 엘베 콜 취소), 탑승 불가 시 로봇이 status: "cancelByRobot"으로 자진 취소도 가능MQTT
PIN 검증goal.mission[].PIN으로 로컬 검증 후 지정 도어 개방, 사용·검증 결과를 관제에 감사 이벤트로 보고MQTT
적재함관제가 goal.mission[].door(door1~doorN)로 지정한 칸을 열고/잠금 (칸 선택은 관제가 결정, 점주 임의 선택 불가). 칸 수 N은 로봇별 설정MQTT
상차·하차 완료 보고박스를 닫으면 해당 pickup/dropoff mission 을 done으로 발행 → 상차 done이 배달 출발 트리거, 하차 done이 수령 완료MQTT
취소 사유 발행수행 불가 시 goal·mission 을 canceled + reason으로 발행 (사유 없는 취소는 관제에 기록되지 않음)MQTT

3. 선결 조건·협의 항목

아래는 1.5차 결합 전 제로웍스와 확정해야 할 항목입니다. 확정 시 연동 API 문서의 해당 페이로드를 잠급니다.