창고 현장에서 20년을 보내며 얻은 판단 하나: AMR 프로젝트가 삐걱거릴 때 절반은 로봇 탓이 아니다. 문제는 핸드오프——AMR이 컨베이어, 랙, 리프트와 만나는 바로 그 지점이다. 2023년 나는 캘리포니아 온타리오의 한 프로젝트에 참여했다. 80,000제곱피트가 넘는 전자상거래 풀필먼트 센터였다. AMR은 탁 트인 구역에서는 훌륭하게 달렸다. 도킹 스테이션에 들어서는 순간 모든 것이 무너졌다. 재작업은 3개월 가까이 이어졌고 수십만 달러의 추가 통합 비용을 태웠다. 나중에 시스템 통합 업체 친구가 말하길, 이건 일상다반사라고 했다. 인터페이스가 제대로 다듬어지지 않으면 세상에서 가장 멋진 로봇도 그저 비싼 문진일 뿐이다.

완벽하게 멈췄다. 다만 맞지 않았을 뿐.

첫 번째 함정이 가장 속 쓰리다. AMR은 센티미터급 정밀도로 주행해 교시점에 정확히 멈춘다——그런데도 화물이 이송되지 않는다. 왜일까? 반대편 컨베이어에 기계 공차가 있기 때문이다.

컨베이어를 설치할 때 다리 수평 맞추기와 롤러 높이는 줄자와 작업자의 감에 달려 있다. 도면에는 양쪽이 같은 높이라고 되어 있지만, 현실에서는 1~2센티미터 차이는 지극히 정상이다. AMR이 팔레트를 들어 올리면 팔레트 데크와 롤러 표면 사이에 2센티미터 단차가 생긴다. 화물이 걸리거나 한쪽 끝이 들썩인다. 더 교활한 문제는 폭이다——AMR이 운반하는 팔레트와 컨베이어 롤러 사이의 좌우 간격. 설계는 이론값을 썼다. 설치 후 누군가 재 보니 양쪽이 대칭조차 아니었다.

온타리오 프로젝트를 죽인 게 바로 이것이었다. AMR은 매번 어김없이 교시점에 도달했다. 팔레트가 올라가고, 왼쪽 롤러가 먼저 하중을 받고, 오른쪽은 뜨고, 팔레트가 기울고, 라인 전체가 알람 정지했다. 원인을 찾는 데 2주가 걸렸다. 컨베이어 다리 하나가 내려앉아 2센티미터에 못 미치는 높이 차이가 생긴 것이었다. 2센티미터. 육안으로는 보이지 않는다.

일찍 정리해 둘 트레이드오프도 있다. 톱리프트식 AMR은 높이 불일치에 가장 민감하다. 포크식은 허용 폭이 넓지만 팔레트 진입 방향이 정해져 있어 인터페이스를 반대 방향으로 제약한다. 차량만 따로 스펙을 정하지 마라. 도킹 방식과 인터페이스 공차는 한 세트다——함께 정하라.

그래서 인수 검사에서는 AMR이 목표에 멈추는지만 보지 마라. 수평자를 가져가 도킹점의 높이 차이를 재라. 인터페이스 양쪽의 높이·수평·간격 공차를 허용 편차와 함께 인수 기준에 흑백으로 명기하라. 그리고 도킹 스테이션에는 높이 조절 다리를 지정하라. 바닥이 내려앉아도 다시 수평을 맞출 수 있다. 용접 다리는 리스크를 그 자리에 용접하는 것과 같다.

누가 먼저 움직이는가?

두 번째 함정은 소프트웨어에 산다. 핸드셰이크라 불린다. AMR이 도착했다——컨베이어는 알고 있는가? 라인이 화물을 밀어냈다——AMR은 정말로 받았는가? 순서를 한 단계만 틀려도 깨진다.

컨베이어 도킹 스테이션에서 화물 이송을 기다리는 AMR

고전적인 실패 장면: AMR이 완전히 멈추기 전에 컨베이어가 공급을 시작해 팔레트가 차체에 정면으로 들이받는다. 또는 AMR이 화물을 받았다고 착각하고 출발하는데 화물은 롤러 위에 그대로——로봇은 자랑스럽게 빈손으로 간다. 근본 원인은 AMR 플리트 매니저와 컨베이어 PLC가 서로 다른 언어를 쓰기 때문이다. 양쪽에 "정위치" 신호는 있지만 정의가 다르다. AMR에게 정위치는 내비게이션이 그렇다고 하는 것이다. PLC에게는 광전 센서가 가려진 것이다. 0.5초의 차이——그 0.5초 사이에 이송이 어긋난다.

해결책은? 인터페이스 타이밍을 타이밍 다이어그램으로 그려 양쪽이 서명하게 하라. 신호 교환 방식(무전압 접점인지 네트워크 메시지인지), 몇 초 타임아웃을 고장으로 볼 것인지, 고장 시 누가 먼저 멈출 것인지——공동 시운전 전, 현장에서 디버깅하면서가 아니라 전부 확정해 두라. 내가 본 가장 견고한 패턴은 이중 확인이다. AMR이 도착을 알리고, PLC가 허가로 응답하고, AMR은 허가를 받은 뒤에만 움직인다. 0.5초 느리다. 낙하 화물 제로. 창고 자동화에서 0.5초 느린 건 부끄러운 일이 아니다. 화물 하나 떨어뜨리는 게 부끄러운 일이다.

