우아한형제들 - 배달로봇 딜리
배달로봇 딜리를 조종하는 흑마술
흑마술?
- 마법 같은 건 없음 ^^, 이것은 지식입니다.
자율주행?
- 실외에서는 변수가 너무 많음
- 99.9%라면 월 1억건 기준 10만명은 치킨을 못먹을 수 있음…ㅠ
- 99.9999%라면 월 1억건 기준 100명까지 가능
- 그래서 모니터링 기능을 추가했습니다 :)
Teleoperation?
- 기계나 장치를 원격으로 제어하는 것(사전적 의미)
- 원격에서 배달 로봇의 상태를 모니터링
배민에서 구현한 방법?
- 요구 사항 확인
- 카메라는 몇 대?
- 화각은 얼마나 필요한가?
- 해상도는 어느정도까지?
- 초당 프레임 수는 얼마나?
- 레이턴시는 어느정도까지 괜찮을까?
- 네트워크 대역폭 (얼마나 많은 내용을 한 번에 전송 가능한가?)
- 네트워크 레이턴시 (보낸 데이터를 얼마나 빠르게 볼 수 있는가?, 지연 시간)
- SW 고려 사항
- SNS 라이브 테스트 $\rightarrow$ 레이턴시 19.24초, 너무 느림
- 로봇 속도가 7km/h, 영상 레이턴시가 1초 $\rightarrow$ 멈춤 클릭 후, 2미터 이동 후 멈춤
- 당연히 짧으면 짧을수록 안전
- 화상 회의, 채팅 앱 설치를 통해 프로토타이핑 테스트를 통해 느낀 점
- 후방 카메라의 필요성
- 영상 흔들림 정도 및 해상도 설정 필요
- 실제 거리감, 지도 표시
- 장애물 시각화, 음성 표시 기능 필요
- 네트워크 레이턴시 및 음영지역 확인 필요
- 오퍼레이터 교육이 필요
- 사무실에서의 원격 조종시 느낀 점(소리가 없음)
- 후방카메라 꼭 필요하다
- 화면 비율이 가로로 넓은 것이 중요
- 로봇 따라 다닌 사람, 조종한 사람을 지켜본 사람 둘다 불안
- 의외로 조종한 사람은 불안하지 않았음
- WebRTC
- 레이턴시가 짧고, 화상 회의에서 많이 사용, 앱 설치 없이 웹에서 바로 확인 가능
- 사내 Wifi에서는 잘됨 But, LTE 라우터가 잘 안됨
- Kinesis Video Stream WebRTC를 이용하여 해결
- HW 고려 사항
- 카메라
- 기구 설계
- 기구 설계를 통해 Blind Spot 확인 및 360도를 확인할 수 있게 카메라 설치
- 맛보기
- Nvidia Jetson Xavier에 카메라 4대, AWS Kinesis 사용
- 크게 문제 없이 동작 완료
AWS Kinesis WebRTC
- Why WebRTC
- STUN, TURN, 시그널링 서버 제공
- 다양한 SDK 제공 (Backend 구성이 필요 없음)
만들어 보기
- GStreamer
- 멀티 플랫폼, 멀티 미티어 프레임워크
- 맥, 윈도우, 리눅스, 모바일에서도 사용 가능
- C SDK를 이용한 빌드 방법 소개
- js SDK를 이용한 사용 방법 소개
- 4개 영상 합쳐서 전송 방법 소개
- 내용이 많아서, 영상을 직접 확인하는 것이 좋습니다.
운영 중 어려움 및 해결 방안
- 네트워크 안정성, 레이턴시
- 제어할 수 없는 것: 대역폭, 전송 프로토콜 (TCP or UDP)
- 제어 가능한 것: 비트레이트, 영상 코덱, 레이턴시
- 미리 네트워크 상황에 대해서 서비스 예정 지역을 조사해보는 것이 중요
- WebRTC 영상이 끊기는 경우
- 접속 실패
- 방화벽, 네트워크 전환, 피어 오프라인
- 시그널링이 끊기는 경우
- 해결을 위해 WebRTC + MQTT 사용
- 유언장(LWT) 기능
- 로봇과 MQTT 서버 연결될 때, LWT 전달
- 끊어지면, LWT 발행
- 상황 인지
- 거리감을 느끼기 힘든 문제가 있음
- 영상에 가이드라인 및 지도 추가
- 외부 요인
- 도로교통법, 개인정보보호법, 생활물류법, 승강기안전관리법, 입주민과 건물주의 동의 등
- 제도적인 개선이 필요ㅠㅠ
- 휴먼 에러
- Active Safety Logic을 추가하는 방법을 통해 해결 가능
To be developed
- GStreamer 파이프라인 개선
- 영상 전송 끊김 문제 개선
- 영상 저장/재생 + 모자이크 처리 (개인정보 보호법)
- 주행 안전과 관련된 기능은 네트워크와 별개로 처리
- 오퍼레이터 1명이 여러 대를 모니터링 가능하도록…
운영중인 곳
- 앨리웨이 광교 (실외 로봇 배달 서비스)
- 영등포 포레나 (실내 로봇 배달 서비스)
- 광화문 디타워 (실내 로봇 배달 서비스)
- 전국적으로 실내 서빙 로봇
요약
- 로봇 구성에 대한 실질적인 내용보다는 실시간 스트리밍에 대한 내용 위주였던 것 같음
- 사실 라이다, 기구부 등에 대한 내용이 더 궁금하긴 했는데…
- 어쨌든 이런 방법을 통해서 운영을 하고 있다는 사실을 알게된 것으로 만족한다.