결론부터 말하면, RCS 작업 할당은 "가장 가까운 로봇에게 보내는 것"이 아니다. 할당 품질을 실제로 결정하는 네 가지 변수는 거리, 배터리, 작업 유형, 혼잡이며, 이를 함께 가중한다. 나는 기본값인 최근접 우선 정책이 실패하는 것을 세 번 보았는데, 각본은 매번 똑같았다. 할당 로직만 제대로 잡으면, 20대 AMR 플릿은 빈차 운행률을 약 40%에서 25% 미만으로 낮출 수 있고, 피크 시간 통로 정체는 사실상 사라진다.
최근접 우선 할당이 계속 실패하는 이유
2023년 9월, 중국 동부의 3PL 의류 창고에서 리프트형 AMR 18대가 가동에 들어갔다. RCS는 공급업체 기본 정책인 순수 최근접 우선 할당으로 돌아갔다. 가동 첫날 프로모션에서 입고 작업 6건이 한꺼번에 떨어졌다. RCS는 가장 가까운 6대를 보냈고, 그 6대는 모두 같은 메인 통로로 몰렸다. 앞 로봇은 뒤 로봇이 양보하기를 기다렸고, 뒤 로봇은 앞 로봇에 막혀 있었다. 11분간의 완전 정지. 그 사이 반대편 끝의 출고 작업 4건은 쓸 로봇이 없어 방치되었다. 가장 가까운 로봇들은 모두 정체에 갇혀 있었기 때문이다. 나는 이 실패를 정확히 세 번 보았다.
최근접 우선은 한 번의 배차 빈차 거리만 최적화하고, 배차 이후 플릿이 어떻게 되는지는 무시한다. 6대를 한꺼번에 같은 방향으로 보내는 것은 스스로 교통 정체를 만드는 일이다.
RCS 할당이 실제로 사용하는 네 가지 변수
내 가동 전날 체크리스트에서 작업 할당은 네 가지 항목으로, 하나씩 확인한다.
- 거리: 직선 거리가 아니라 빈차 경로 길이, 즉 로봇에서 작업까지의 실제 이동 거리로, 일방통행 통로와 우회까지 포함한다. 직선으로 30미터인 작업이 실제 주행으로는 120미터인 경우가 허다하다.
- 배터리: 충전 상태 30% 미만인 로봇은 자동으로 단거리만 맡도록 격하하고, 20% 미만이면 신규 작업에서 잠그고 충전으로 보낸다. 나는 RCS가 12%인 로봇에게 구역 횡단 장거리 운송을 맡긴 프로젝트를 본 적이 있다. 통로 한가운데서 멈춰서 누군가 손으로 밀어낼 때까지 주요 동맥을 막았다.
- 작업 유형: 모든 로봇이 모든 일을 할 수 있는 것은 아니다. 리프트형과 포크형은 섞을 수 없고, 무거운 파렛트(예컨대 1톤 초과)는 중장비 모델에만 간다. RCS 작업 풀은 어떤 할당이 일어나기 전에 차량 능력 태그로 필터링해야 한다.
- 혼잡: 향후 2분 안에 다른 로봇이 대상 통로에 들어갈 것인가? RCS는 예약 방식으로 할당해야 한다. 배차 시 경로를 예약하고, 통로당 동일 방향 진입을 (통로 폭에 따라 보통 2대나 3대로) 제한한다.
내가 권장하는 우선순위는 작업 유형(먼저 하드 필터) → 배터리(하드 제약) → 혼잡(동적 페널티) → 거리(동점 해소)이다. 대부분의 RCS 기본값은 거리를 최우선으로 둔다. 그것이 실패의 근본 원인이다.
로봇 작업 할당 전략 비교: 네 가지 중 하나 고르기
| 전략 | 로직 | 강점 | 약점 | 적합한 경우 |
|---|---|---|---|---|
| 최근접 우선 | 가장 짧은 빈차 운행이 승리 | 단순하고 응답이 빠름 | 정체, 배터리 무시 | 10대 미만 플릿, 비피크 시간 |
| 구역 배정 | 창고를 구역으로 나누고 구역별 고정 로봇 | 구역 간 빈차 운행 제로, 이해하기 쉬움 | 부하 불균형. 핫 구역이 무너짐 | 작업 분포가 안정적인 창고 |
| 경매 기반 | 작업을 방송하고 각 로봇이 비용을 입찰. 최저 입찰이 승리 | 거의 전역 최적, 배터리와 거리를 자연스럽게 반영 | 복잡함. 본격적인 RCS 연산 능력 필요 | 30대 초과 플릿 |
| 사전 배정 + 동적 재계획 | 5분 앞을 계획하고 혼잡 시 실시간 재계획 | 피크에 가장 안정적, 정체 최소 | WCS의 주문 예측 필요 | 피크가 날카로운 이커머스 창고 |
어떻게 고를 것인가? 세 가지 질문이다. ① 플릿이 20대보다 큰가? 그렇다면 최근접 우선은 버린다. ② 뚜렷한 피크가 있는가? 그렇다면 사전 배정을 쓴다. ③ RCS 하드웨어가 경매를 돌릴 수 있는가? 아니라면 수동 조정과 함께 구역 방식으로 돌아간다. 가장 화려한 알고리즘을 숭배하지 마라. 안정적으로 돌아가는 것이 이긴다.
가동 전날 체크리스트: RCS 작업 할당 편
- 저배터리 잠금 임계값이 설정되었는가? 나는 20% 잠금, 30% 격하를 쓴다.
- 차량 능력 태그가 작업 유형과 매칭되었는가? 부정 테스트를 한 번 수행한다. 의도적으로 부적합한 작업을 발행하고 RCS가 이를 거부하는지 확인한다.
- 통로별 동시 진입 상한이 설정되었는가? 주요 동맥과 지선 통로를 따로 설정한다.
- 빈차 운행 기준선이 측정되었는가? 첫 주에는 빈차 주행 거리를 총 주행 거리로 나눈 값을 매일 추적한다. 35%를 넘으면 재조정한다.
- RCS 대 WCS 책임이 문서화되었는가? 누가 작업을 나누고, 누가 로봇을 배정하며, 인터페이스가 시간 초과될 때 누가 폴백을 맡는지, 모두 문서로 남긴다.
비용이 큰 세 가지 실패 모드
실패 1: 한 통로에서의 로봇 정체. 2024년 5월, 중국 남부의 뷰티 이커머스 창고에서 24대 AMR. 자정 프로모션에서 40건의 출고 작업이 10초 안에 떨어졌다. 최근접 우선은 14대를 같은 메인 통로로 출고 도크 방향으로 보냈다. 완전한 정체였다. 수정 방법은 RCS에 통로 예약을 추가하는 것이다. 동일 방향 진입이 3건을 초과하면 이후 작업은 자동으로 우회하거나 배차를 30초 지연시킨다. 변경 후 동일한 웨이브 규모에서 메인 통로 통과 시간은 평균 9분에서 3분 미만으로 떨어졌다.

