# 주제
한 번의 배달을 위해 필요한 모든 기술들: 우아한 테크콘퍼런스 2023
# KeyPoint
1) 배민이 로봇을 만들려면?
배달의 민족이 로봇을 만들어 배달에 성공하기 위해 분석해 본 내부적 요인들은 여러 가지가 있다고 합니다. 튼튼한 하드웨어, 실내외 지도, 배달 속도, 제어, 관제시스템, 인지, 장애물 회피, 보온보냉, Fleet management, 원격진단, 엘리베이터 등. 이에 추가적으로 배달이다보니 정적/동적 장애물 회피, 안전과 보안적인 측면도 고려해야 한다고 한다.
또한 로봇의 성공을 위한 외부적인 요인도 분석해본 결과 여러가지가 고려되더군요. 도로교통법, 도로 상태, 보험료, 사회적 수용, 지능형 로봇법, 개인정보 보호법, 로봇친화적 인프라 구축, 부품 가격 등. 구체적으로 정리한 법규 관련 외부 요인 아래의 표과 같습니다.
이 모든 것이 고려된다고 하더라도, 사람들은 로봇에 대한 낯섦과 두려움이 있을 것이기에 친화적인 로봇을 만드는 것이 중요하며, 이는 배달의 민족이 많은 고민 끝에 해결해나가고 있다고 합니다.
네 줄 요약
세상에는 배달해야 할 행복이 너무 많아요.
이 배달을 사람이 전부 하려면 어려움도 많고 비용도 계속 증가할 거예요
그렇다면 해결 방법은? 똑똑하고 튼튼한 배달 로봇의 도움을 받으면 어떨까요?
누구보다 배달에 진심인 배민이 지금 만들고 있습니다.
2) 배민의 배달 로봇 dilly
우아한 형제들이 만드는 우아한 형제들을 위한 로봇의 설계 및 디자인 소개 왜 이렇게 만들었는가ㅤ ㅤ
추천 대상
- 자율주행 로봇을 개발하고 싶은 분
친근하고 불편함이 없고 로봇이 하고 있는 행위를 간단하게 표현할 수 있는 형태의 로봇을 기획
기획을 통해 다음과 같이 dilly의 형태를 변경
친근함과 상태를 나타낼 수 있는 눈의 모양도 깔끔하게 디자인
제자리 선회 기능. 앞쪽과 뒤쪽을 같이 움직여 회전 반경 감소, 서스텐션 추가
빠른 배달 속도를 위해 작은 회전 반경
과속방지턱이나 벨지안로 같이 울퉁불퉁한 부분도 스무스하게 넘어가도록 6개 바퀴에 구동부와 서스펜션 배치
적재함 25L(생수 2L 6병) + 자동으로 여닫기
3) 배달 로봇 dilly의 자율주행 소프트웨어
배달 로봇 dilly의 자율주행 소프트웨어는 어떻게 구성되어 있는지 소개합니다.
추천 대상
- 우아한 형제들에서 어떤 로봇을 어떻게 개발했는지 궁금한 분
- 자율주행 로봇 소프트웨어에 관심 있는데 어디서부터 시작해야 할지 어려움이 있는 분
배민 로봇의 변천사: dilly-o -> dilly-x -> dilly-x2
3-1) dilly-o 주요 기능: 엘리베이터
- ROS 1 Navigation Stack(move_base)
- Robot management system Client
Robot management system Client(feat. 층간 이동 모바일 로봇(엘리베이터))
불법적인 방식: 승강기 내 무선통신장치
초기에는 엘리베이터 내에 층간 버튼을 인식하는 무선통신장치를 넣어두고 센서를 활용하여 층을 이용할 때마다 count 하여 엘리베이터 층을 계산함.
실제로 잘 운영되었지만 과거에는 승강기 내에 무선통신 장치를 달게 되면 안전 규정에 위반되어 테스트만 진행함(물론 현재는 로봇 승강기 승하자를 위한 무선통신 장치를 다는 것을 법적으로 검토 중).
합법적인 방식: 엘리베이터 감시반 이용
국내에는 특정 규모 이상이 되는 아파트에는 의무적으로 엘리베이터 감시반이 필요함. 감시반이 모니터링도 가능하지만 엘리베이터를 호출 및 제어도 가능함.
엘리베이터 관제 센터에 MQTT Server로 데이터(카콜, 홀콜) 송신(Publish Subscribe Pattern)
여기서 MQTT를 활용한 이유는? 프로세스가 죽었을 때 유언장?을 남기거나 재접속하기 용이하여 선택함.
Behavior Planner(State Machine): 층 변경과 동시에 map 호출 및 relocalization
3-2) dilly-x: Autoware Opensource
- 차량의 속도, 조향 브레이크 제어하는 기능
- GNSS, IMU, LIDAR, Camera 등 센서들을 활용하여 차량의 위치와 방향을 추정
- 주변환경을 인식하고 움직이는 물체의 경로를 예측
- 차량의 주행 경로와 행동을 계획
- 가상의 환경에서 자율주행 시각화 및 평가
Summary of dilly-x Algorithms
- way point following(GPS tracking)
- localizer -> linear localizer -> motion controller(관성, 회전반경 고려)
- object detection을 위한 ground removal(threshold 기반)
- 초기 threshold 기반 -> 경사로, 과속방지턱 등 잘 안됨
- Autoware 내부 ground removal 사용
- grid map generator -> path planning
- clustering -> object classifiaction(동적 모델 고려 위함) -> object path tracking -> object path pridiction(동적 모델 고려)
dilly-x Algorithms: Waypoint Following
- waypoint: 경로의 특정지점을 정해 해당 지점을 지나서 가도록
- localizer: 현재 로봇의 위치가 어디 있는지 파악(LiDAR, RGB-D 센서 활용)
- motion controller: 기하학적 모델(비교적 간편), tire force model, dynamic model
dilly-x Algorithms: Stop & Go
- ground removal: 지면도 물체로 인식 시 로봇이 움직이지 않으니 ground 인식하는 알고리즘 필요
- 과속방지턱을 넘어갈 때 순간에 지면을 장애물로 인식하여 튜닝 필요\
- Stop & go: 물체를 인식할 시 정지
dilly-x Algorithms: Static Obstacle Avoidance
- grid map generator: 장애물을 검은색으로 표현. 로봇이 움직일 수 있는 범위를 회색으로 표현
- path planner: 로봇이 움직일 수 있는 범위를 바탕으로 최적은 경로를 계획함
dilly-x Algorithms: Dynamic Obstacle Avoidance
- clustering: ground removal 된 포인트 클라우드를 좀 더 작은 범위로 나누어 객체 단위로 clustering
- obstacle classification: 객체를 분류하여 특정 객체의 동적 모델링을 반영하기 위해 사용
- path tracking: object의 이동 경로를 tracking
- path prediction: 각 객체의 이동경로와 동적 모델링을 고려하여 이동 경로를 예측
3-3) dilly-x2: Robotics LAB 내재화
현재 ROS 2 기반 오픈소스를 사용하지 않고 자체 개발 중
Dilly Map Studio
상용 GIS 툴은 복잡하고 불필요한 기능이 많음 + OS dependent 한 경우도 일부 있음. 웹 기반으로 필요한 기능만 모아서 자체 제작
pcd 맵 불러오기, waypoint 수정, 횡단보도 벗어나지 않게끔 하는 다양한 기능 제공함
Motion Planner
장애물에서는 최대한 멀리 떨어지게, 급회전 시 부드러운 코너링, 로봇의 motion constraint를 고려한 planner
control
dilly-X에서는 단순한 기하학적 모델을 검토하였지만, 현재는 tire force model, dynamic model(MPC) 같은 것들을 테스트 중
motion planner와 controller의 궁합이 중요하기에 여러 가지 테스트를 진행 중
이를 위한 로봇의 모션을 캡처하는 장비도 도입하여 실험환경 조성함.
4) 배달 로봇의 주변 환경 인지
배달로봇이 고객의 문 앞에 가는 길은 참 험난하군요? 자율 주행을 위한 주변 환경 인지에 관해 이야기합니다.
추천 대상
- 자율 주행의 환경 인지에 관심이 있는 분
- 컴퓨터 비전 기술의 로봇 적용 방법이 궁금한 분
요약: 시각 데이터 처리하는 방법 및 현재의 문제 상황 들에 대해 설명
어떤 문제? 보도 블록 끝, '차량 주의' 경고 문자, 말뚝 인식
무엇을 사용?
- 라이다: 거리는 잘 알 수 있으나, 사업 특성상 비싼 것을 사용할 수 없음
- 카메라
- 몇 개를 달 것인가?
- 렌즈의 화각은 얼마로 할 것인가?
- 야간 성능이 충분한가? (저조도, HDR)
- 스테레오 카메라를 쓸 것인가?
어떻게?
- Ground Plane
- 라이다: 바닥 높이가 아니면 가지 않도록 -> Ground plane cost grid(Binary X) -> 학습해서 노이즈를 제거 -> 여러 시간의 관측을 누적시키자(temporary)
- 카메라: Segmentation X Depth estimation -> 모든 결과는 3차원(또는 top view)으로
- 센서 퓨전: 라이다와 카메라의 결과를 상황에 따라 융합하자
- 동적 장애물 검출: Object Detection & Tracking(Matching & Filtering) -> 카메라 & 라이다 퓨전
- 신호등 인식: 2D Object Detection + Map 정보 활용 -> 이 정도 위치에 신호등이 있겠지? 하고 ROI 적용
향후: 이걸 로봇에서 다 할 수 있어요?
- 가벼운 DNN 모델 사용(로봇은 자율주행 자동차만큼 멀리 안 봐도 돼요)
- 입출력 해상도를 낮게, 전방 기준 50m 인지 범위
- 모델 경량화 적용(quantization, pruning 등)
- FPS의 타협 (로봇은 천천히 달려요)
- 100ms 목표 latency
- 딥러닝 가속 코어들을 충분히 활용
- 여러 모델을 최적화하여 실행
- 파이프라인 최적화
5) 클라우드와 로봇 배달
클라우드와 배달 로봇은 무엇을 위해 그리고 어떻게 연결되어 있나요?
추천 대상
- IoT나 로봇을 다루는 클라우드의 구성과 개발에 대해서 궁금한 분
- 사람이 아닌 AI 클라이언트에 대해서 함께 얘기해 보고 싶으신 분
6) 로봇 배달 챌린지 풍경 스케치
배달의 민족 로봇 배달 챌린지
- 로봇 자율주행 챌린지: 복잡한 도심에서 누구보다도 빨리 이동하는 기술 경연
- 푸드 딜리버리 챌린지: 음식을 보호하면서, 다양한 환경을 빠르게 달리는 기술 경연
로봇 자율주행 챌린지: 모라이 디지털 트윈 환경
필요 사항: 맵환경, 자율주행 로봇 이동체, 주변 인지를 위한 가상 센서
맴 환경: 실내 맵 & 실외 맵
자율주행 로봇 이동체: 로봇의 동특성 모델링 고려한 이동 구현
가상 센서
시뮬레이터 상의 센서 데이터 제공: ROS 통신
참가자의 실력을 판별할 수 있는 룰 정하기
- 배달 선공한 물품 개수 = 점수
- 10분 동안 배달
- 사람과 충돌하면 출발지로 강제 이동 (가지고 있던 배달품 유지)
- 한 번에 여러 개를 실어도 됨
푸드 딜리버리 챌린지: 물 나르기
# 결과 기록
# 느낀 점
현장 세미나를 들었을 때는 디테일한 부분까지 잘 들리지 않아서 살짝 아쉬웠다고 느꼈는데, 공개된 영상을 확인하니 배민이 정말 고민을 많이 하고 배달을 잘할 것 같다는 생각이 들었다.
프로덕트 개발팀에서 여러 요소를 고민하고 배민의 장점을 잘 살려주고, 하드웨어 팀에서는 최대한 안전하고 빠르게 구동할 수 있는 구동체를 만들고, 소프트웨어 팀에서는 여러 요소를 해결해나가고 있는 중으로 보였다. 배달 로봇의 수요는 갈수록 늘어날 것으로 보이지만, 생각보다 어려운 과제가 많고 해결한 것보다 해결하지 못한 부분이 훨씬 많은 것 같다(역시 업계에서 고민하는 부분은 학계에서 고민하는 부분이랑 꽤나 차이가 있다고 느껴지며 정말 사소한 영역도 문제가 될 부분이 많은 것 같다).
추가로, 세션 발표자 분들과 얘기하며 배달의 민족에 대해 조금 알아보니 General SW Developer로 모집하는 분야는 로봇 SW 엔지니어뿐만 아니라 수학능력이나 특정 분야에 통찰력을 가진 사람들, 깊이 생각하는 사람을 모집하는 전형이었다. 개발하다 보면 그런 부분이 중요하다고는 느꼈지만, 특정 기술을 사용해 보는 것보다는 깊이 있게 고민하고 문제를 해결하는 사람이 중요한 것 같다.
# 참고
- [우아콘] WOOWACON 2023: https://woowacon.com/
- [우아콘] WOOWACON 2023 세션: https://woowacon.com/presentations
- [우아콘] 배민이 로봇을 만들려면?: https://youtu.be/4tf612EU514?si=iCBw_LooAfvsOEVj
- [우아콘] 배민의 배달 로봇 dilly: https://youtu.be/fDCyJMSm2Fg?si=ut-6SN5fnqGKr3c9
- [우아콘] 배달 로봇 dilly의 자율주행 소프트웨어: https://youtu.be/-zPr3A4STKs?si=0mfiqRWYWEr3rw7j
- [우아콘] 배달 로봇의 주변 환경 인지: https://youtu.be/7QFMru0HZto?si=lM3kP1GEz2ST4a5n
- [우아콘] 클라우드와 로봇 배달: https://youtu.be/pSaIP4PmH-I?si=a3WUYZciud5KKA0M
- [우아콘] 로봇 배달 챌린지 풍경 스케치: https://youtu.be/fk1RqCHac7Q?si=5Kf5eRHM-hCgKY-l
'IT Trends > Conference, Faire (Experience)' 카테고리의 다른 글
[세미나] AI프렌즈: NeRF(Neural Radiance Field) 트랜드와 속도 발전 동향 (LG전자 김도연) (1) | 2024.01.08 |
---|---|
[컨퍼런스] SLAM KR Offline Event 2023 (23.11.25.) (0) | 2023.11.29 |
[세미나] OpenAI DevDay(23.11.08.) (1) | 2023.11.13 |
[컨퍼런스] 2023 로보월드 + R-biz 챌린지(23.10.14.) (0) | 2023.10.19 |
[컨퍼런스] 2023 Google 인공지능위크 (23.07.13. - 07.15.) (0) | 2023.07.15 |