로봇은 절대 거짓말하지 않는다. 하지만 몇 주 전에 진실이기를 멈춘 것을 기억하고, 그 기억에 완전한 확신을 갖고 행동한다. 나는 2022년 가을, 캘리포니아 폰태나 외곽의 한 3PL에서 직접 목격했다——120,000제곱피트, goods-to-person 방식으로 운영되는 AMR 40대. 그 중 한 대가 텅 빈 복도 한가운데서 급정거하더니 그 자리에서 두 바퀴를 돌고는, 아무것도 없는 곳을 크게 우회해 갔다. 로그가 이야기를 들려주었다: 그 로봇에게는 두 달 전에 철거된 랙 열이 "보이고" 있었다. RCS 맵은 여전히 과거에 살고 있었다.
RCS(robot control system, 로봇 제어 시스템)는 건물 안 모든 AMR이 항해하는 지도를 쥐고 있다. 충전 도크, 출입 금지 구역, 주행 차선: 모든 것이 그 파일 안에 산다. 대부분의 운영팀은 맵을 한 번 만들면 끝인 자산으로 취급한다. 내가 가본 모든 AMR 도입 현장의 원죄다. 창고는 살아 있다. 랙은 움직인다. 피크 시즌이면 복도가 임시 팔레트로 가득 찬다. 누군가는 바닥을 다시 칠한다. 맵이 따라오지 못하면 로봇은 평행 세계에서 일하게 되고, 현장에서 보는 이상한 움직임은 단지 증상일 뿐이다.
다운되기 전에 증상을 읽어내기
낡은 맵은 세 가지 방식으로 존재를 알리는데, 나는 세 가지를 모두 현장에서 봤다.
첫째, 자기 위치 상실. AMR은 라이다 스캔을 맵과 대조해 자신의 위치를 안다. 랙을 옮기면 스캔이 맞지 않게 되고, 로봇은 정말로 자신이 어디 있는지 모르게 된다. 최선은 몇 초간 그 자리에서 돌다가 다시 위치를 잡는 것. 최악은 알람을 올리고 사람이 와서 구해줄 때까지 기다리는 것이다. 폰태나 현장에서는 최악의 시기에 하루 두 자릿수 위치 상실 알람이 나왔고, goods-to-person 존은 피크 중 30분간 멈췄다.
둘째, 경치 좋은 우회로. 복도에 임시로 놓인 팔레트가 벽으로 기억된다. 피크가 끝나고 팔레트는 떠나지만 벽은 맵에 남는다. 로봇은 존재하지 않는 벽을 날마다 피해서 계속 돈다. 주요 복도 하나로 계산해 보자: 트립당 30미터 추가, 대당 하루 200트립, 대당 하루 6킬로미터 추가 주행. 40대를 곱해 보라. 존재하지 않는 유령을 피하느라 전기와 타이어를 태우는 셈이다.
셋째——가장 지독한 것——유령 장애물로 인한 연쇄 알람. 한 대가 낡은 맵 때문에 멈춘다. 뒤따르던 로봇들이 줄을 선다. RCS가 정체를 선언하고 전체를 우회시키기 시작하는데, 우회가 상황을 더 악화시켜 결국 존 전체가 멈춘다. 슈퍼바이저 화면에서는 시스템 전체 장애처럼 보인다. 진짜 원인은 지난주 공사에서 칠한 바닥 페인트 선이 맵에 들어가지 않은 것일 수 있다.
내 결론은 직설적이다: AMR 운영에서 맵 유지는 IT 업무가 아니라 운영 업무다. 이를 거부하면, 그 뒤의 모든 것은 고통이다.
팀이 항상 과소평가하는 변화가 하나 더 있다: 바닥 공사. 에폭시 바닥 재코팅, 새로 칠한 페인트, 반사율이 다른 새 바닥 매트까지 모두 라이다가 보는 것을 바꾼다. 맵은 같은 맵인데 로봇의 세상은 다르게 보이니, 자기 위치가 흔들리기 시작한다——현장에서는 "바뀐 게 없다"는데, 설명할 수 없는 감속과 떨림이 나타난다. 내 규칙: 랙을 움직였든 아니든, 바닥 공사가 있으면 공사 완료 시 반드시 증분 맵 업데이트를 한다.

