500만원짜리 DWS를 100만원에 만든 이야기

해외 특송 운임을 정하는 부피와 무게를 재는 DWS 장비를 웹카메라·초음파 센서·저울·AI 비전으로 직접 만들었다. 옆에서 재던 첫 방식을 버리고 위에서 내려다보게 바꾸면서 한 대 100만 원 안팎에 0.5초 측정까지 온 과정을 정리했다.

서기 7분 분량 조회 233
물류창고 작업대 위 저울에 놓인 상자와 그 위를 내려다보는 카메라

장비보다 동선이 먼저였다

물류센터에서 해외 특송을 처리하다 보면 모든 작업이 한 지점으로 모인다. 상품의 부피와 무게를 얼마나 정확하게 재느냐다.

국제 운송은 대부분 실제 무게와 부피무게를 비교해서 더 큰 값으로 운임을 매긴다. 출고 전에 가로, 세로, 높이, 무게를 제대로 재두지 않으면 그 차이가 그대로 손해로 남는다.

그래서 DWS는 있으면 좋은 장비가 아니라 없으면 안 되는 장비다. 이 글은 그 장비를 직접 만들면서 두 번 실패하고, 결국 사람의 동선에 장비를 맞추기까지의 기록이다.

시중에 파는 테이블형 DWS는 보통 500~600만 원 한다. 대기업 물류센터야 몇 대씩 깔면 되지만, 중소 규모에서는 한 대 들이는 것도 꽤 무거운 결정이다.

견적을 몇 번 받아보다가 이런 생각이 들었다. 이거 직접 만들면 얼마나 나올까.

첫 번째 시도, XYZ 거리 측정

가장 먼저 떠올린 건 거리 센서였다. 초음파 거리 센서를 X축, Y축, Z축에 하나씩 달고, 박스를 테이블 모서리에 딱 붙이면 세 센서가 각각 가로, 세로, 높이를 잰다.

테이블 모서리에 박스를 붙이고 X·Y·Z 세 방향에서 초음파 센서로 재는 첫 번째 방식

구조만 보면 단순했다. 처음에는 이걸로 끝날 줄 알았다.

X축과 Y축 센서는 테이블 옆면에 세워야 한다. 박스와 같은 높이에서 옆을 바라봐야 가로, 세로를 잴 수 있다. 그런데 그 자리가 하필 작업자가 박스를 내려놓는 자리다.

작업자는 원래 박스를 위에서 툭 내려놓는다. 이 구조에서는 센서 기둥 사이로 박스를 밀어 넣어야 했다. 큰 박스는 아예 들어가지 않았다.

들어가더라도 모서리가 센서를 툭툭 친다. 몇 번 치이면 센서 각도가 틀어지고, 각도가 틀어지면 값이 통째로 어긋난다. 그때마다 다시 잡아줘야 했다.

센서를 테이블 밖으로 빼면 동선 문제는 줄어든다. 대신 거리가 멀어지면서 초음파 특유의 오차가 커진다. 가깝게 붙이면 정확하지만 계속 부딪힌다. 둘을 함께 만족시키는 위치는 없었다.

원래 있던 문제도 그대로였다. 박스를 매번 모서리에 정확히 밀착시켜야 한다.

삐뚤어지면 값이 틀어지니 한 번 더 밀어서 맞춘다. 그 동작 하나가 추가되자 작업 속도가 눈에 띄게 떨어졌다. 사람마다 붙이는 정도가 달라서 오차도 제각각이었다.

정확한 장비를 만든 줄 알았는데, 실제로는 작업자에게 일을 하나 더 시키는 장비였다. 그것도 불편한 구조물 사이에서. 물류 현장에서 속도를 깎아먹는 장비는 결국 아무도 안 쓴다. 이 방식은 접었다.

두 번째 시도, 위에서 내려다보는 카메라

의외로 무게 쪽은 손댈 게 거의 없었다.