실패 2: RCS, WCS, PLC 사이의 흐릿한 경계. 망할 프로젝트의 가장 흔한 근본 원인이다. 역할 분담은 이래야 한다. WCS는 주문을 이동 작업으로 쪼갠다(무엇을 A에서 B로 옮길 것인가). RCS는 작업을 특정 로봇에게 배정하고, 경로를 계획하고, 교통을 관리하고, 충전을 스케줄링한다. PLC는 저수준 하드웨어(롤러, 리프트)만 다룬다. 나는 WCS와 RCS가 둘 다 경로를 계획해서 두 경로 계획이 서로 싸우며 로봇이 교차로에서 제자리에서 빙빙 도는 프로젝트를 본 적이 있다. 처방은 인터페이스 계약을 돌에 새기듯 적는 것이다. WCS는 작업을 발행하고, 절대 경로를 정하지 않는다. 경로는 100% RCS 영역이다.
실패 3: 배터리를 확인하지 않고 배차하는 것. 위에서 다뤘다. 장거리 운송에 나선 저배터리 로봇은 시한폭탄이다. 한 가지 더: 충전기 위치는 할당 모델에 속한다. 배차 시 저배터리 로봇에게 충전기 근처에서 끝나는 작업을 주어, 일을 마치고 바로 충전으로 들어가게 한다. 일석이조다.
직관에 반하는 결정: 플릿을 풀가동하지 말 것
많은 창고 소유주는 노는 로봇이 돈 낭비라고 생각한다. 틀렸다. 내 규칙은 플릿의 15–20%를 항상 유연 용량으로 유지하는 것이다. 작업은 파도처럼 몰려온다. 풀가동 플릿이 파도를 맞으면 보낼 로봇이 없어 모든 것이 줄을 서고, 대기열이 모든 작업을 함께 지연시킨다. 20%를 예비로 두면 파도가 흡수되고 평균 작업 대기 시간이 실제로 떨어진다. 그 뷰티 창고에서는 24대 중 4대를 유연 용량(긴급 작업 전용)으로 유지했는데, 프로모션 중 평균 작업 대기 시간이 24대를 모두 돌릴 때보다 대략 3분의 1 줄었다. 트레이드오프는 4대가 국지적으로 노는 것처럼 보인다는 것이지만, 시스템 전체는 더 빠르게 돌아간다. 이것이 RCS 작업 할당에서 가장 어려운 교훈이다. 최적의 배정은 모든 로봇을 바쁘게 유지하는 것이 아니라, 시스템을 막히지 않게 유지하는 것이다.
Lin Xiao, WMS 구현 컨설턴트 지음
영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.






