다중 로봇 작업 할당: 주문·거리·배터리·혼잡을 플릿 스케줄에 넣는 방법

다중 로봇 작업 할당은 가장 가까운 로봇을 고르는 문제가 아닙니다. 이미 맡은 작업의 종료 시점, 배터리와 충전기, 통로 혼잡, 마감 시각을 하나의 비용으로 바꾸고 실행 중 다시 계산해야 합니다. 이 글은 후보 제거부터 비용 행렬, 입찰, 재할당과 운영 지표까지 구현 순서로 정리합니다.

아래에서는 용어의 차이를 실제 시스템 경계, 실패 조건과 검증 순서로 나눠 살펴봅니다.

다중 로봇 작업 할당은 가장 가까운 로봇 찾기보다 완료 시간을 줄이는 문제다

작업 위치와 로봇 위치만 비교하면 이미 긴 주문을 수행 중인 가까운 로봇이 빈 로봇보다 먼저 선택될 수 있습니다. 물류 AI 시스템 글이 예측과 운영 전체를 다룬다면, 여기서는 새 작업을 어느 로봇에 언제 넘길지 결정하는 플릿 배정기만 다룹니다.

배정 목표는 평균 이동거리 최소화, 마감 지연 최소화, 처리량 최대화처럼 명시해야 합니다. 현장에서는 한 지표만 줄일 때 충전 대기나 특정 로봇 쏠림이 커지므로 주목표와 제한조건, 보조 벌점을 분리하는 편이 해석하기 쉽습니다.

먼저 작업과 로봇 상태를 같은 시각의 스냅샷으로 만든다

작업에는 픽업·드롭 위치, 적재물 종류와 무게, 우선순위, 마감 시각, 필요한 장비를 넣습니다. 로봇에는 현재 위치, 진행 중인 작업의 예상 종료, 배터리, 적재 가능량, 고장·정비 상태와 접근 가능한 구역을 넣습니다.

상태 시각이 섞이면 비용 행렬이 처음부터 틀립니다. 위치와 작업 완료 이벤트는 로봇 시간 동기화 원칙에 맞춰 기록하고, 오래된 상태에는 신선도 제한을 걸어 배정 후보에서 제외해야 합니다.

실행 불가능한 로봇을 제거한 뒤에만 비용을 계산한다

엘리베이터 접근 권한이 없거나 적재 한도를 넘는 로봇, 작업 후 안전한 충전소까지 갈 에너지가 없는 로봇은 큰 벌점을 주는 대신 후보에서 제거합니다. 불가능 조건과 선호 조건을 섞으면 가중치 조정 중 금지된 배정이 다시 살아날 수 있습니다.

후보 필터의 거절 사유를 능력 부족, 구역 제한, 배터리 부족, 정비 중처럼 코드로 남기면 운영자가 왜 특정 로봇이 입찰하지 않았는지 설명할 수 있습니다. 후보가 0대인 작업은 대기열에 숨기지 말고 즉시 예외로 올립니다.

비용·조건계산 근거처리 방식
실행 가능성장비·적재·구역 권한불가능하면 후보 제거
완료 시간잔여 작업+이동+서비스주목표 또는 핵심 비용
에너지작업+충전소 도달 여유하한은 제한조건, 여유는 벌점
혼잡·마감예약 대기+지연 예상운영 우선순위에 맞춰 가중

비용 행렬은 직선거리 대신 예상 완료 시간에서 시작한다

각 로봇과 작업 조합에 대해 현재 작업 종료, 픽업까지 이동, 서비스, 드롭 이동 시간을 합산합니다. Google OR-Tools의 최소비용 할당 예제처럼 조합 비용을 행렬이나 네트워크 흐름으로 표현하면 한 작업씩 탐욕적으로 고를 때 생기는 전체 손실을 줄일 수 있습니다.

예측 이동 시간은 지도 최단거리보다 최근 구간별 통과 시간으로 보정하는 편이 낫습니다. 비용 함수의 단위는 초나 예상 종료 시각으로 통일하고, 에너지와 우선순위는 그 단위로 환산해야 가중치의 의미를 검토할 수 있습니다.

여러 대가 한 공간을 공유하면 혼잡과 충전 여유가 배정 결과를 바꾼다