요즘 산업용 저울은 대부분 RS232나 USB 시리얼 통신을 지원한다. 잰 값을 시리얼 포트로 흘려보내 주니, 포트만 열고 읽으면 끝이다. 별도 하드웨어도, 복잡한 변환도 필요 없었다.

처음부터 숙제는 하나뿐이었던 셈이다. 가로와 세로를 어떻게 잴 것인가.

한참 다른 방식을 찾다가 접근을 뒤집었다. 박스를 정해진 자리로 옮기게 하지 말고, 카메라가 알아서 박스를 찾아내게 하면 된다.

카메라를 위에서 내려다보게 달면 테이블 옆이 완전히 비워진다. 앞선 방식에서 가장 크게 걸렸던 동선 문제가 구조적으로 사라진다.

테이블 위 1m 지점에 웹카메라를 달고, 같은 자리에 초음파 거리 센서를 붙였다. 초음파 센서는 이제 위에서 아래를 보니 높이만 재면 된다. 테이블 아래에는 산업용 저울을 넣었다.

거리와 무게 데이터는 아두이노가 모아서 넘긴다. 이미지 분석은 GPU가 달린 별도 서버에서 처리한다.

박스를 올려놓으면 카메라가 사진을 찍고, 그 이미지가 AI 서버로 넘어간다. 서버는 박스 영역만 잘라내서 가로, 세로가 몇 픽셀인지 계산한다. 그 사이 초음파 센서는 높이를, 저울은 무게를 잰다.

작업자는 박스를 아무 데나 올려놓으면 된다. 밀 필요도, 맞출 필요도, 부딪힐 것도 없다.

테이블 위 1m에 웹카메라와 초음파 센서, 아래에 저울, 옆에 AI 서버를 둔 구조

두 번째 실패, 픽셀은 그렇게 단순하지 않았다

이쪽도 처음부터 잘 된 건 아니다.

처음에는 카메라 화면에서 10cm가 몇 픽셀인지 한 번만 재두면 된다고 생각했다. 그 비율을 곱하면 실제 길이가 나온다. 얇은 박스로 테스트했을 때는 실제로 값이 잘 맞았다.

그런데 높은 박스를 올리는 순간 값이 확 커졌다. 실제로는 30cm인 박스가 35cm로 나왔다.

이유는 원근이었다. 박스가 높아지면 윗면과 카메라 사이가 그만큼 가까워지고, 같은 10cm라도 화면에서 더 크게 잡힌다.

박스가 클수록, 즉 운임이 비싼 물건일수록 오차가 커지는 구조였다. 그냥 넘어갈 수 없었다. 카메라만 달면 끝일 줄 알았는데, 진짜 작업은 여기서부터였다.

방법은 하나뿐이었다. 기준 물체를 놓고, 카메라와 기준면 거리 100cm 조건에서 높이를 3cm, 5cm, 10cm, 20cm 식으로 바꿔가며 10cm가 화면에서 몇 픽셀로 잡히는지 계속 쟀다. 그 값을 전부 데이터베이스에 쌓았다.

이 데이터가 생기고 나서야 AI 서버가 박스 높이에 맞는 보정값을 골라 실제 가로, 세로를 계산할 수 있게 됐다. 픽셀에서 센티미터로 넘어가는 다리가 놓인 셈이다. 이 프로젝트에서 가장 오래 걸린 것도, 가장 중요했던 것도 이 부분이었다.

브라우저 하나, 0.5초, 100만 원

완성된 구성은 웹카메라, 초음파 거리 센서, 산업용 저울, 아두이노, GPU AI 서버, 그리고 웹 브라우저다.

재미있었던 건 브라우저 쪽이다. 요즘 브라우저는 Web Serial API를 지원한다. 별도 프로그램 없이 브라우저가 시리얼 포트를 직접 읽을 수 있다.

덕분에 PC마다 프로그램을 설치하고 버전을 맞추는 과정이 전부 없어졌다. 브라우저를 열고 주소만 치면 DWS 장비가 돌아간다. 유지보수 입장에서는 이게 제일 크다.

