PROBLEM
DEUX는 매장에서 사람 옆에서 일하는 양팔 휴머노이드 로봇입니다. 사람 얼굴이 없습니다. 두 팔 사이의 카메라 2개가 눈이자 표정 디스플레이입니다. 이 두 눈과 소리, 목소리만으로 지금 무엇을 보고 무엇을 하려는지 전해야 사람이 곁을 내주고 말을 겁니다. 그런데 처음에는 어떤 표정과 소리가 있어야 하는지, 그것들을 어떤 단위로 정의해 로봇에 넣을지가 정해져 있지 않았습니다.
로봇을 세우고 움직이는 쪽에도 문제가 있었습니다. 팔 14개 관절과 손, 주행, 리프트를 제어하는 화면은 개발팀이 만든 개발자용 도구였습니다. 화면을 정의한 문서가 없어 코드만이 기준이었습니다. 현장 운영자와 원격 조종자도 쓰는 제품 화면으로 다시 만들어야 했습니다.
APPROACH
표정, 소리, 목소리, 제스처를 채널로 나누고 채널마다 어휘를 하나의 데이터베이스로 정의했습니다. 개발팀이 트리거로 부를 수 있는 이름, 언제 쓰는지, 어떤 파일인지가 한 행에 있습니다. 감정과 의도는 눈과 목소리로 전하고 소리는 말로 하기 애매한 시스템 신호와 상태 신호에만 쓰기로 했습니다.
DEUX ON은 화면의 기준선이 될 PRD를 세우고 HTML 프로토타입으로 화면을 잡은 뒤 React로 옮겨 직접 구현했습니다. 백엔드는 제어팀이 맡고 프런트엔드 저장소는 UX 파트가 관리합니다. 구현에는 AI 코딩 도구를 썼습니다.
로봇의 형태는 로봇디자인팀이, 표정을 로봇에 올리고 시연을 준비하는 일은 로봇지능화팀이, 제어와 백엔드는 로봇자동화팀이 맡았습니다. 저는 그 사이에서 인터랙션의 정의와 운영 화면을 맡았습니다.
SOLUTION
표정
두 눈의 위치와 크기, 움직임, 색만으로 표정을 만듭니다. 기쁨, 웃음, 하트, 반짝, 놀람, 두려움, 슬픔, 화남 같은 감정 표현, 사람을 따라가는 시선 네 방향, 깜빡임과 두리번거림, 부팅, 로딩, 대기, 충전, 오류 같은 상태 표정까지 20종을 정의했습니다. 부팅은 눈 표정과 소리, 동작을 한 흐름으로 설계했습니다.
소리와 목소리
소리는 켜짐, 꺼짐, 알림처럼 무언가 바뀌는 순간의 짧은 신호로만 쓰고 감정은 눈이 맡습니다. 시연 때는 버튼 하나로 표정과 소리가 차례로 나가도록 매핑 표를 만들었습니다. 시스템 상태를 알리는 이어콘 6종을 한 음색으로 묶는 기준도 세웠는데, 정식 제작은 접었습니다. 지금 기기에는 시연용 대표 사운드만 들어 있고 기준 문서는 다시 시작할 때 쓰려고 남겨 뒀습니다. 감정을 소리로 만들지 않는다는 원칙에는 예외가 하나 있습니다. 촬영과 시연 때문에 기쁨, 슬픔, 놀람 3종을 만들어 쓰고 있고 대화형 음성을 정식으로 운용하게 되면 다시 보기로 했습니다.
목소리는 후보들에게 같은 문장을 읽혀 들어 보고 골랐습니다. BarisBrew의 차분한 목소리와 겹치지 않게 밝고 호기심 많은 톤으로 페르소나 지시문을 썼고 시연 문장마다 어울리는 표정을 붙였습니다.
DEUX ON


로봇의 자세와 이동, 표현을 한 화면에서 다루는 운영 콘솔입니다. 쓰는 사람은 로봇을 세팅하는 엔지니어, 현장 운영자, 원격 조종자입니다. 왼쪽에는 운전 상태, 연결, 배터리, 리프트 높이와 시스템 로그, 비상 정지가 늘 보이고 화면 조작, VR, 리더암 3가지 조작 모드를 위에서 고릅니다. 자세 탭은 양팔 14개 관절과 손을 슬라이더로 움직이고 컴플라이언스와 자세 프리셋을 두며 로봇 자세를 2D와 3D로 봅니다. 이동 탭은 조이스틱과 휠 조향, 리프트 높이를, 표현 탭은 표정, 소리, 음량을 다룹니다.
개발자 도구에서 제품 화면으로 옮기며 정한 규칙이 몇 가지 있습니다. VR이나 리더암이 로봇을 잡고 있는 동안 화면 조작은 잠기지만 정지와 모드 전환은 언제나 열려 있습니다. 이 화면에서 로봇을 멈출 수단이 사라지면 안 되기 때문입니다. 잠금은 왼쪽 패널의 로봇 상태 배지가 알리고 푸는 버튼도 그 자리에 둡니다. 본문에 안내 배너를 띄우는 안을 두 번 시도했지만 잠길 때마다 탭과 화면 전체가 밀려 내려가 두 번 다 걷어냈습니다. 색은 안전을 기준으로 다시 정했습니다. 빨강은 비상 정지에만 쓰고 고장과 입력 오류는 주황, 정상은 초록입니다. 개발용 화면의 색 구분은 따르지 않았습니다. 시작과 정지는 보고 있는 탭이 아니라 로봇 전체에 적용됩니다.
IMPLEMENTATION
표정 20종은 GIF와 MP4로 만들어 어휘 데이터베이스와 함께 넘겼고 로봇 디스플레이에서는 MP4로 재생합니다. 표정과 소리 매핑, 시연 음성은 로봇지능화팀이 컨트롤러 버튼에 연결했습니다.
DEUX ON은 React와 TypeScript로 만들고 3D 자세 뷰는 로봇의 URDF 모델을 three.js로 그립니다. 인터넷이 없는 로봇 현장 단독망에 배포되도록 설정 파일 하나로 백엔드 주소를 바꾸게 했습니다. 화면이 바뀐 이력은 PRD 변경 이력에 남고 저장소 변경 기록은 세션 단위로 남깁니다.
IMPACT
2026년 7월 제품 영상과 8월 로봇 빌딩 솔루션 시연과 언론 인터뷰에서 DEUX는 이 표정과 소리, 목소리로 사람을 응대했습니다. 개발자 도구였던 제어 화면은 UX 파트가 관리하는 제품 화면이 됐습니다. 코드밖에 없던 화면 정의는 문서로 남게 됐고 UX 파트가 프런트엔드 저장소에 직접 커밋하고 리뷰를 받는 방식도 함께 자리 잡았습니다.