바닥도 한 표를 행사한다

세 번째 함정은 발밑에 있다. 도킹점은 건물 전체에서 가장 혹사당하는 콘크리트다.

AMR은 하루에 수십 번 같은 지점에서 멈추고, 들어 올리고, 회전하며, 전 하중이 몇 제곱피트에 집중된다. 1년이 지나면 도킹점의 미세한 침하나 균열은 전혀 이상하지 않다. 1~2센티미터 내려앉아도 AMR은 여전히 정확히 멈춘다——내비게이션은 바닥 높이에 관심이 없다. 하지만 리프트 기구의 스트로크는 고정이다. 바닥이 가라앉으면 팔레트가 더 이상 롤러 표면에 닿지 않는다. 신축 이음도 있다. 하필 도킹점 바로 밑에서 갈라지면 AMR은 매 사이클 그것을 넘어가고, 바퀴가 덜컹거리고, 위치 결정이 흔들리고, 이송 성공률은 99%에서 90%로 미끄러진다——이유도 모른 채.

그 프로젝트에서 바닥은 마지막 용의자였다. 모두가 차량을 탓했고, 다음은 컨베이어를 탓했고, 그제야 무릎을 꿇고 콘크리트를 봤다. 지금 나의 정석 권고는 이렇다. 도킹 구역은 주변 바닥과 분리된 고강도 슬래브로 따로 타설하고, 신축 이음은 도킹점을 피해 돌아가게 하라. 토목 공사는 거의 들지 않는다. 재작업은 월 단위로 잰다. 기존 건물의 개조에서는 바닥 상태를 사전 현장 조사에 넣고 레이저 레벨로 도킹 존을 훑으라. 눈을 믿지 마라.

그때 사람이 들어온다

네 번째 함정이 가장 위험하다. 안전에 닿기 때문이다. 도킹 존은 사람과 기계가 가장 격렬하게 섞이는 곳이다. AMR이 여기서 도킹하고, 수동 지게차가 여기에 화물을 놓고, 보수 기술자가 컨베이어 밑에서 뭔가를 조정하고 있을지 모른다.

논리는 단순해야 한다. 도킹 존에 사람이 있으면 AMR은 들어오지 않는다. AMR이 이송 중이면 컨베이어는 움직이지 않는다. 하지만 많은 프로젝트는 시스템의 절반만 인터록한다. AMR은 레이저 스캐너가 있어 잘 멈춘다——그 사이 컨베이어는 계속 돈다. 또는 안전 게이트가 열리고, AMR은 멈추지만, PLC는 신호를 못 받았고, 롤러는 계속 돌고, 화물은 계속 오고, 기술자의 손은 롤러 바로 옆에 있다.

인터록은 양방향이어야 한다. 인원 진입 신호——안전 게이트, 라이트 커튼, 안전 매트——는 AMR 플리트 매니저와 PLC 양쪽에 동시에 가야 한다. 양쪽이 멈추지 않으면 인터록이 아니다. 한쪽만 멈추는 건 아무것도 잠그지 않는 것과 같다. 인수 검사에서는 침입 테스트를 하라. 사람 진입을 시뮬레이션하고 AMR과 컨베이어가 함께 멈추는지, 그리고 복구가 한꺼번에 와르르 살아나는 게 아니라 순서대로 일어나는지 확인하라.

놓치기 쉬운 디테일이 하나 있다. 야간조다. 낮에는 누군가 도킹 구역을 지켜보고 작은 문제를 그 자리에서 처리한다. 밤에는 작업자가 한두 명이다. AMR과 컨베이어가 도킹점에서 말다툼을 시작하고, 알람이 30분간 울려도 아무도 응답하지 않고, 재공품이 라인 전체에 쌓인다. 그러니 이걸 인터록 로직에 넣어라. 도킹 고장이 설정 시간을 넘기면 작업을 자동으로 중단하고 에스컬레이션 알림을 올려라. 장비끼리 언제까지고 말다툼하게 두지 마라.

온타리오 프로젝트의 결말로 돌아가 보자. 네 개의 함정을 하나씩 메우고, 3개월. 프로젝트 매니저가 말했다. 인터페이스가 이렇게 골치 아플 줄 알았으면 첫날부터 독립 작업 패키지로 떼어내 별도 인수를 잡았을 거라고. 전적으로 동감이다.

자, 가져갈 질문 하나. 당신의 창고가 AMR을 도입하려 한다면, 도킹 구역 바닥, 컨베이어, PLC 신호는 턴키 일괄로 단일 통합 업체에 갈 것인가——아니면 차량, 라인, 소프트웨어가 각각 다른 업체에 갈 것인가? 그 답이 나중에 인터페이스에 얼마를 쓸지를 거의 결정한다.

영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.