물류센터에서는 정확도만큼 속도가 중요하다. 바코드를 찍고 박스를 올려놓으면 촬영, AI 분석, 높이 측정, 무게 측정, 부피 계산까지 0.5초 안쪽으로 끝난다. 별도 조작 없이 바로 다음 상품으로 넘어간다.

작업자가 결과를 기다리는 느낌이 없어야 하는데, 그 선은 넘긴 것 같다. 상용 DWS가 500~600만 원이다. 이번에 만든 건 아두이노, 초음파 센서, 산업용 저울, 웹카메라, 프로파일 프레임까지 합쳐서 한 대당 100만 원 내외로 나왔다.

GPU 서버가 150만 원쯤 추가로 들어간다. 대신 서버 한 대에 DWS 열 대까지 붙일 수 있어서, 장비를 늘릴수록 대당 단가는 계속 내려간다. 두세 대만 깔아도 상용 장비 한 대 값이 안 된다.

회고

싼 DWS를 만드는 게 목표는 아니었다.

현장에서 쓰이는 장비가 되려면 정확도, 속도, 유지보수, 비용이 전부 맞아떨어져야 한다. 하나라도 어긋나면 구석에 처박히는 걸 여러 번 봤다. 첫 번째 방식이 딱 그랬다. 정확했지만 불편했고, 불편하니까 안 썼을 거다.

돌아보면 배운 건 기술보다 순서에 가깝다. 장비를 먼저 정하고 현장을 맞추려 하면 실패한다. 현장에서 사람이 어떻게 움직이는지를 먼저 보고 거기에 장비를 맞추면 답이 나온다. 센서를 옆에서 위로 옮긴 것도 결국 그 이야기다.

AI 비전과 아두이노, 웹 기술을 엮으니 고가 장비가 하던 일을 훨씬 낮은 비용으로 대신할 수 있었다. 무엇보다 실제 현장에서 무리 없이 돌아간다는 게 가장 큰 수확이다.

용어 쉽게 보기

글에 나온 용어를 개발자가 아닌 분도 읽을 수 있게 풀었다.

용어쉬운 설명
DWSDimension(크기)·Weight(무게)·Scan(바코드)을 한 번에 재는 장비. 택배·특송 운임 계산에 쓴다.
부피무게상자 크기로 계산한 가상의 무게. 실제 무게와 비교해 더 큰 쪽으로 운임을 매긴다.
해외 특송국제 택배. 부피와 무게에 따라 운임이 크게 달라진다.
초음파 거리 센서소리를 쏘아 되돌아오는 시간으로 거리를 재는 부품. 여기서는 상자 높이를 잰다.
X · Y · Z축가로·세로·높이 세 방향.
RS232 · 시리얼 통신저울 같은 장비가 숫자를 컴퓨터로 한 줄씩 보내는 오래된 연결 방식.
아두이노센서 값을 모아 컴퓨터로 넘겨주는 작은 기판.
웹카메라 · AI 비전카메라로 찍은 사진을 AI가 보고 상자가 어디 있는지, 몇 픽셀인지 찾아내는 기술.
GPU 서버이미지 분석처럼 계산이 많은 일을 빠르게 하는 그래픽 처리 장치가 달린 컴퓨터.
픽셀사진을 이루는 작은 점. 몇 픽셀인지를 실제 센티미터로 바꾸는 게 핵심이었다.
원근가까운 것은 크게, 먼 것은 작게 보이는 현상. 높은 상자일수록 실제보다 크게 잡힌다.
보정값높이별로 "10cm는 몇 픽셀"인지 미리 재 둔 값. 이걸로 원근 오차를 지운다.
Web Serial API브라우저가 프로그램 설치 없이 저울·아두이노 같은 장비와 직접 통신하게 해 주는 기능.
공유 X 페이스북

함께 읽으면 좋은 글

비슷한 시스템을 검토하고 계신가요?

요건 정리 단계부터 함께 봅니다. 구축 범위와 일정, 예상 비용을 무료로 진단해 드립니다.

기술 상담 신청 →