먼저 트리아지, 다음 다섯 단계 드릴
모든 변경이 같은 대응을 받을 자격이 있는 건 아니다. 나는 변경을 세 등급으로 나눈다. A등급: 랙 열 2개를 초과해 이동, 주요 주행 차선 변경, 새 벽이나 기둥——전체 리맵. B등급: 슬롯 1~2개 이동, 임시 스테이징 철수, 소규모 바닥 보수——증분 업데이트. C등급: 슬롯 라벨 변경, 카톤 적재 높이 변경——맵 변경 없음, WMS에 메모만. 많은 창고는 C등급을 A등급처럼 다뤄 하룻밤 내내 리맵하며 시간을 태우거나, A등급을 C등급처럼 다뤄 3개월 뒤에 대가를 치른다.
업데이트 드릴 자체는 다섯 단계, 이 순서대로, 건너뛰기 없다.
하나, 현장을 동결한다. 업데이트 2시간 전부터: 랙 이동 금지, 임시 스테이징 금지. 당연하게 들리지만, 내가 본 맵 업데이트 사고의 절반 이상은 업데이트 도중 현장이 또 바뀌는 데서 시작됐다.
둘, 시간대를 고른다. 40대 규모의 건물이라면 야간 근무 후반을 잡아 2시간을 확보한다. 120,000제곱피트 전체 리맵은 사람의 검토를 포함해 약 1시간, 증분 패스는 20분이다. 시작 전에 영향 구역을 비우고 RCS에서 출입 금지로 표시한다.
셋, 업데이트하고 손으로 직접 검증한다. 스캔이 끝나도 게시하지 않는다. 직접 중요 지점을 걸어 확인한다: 충전 도크, 엘리베이터 앞, 소방 차선, 지게차와 AMR이 함께 다니는 혼합 교통 구역. 나는 이걸 뼈저리게 배웠다——어느 증분 업데이트 후, 충전 도크가 맵에서 0.5미터 밀려 있었고, 6대가 하룻밤 내내 도킹에 실패했으며, 아침 근무는 방전된 로봇으로 시작됐다.
넷, 빈 로봇으로 드라이런한다. 게시하기 전에 빈 로봇 2대를 새 맵으로 영향 구역 전체에 돌린다. 설명 안 되는 감속, 급정지, 우회를 주시한다. 그때 비로소 전체 플릿에 게시한다.
다섯, 첫 근무조는 매의 눈으로 감시한다. 가동 후에는 첫 근무조 내내 RCS 알람 로그를 모니터링한다——특히 위치 상실과 경로 재계획 급증을. 둘 중 하나라도 튀면 롤백한다. 논쟁하지 않는다.
임시 스테이징은 따로 짚고 넘어갈 가치가 있다. 피크 중 복도에 팔레트를 스테이징하는 건 삶의 이치——맞서 싸우는 건 무의미하다. 통하는 방법은 이렇다: 맵에 동적 스테이징 존을 지정하고, 피크 중에는 매일 근무 종료 시 비우며, 비운 직후 증분 업데이트를 돌려 "벽"을 지운다. 임시 팔레트는 문제가 아니다. 맵에서 지우지 않는 것이 문제다.
버전 관리는 어느 날 밤 당신을 구한다
모든 맵에 버전 번호를 붙인다——나는 날짜+순번을 쓰는데, 예를 들어 20261008-01처럼. 최근 5개 버전을 RCS에 보관하고, 롤백을 10분짜리 작업으로 만든다. 내가 손대는 모든 프로젝트의 필수 요구사항이다. 롤백 훈련을 분기마다 실시한다; 진짜 사고 중에 백업 맵 파일이 깨져 있다는 걸 처음 알게 되는 일은 피하고 싶다.
2023년 초, 온태리오의 한 이커머스 창고가 증분 업데이트를 게시했고, 게시 20분 뒤 알람량이 3배가 됐다——새 맵이 임시 지게차 차선을 주행 가능으로 잘못 분류했고, AMR과 지게차가 교차로에서 정면으로 마주 보고 있었다. 근무 슈퍼바이저가 훈련대로 이전 버전으로 롤백했다: 8분 만에 완료, 피크 주문에 영향 없었다. 버전과 훈련이 없었다면 그날 밤은 한 근무조 분량의 처리량을 날렸을 것이다. 롤백은 만약의 대비책이 아니라 생산 도구다.
팀이 항상 놓치는 것이 하나 더 있다: 맵이 바뀌면 WMS 로케이션 마스터도 함께 바뀌어야 한다. 랙은 움직였고 슬롯 코드는 같은데, 새 맵 위의 좌표는 다르다. WMS가 옛 좌표를 계속 들고 있으면, 로봇이 도착해도 시스템은 "location does not exist"라고 말하고 작업은 죽는다. 내 규칙: 랙 이동이 있으면 RCS 맵과 같은 변경 티켓으로, 그날 중으로 WMS 좌표 필드를 업데이트한다.
이 글에서 하나만 가져간다면 이것이다: 매주 금요일, 근무 종료 전에 누군가를 그 주의 바닥 변경 목록을 들고 AMR 주요 주행 차선으로 걷게 하라. 10분이다. 맵이 현실과 맞는지 확인하고, 맞지 않으면 월요일 아침 가장 먼저 업데이트한다.
그리고 이 모든 것 뒤에 숨은 불편한 질문: 만약 내일 아침 로봇들이 말썽을 피우기 시작한다면, 팀이 맵이 무죄임을 증명하는 데 얼마나 걸리겠는가? 답이 "추측해야 할 것 같다"라면, 맵은 이미 낡았다——당신이 아직 느끼지 못했을 뿐이다.
영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.