여러 로봇이 같은 교차로와 충전기를 쓰면 개별 최단경로를 더한 값이 실제 완료 시간이 아닙니다. 예약된 병목 통로의 예상 대기와 충전기 도착 시점의 대기열을 비용에 넣어야 가까운 로봇 쏠림을 막을 수 있습니다.

AMR 자동 도킹 시험 글의 성공률과 재시도 시간도 충전 비용의 입력이 됩니다. 도킹 실패를 0초로 가정하면 배정기는 배터리가 낮은 로봇을 과도하게 사용하고 실제 처리량은 급격히 떨어집니다.

여러 대의 창고 로봇이 격자형 이동 공간에서 동시에 운행하는 실제 현장
여러 로봇이 같은 공간에서 동시에 움직이면 작업 배정 비용에 이동 시간뿐 아니라 예상 혼잡과 충전 여유를 함께 넣어야 합니다. 출처: Techwords. 라이선스: CC BY-SA 4.0. 원본을 본문 비율에 맞게 크롭·리사이즈했습니다.

입찰 방식은 각 플릿이 자기 비용을 계산하고 디스패처가 비교하게 한다

Open-RMF 공식 데모의 작업 디스패치는 BidNotice를 보내고 플릿 어댑터의 BidProposal 비용을 비교해 낙찰하는 흐름을 보여줍니다. 서로 다른 제조사 로봇의 내부 경로 계획을 중앙이 모두 알지 못해도 각 플릿이 현실적인 완료 비용을 제출할 수 있습니다.

입찰 비용의 정의와 시간 기준은 계약처럼 고정해야 합니다. 한 플릿은 이동 시간만, 다른 플릿은 충전까지 포함하면 숫자를 직접 비교할 수 없으므로 예상 종료 시각, 배터리 반영 방식과 실패 시 응답을 인터페이스 문서에 적습니다.

우선순위와 마감은 무한 가중치보다 지연 비용 곡선으로 표현한다

모든 긴급 작업에 같은 거대한 가중치를 주면 긴급 작업끼리 순서를 정할 근거가 사라집니다. 마감 전에는 낮고 마감이 가까워질수록 커지는 지연 비용, 환자 이송이나 생산 정지처럼 반드시 선점해야 하는 작업은 별도의 등급과 선점 규칙을 둡니다.

낮은 우선순위 작업이 계속 밀리는 기아 상태를 막으려면 대기 시간에 따라 우선순위를 올리는 aging을 적용합니다. 우선순위 상승 시각과 원래 등급을 함께 남겨 사후 SLA 분석이 가능해야 합니다.

롤링 재할당은 새 정보가 생길 때 일부 구간만 다시 푼다

작업 완료, 새 주문, 로봇 고장, 통로 폐쇄와 큰 지연이 생기면 미배정 작업과 아직 시작하지 않은 작업을 다시 계산합니다. 이미 적재 중이거나 안전 절차에 들어간 작업은 고정해 실행 안정성을 지킵니다.

Stanford의 MRTA 분류 자료가 설명하듯 작업과 로봇의 동적 변화는 반복 할당을 필요로 합니다. 다만 매 센서 주기마다 전체 조합을 풀기보다 사건 기반 트리거와 최소 재계산 간격을 함께 둡니다.

최적해가 자주 바뀌면 히스테리시스와 고정 구간으로 배정 떨림을 막는다

새 해가 기존 배정보다 몇 초만 좋을 때도 작업을 계속 바꾸면 로봇이 픽업 지점 사이를 왕복합니다. 변경 이득이 임계값을 넘을 때만 재할당하고, 낙찰 후 짧은 고정 시간과 픽업 접근 구간의 변경 금지를 둡니다.

변경 비용에는 이미 이동한 거리, 작업자에게 알린 지시, 예약한 문과 엘리베이터를 해제하는 비용을 포함합니다. 이 비용을 생략하면 수학적으로 좋아진 해가 현장에서는 더 느린 결과가 됩니다.

고장과 통신 단절은 작업 소유권과 물리 상태를 분리해 복구한다

로봇이 오프라인이 됐다고 운반 중인 짐이 사라지지는 않습니다. 작업 상태, 적재물의 실제 위치, 로봇 소유권과 회수 가능 여부를 따로 기록하고 사람이 확인하기 전에는 같은 픽업을 다른 로봇에 중복 지시하지 않습니다.

