우아한형제들 - 배달로봇 딜리

배달로봇 딜리를 조종하는 흑마술

흑마술?

  • 마법 같은 건 없음 ^^, 이것은 지식입니다.

자율주행?

  • 실외에서는 변수가 너무 많음
  • 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
    • 1초 이하의 latency를 가짐
  • 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명이 여러 대를 모니터링 가능하도록…

운영중인 곳

  • 앨리웨이 광교 (실외 로봇 배달 서비스)
  • 영등포 포레나 (실내 로봇 배달 서비스)
  • 광화문 디타워 (실내 로봇 배달 서비스)
  • 전국적으로 실내 서빙 로봇

요약

  • 로봇 구성에 대한 실질적인 내용보다는 실시간 스트리밍에 대한 내용 위주였던 것 같음
  • 사실 라이다, 기구부 등에 대한 내용이 더 궁금하긴 했는데…
  • 어쨌든 이런 방법을 통해서 운영을 하고 있다는 사실을 알게된 것으로 만족한다.

comments