통신 명령 구조 자체는 VDA 5050 가이드에서 다루고 있습니다. 배정기는 명령 규격과 별개로 응답 제한 시간, 낙찰 취소, 중복 이벤트의 멱등 처리와 수동 회수 절차를 가져야 합니다.

오프라인 재생과 제한된 현장 시험으로 비용 가중치를 검증한다

먼저 과거 주문·위치·배터리 로그를 재생해 기준 규칙과 새 배정기의 완료 시간, 지연, 공차 이동을 비교합니다. 그다음 소수 로봇과 비혼잡 시간대에서 shadow mode로 실제 실행 없이 추천만 기록해 예측 오차를 확인합니다.

현장 시험에서는 주문 급증, 충전기 하나 고장, 병목 통로 폐쇄, 로봇 지연을 주입합니다. 평균값만 보지 말고 상위 95% 지연과 기아 작업 수를 함께 봐야 소수의 심각한 실패가 가려지지 않습니다.

운영 지표의미함께 볼 값
작업 완료 시간주문 생성부터 완료까지평균·P95·마감 초과
공차 이동짐 없이 이동한 거리·시간재할당 전후 차이
충전 대기충전기 앞 대기와 재시도최저 배터리 여유
배정 변경률낙찰 후 변경된 비율변경 이득·원인 코드

배정 결과보다 입력·비용·변경 이유를 운영 화면에 남긴다

각 낙찰마다 후보 목록, 탈락 사유, 비용 구성, 선택값과 차선값을 저장합니다. 예측 완료와 실제 완료의 차이를 구간별로 되먹임하면 혼잡과 서비스 시간 모델을 교정할 수 있습니다.

여러 로봇의 이동 방식 차이는 AMR과 AGV 차이 글처럼 경로 자율성과 인프라 의존성이 다릅니다. 하나의 비용식을 강제로 공유하기보다 공통 출력 단위와 검증 지표를 맞추고 플릿별 모델은 분리하는 편이 안전합니다.

실행 가능 후보와 비용 함수 재할당 안정성 운영 지표를 확인하는 다중 로봇 작업 할당 점검표
배정기는 최적값 하나를 내는 계산기보다 입력 근거와 재계산 이유를 추적할 수 있는 운영 구성요소여야 합니다. 출처: 피지컬 AI Lab.

다중 로봇 작업 할당에서 자주 묻는 질문

로봇 수가 적어도 전역 할당이 필요한가요?

두세 대라도 마감 작업과 충전기가 겹치면 한 작업씩 가까운 로봇을 고르는 규칙이 전체 지연을 만들 수 있습니다. 주문이 드물고 제약이 단순하면 탐욕 규칙을 기준선으로 두고 개선 효과를 먼저 측정하면 됩니다.

배정 비용의 가중치는 어떻게 정하나요?

초 단위 완료 시간을 기본으로 두고 마감 지연, 에너지 부족과 변경 비용을 같은 단위의 예상 손실로 환산합니다. 과거 로그 재생으로 민감도를 비교하고 현장 변경마다 버전을 남깁니다.

배터리가 낮으면 항상 충전부터 보내야 하나요?

아닙니다. 작업 완료 후 안전한 충전기까지 도달할 하한과 운영 여유를 구분해야 합니다. 짧은 긴급 작업을 수행해도 하한을 지키면 배정할 수 있습니다.

작업을 언제 다시 배정해야 하나요?

새 주문, 작업 완료, 큰 지연, 고장과 인프라 폐쇄처럼 비용 구조가 바뀌는 사건에서 재계산합니다. 이미 물리적으로 시작한 작업은 고정하고 작은 이득에는 히스테리시스를 둡니다.

배정기가 실패하면 어떤 기본 규칙이 필요한가요?

진행 중 작업은 유지하고 신규 작업은 안전한 대기열로 보내는 보수적 fallback이 필요합니다. 마지막 계산 결과의 유효시간과 수동 배정 권한도 명시합니다.

작업 할당 비용과 재계산 주기는 로봇 속도, 통로 구조, 주문 SLA와 충전 방식에 따라 달라집니다. 실제 로그로 예측 오차와 안전 여유를 검증한 뒤 단계적으로 적용해야 합니다.