프로젝트 소개
ESG관점에서 도로 운송 부문의 온실가스 감축과 향상된 배달 서비스를 위해, AI의 상호 작용을 최적화한 무인 배달 드론 관제 시스템을 개발하였다
(전시회 ppt를 pdf로 변환해서 아래 블록에 임베드해주세요.)
(깃허브에 정리한 경우 아래 블록에 링크를 넣어주세요.)
프로젝트 배경
배달 서비스의 발달로 쿠팡, 배달의 민족, 그리고 각종 온라인 쇼핑몰에서 간단한 클릭만으로 원하는 상품을 집 앞까지 배송받을 수 있다. 하지만, 배달 산업의 성장으로 온실가스의 증가라는 환경 문제가 대두되고 있으며 소비자들은 낮은 배송비와 배송 시간의 단축을 원하고 있다. 물류 단계별 비용 구성을 살펴보면, 소비자에게 배달되는 라스트 마일 배송에서 높은 비용이 발생함을 알 수 있다. 이에 라스트 마일 배송에서 드론을 이용하여 친환경적이며, 퀄리티 높은 배달 서비스를 구축하고자 하였다. 이를 위해 AI를 이용해 다수의 드론에 임무를 효율적으로 배분하는 무인 관제 시스템을 개발하였다.
목표
•
네트워크 통신: 드론과 드론, 드론과 서버 사이의 통신 구축
•
Scoring AI 개발: 요청된 일을 수행하기에 최적인 드론을 결정하고 최적 경로를 탐색하는 AI model 개발
•
드론 시뮬레이션&비행: 가상환경에서 드론 배달 시스템을 시뮬레이션&실물 드론 비행 연구
위에서 연구한 3가지 모듈을 합쳐 최종적으로 다중 드론 배달 어플리케이션을 완성하였다.
연구 내용
Scoring AI 개발
본 연구에서는 각 edge가 task를 얼마나 잘 수행할 수 있는지 계산하는 Scoring AI와, 각자의 점수를 기반으로 어느 드론이 어느 순서로 task를 수행할 것인지 할당하는 Allocationg AI를 개발하였다. 두 AI는 모두 Multi-Head Attention 모델을 사용하였다.
Attention 모델은 무엇에 집중해야 하는지를 알고 계산하는 AI모델이다. 그 중에서도 Multi Head Attention 모델을 사용하여 여러 관점에서 집중하도록 계산하고 이들을 Concat하여 다방면의 요소를 고려하여 우선순위를 결정할 수 있도록 하였다.
1.
Scoring : 해당 edge가 작업을 얼마나 잘 수행할 것인지 계산하는 AI를 개발하였다. Scoring 문제를 수행하기 위해 input으로 task와 고려해야 할 상황 정보를 제공하였다. 그러면 Attention Model이 Encoding을 통해 어떠한 정보를 중심으로 고려해 점수를 계산해야 할지 학습하고, Decoder를 통해 Output으로 Scoring 결과를 점수로 나타낸다.
2.
Allocationg AI: Allocation 문제를 수행하기 위해 Traveling Salesman Problem 해결을 시행한다. input으로 이전에 선택된 벡터를 넘겨줘 그 벡터들의 관계와 task가 선택될 확률을 파악한다. 그러면 Multi-Head Attention Model이 Encoding을 통해 입력값에서 고려할 정보들을 수집하고, 각 Input에 대한 우선순위 확률값을 출력한다. 이 중 가장 확률값이 높은 task를 선택하여 우선순위를 결정하고, 우선순위를 결정한 벡터를 제외하고 다음 순위를 결정한다.
3.
Bit Masking: 할당된 task를 어떤 순서로 방문해야할지 계산하는 AI를 개발하였다.
드론 시뮬레이션&비행
본 연구는 AI를 기반으로 다중 드론을 제어함으로써 서비스를 구축하고자 한다. 하지만, 비용과 안전 문제 등을 고려하였을 때 현실세계에서 드론 여러 대를 띄워 실험을 하는 것은 쉽지 않다. 따라서 Simulation 팀은 Microsoft에서 개발한 오픈소스 시뮬레이터인 Airsim과 Unreal Engine을 이용하여, 제안한 서비스가 실현 가능함을 보여주고자 하였다. 이를 위해 다중 드론 제어, 이동 경로 시각화, 가상환경에서의 비행 시뮬레이션을 목표로 하여 연구를 진행하였다.
1.
비행 시뮬레이션: 여러 대의 드론을 제어하기 위해, Airsim을 통한 비동기식 드론 다중제어를 구현하였다. pygame을 통해 각 드론의 이동경로를 시각화하였으며, 현실 세계와 비슷한 가상 환경을 구축하여 비행 시뮬레이션을 진행했다.
드론 비행의 경우, 드론 기체 제작과 드론 비행, 컴패니언 컴퓨터의 통신 확인 및 비행을 통해 실제 드론이 task를 전달받아 비행하는 모듈을 개발하는 것을 목표로 한다.
무인 배달 드론 관제 시스템을 위해서는 고성능의 연산을 하는 컴패니언 컴퓨터가 실시간으로 드론 비행 제어를 해야 한다. 이를 위한 첫 단계로 오픈 소스 기반의 자동 제어 장치인 Pixhawk4(이하 PX4)와 컴패니언 컴퓨터를 연결하고 서로 통신하는 것을 확인하고 최종적으로 컴패니언 컴퓨터의 명령을 통한 드론 비행 제어까지 진행하고자 한다.
드론 비행의 경우, 드론 기체 제작과 드론 비행, 컴패니언 컴퓨터의 통신 확인 및 비행을 통해 실제 드론이 task를 전달받아 비행하는 모듈을 개발하는 것을 목표로 한다.
무인 배달 드론 관제 시스템을 위해서는 고성능의 연산을 하는 컴패니언 컴퓨터가 실시간으로 드론 비행 제어를 해야 한다. 이를 위한 첫 단계로 오픈 소스 기반의 자동 제어 장치인 Pixhawk4(이하 PX4)와 컴패니언 컴퓨터를 연결하고 서로 통신하는 것을 확인하고 최종적으로 컴패니언 컴퓨터의 명령을 통한 드론 비행 제어까지 진행하고자 한다.
1.
드론 기체 제작: 비행을 위한 드론의 부품을 구입하여 기체를 제작한다.
2.
드론 비행: 시뮬레이션을 통해 검증된 코드로 실제 드론을 비행시켜본다.
네트워크 통신
본 연구는 서버와 드론, 드론과 드론 사이의 통신을 구축하는 것을 목표로 한다. 통신 모듈을 위한 연구 절차는 다음과 같다.
1.
데이터베이스 및 개발환경 구축: 통신을 위한 서버 프레임워크를 사용하여 서버를 구축하고, 데이터베이스를 설계한다.
2.
API 개발: 드론에게 명령을 내리고 조작하는 데 필요한 정보를 가공하고, 주고 받을 수 있도록 API를 개발한다.
위와 같은 네트워크를 구성하여, 요청된 POST 값으로 DB에 접근하여 각 프로세스 내부 로직 수행에 필요한 데이터값을 필터링하여 가져오는 과정을 구현하고자 하였다. 각 과정을 위하여 python을 기반으로 MySQL과 같은 데이터베이스에 접근할 수 있도록 해주는 ORM라이브러리인 Sqlalchemy와 백엔드 서버 구축 라이브러리인 fast api를 사용하였다. 원활한 처리를 위해, 특정한 명령과 타이밍 없이 데이터가 들어오면 처리하는 비동기식 회로를 사용했다.
Flowchart
다중 드론 배달 서비스의 동작은 다음과 같다.
1.
어플리케이션으로 배달받을 좌표와 배달음식픽업좌표를 데이터베이스로 전달한다.
2.
요청된 task를 수행할 수 있는 edge device(드론)를 필터링한다.
3.
배달가능한 각각의 드론에 score를 요청한다.
4.
드론은 Score AI를 바탕으로 자신의위치, 현재할당된task,잔여배터리정보를 반영하여 본인의 score를 결정한다.
5.
Score를 바탕으로 가장 최적의 edge device(배달드론)를 결정한다.
6.
배달드론은 AI Model을통해 할당받은 task들을 토대로 이동경로를 설정한다.
7.
드론이 배달음식 픽업 후 배송지까지 배달 후에는 할당된 업무수행능력을 스스로 평가하여 scoring하고 그 결과를 server에 전송하여 이후 task 할당에 반영할 정보를 갱신한다.
결과
기존의 배정방식과 우리 시스템의 배정 방식을 비교했을 때 기존 방식에 비해 드론의 이동거리가 줄어서, 임무 수행의 시간을 24.45% 개선하는 결과를 얻었다. 각기 드론의 성능과 처한 상황에 맞게 골고루 임무가 배분되기 때문에, 이는 임무 수행의 시간 단축의 결과를 이끌어내었다. 이를 통해 배송 퀄리티를 향상시키고 임무 쏠림 현상을 해소할 수 있음을 확인할 수 있었다.
시연영상
결론
본 연구의 결과물은 무인 배달 시스템의 효율성과 안정성을 높이는 데 사용될 수 있다. 특히, 본 프로젝트 연구에서 개발한 ‘사용자의 배달 위치와 픽업 위치 정보를 활용하여 가장 효율적인 배달 드론을 선정하는 기능’은 배달 서비스의 시간 단축과 그에 따른 배달비 감축으로 이어져 사용자의 만족도를 높이는 데 기여할 것이다.
현재 본 프로젝트는 Edge computing으로 네트워크 과부화 문제를 해결하여 데이터 처리의 효율성을 향상하였다. 이 기술을 발전시킨다면, AI들이 업무를 요청, 수행하여 일을 연계하는 문제를 해결하고, 서비스 중 실패를 감지하고 스스로 정정해내는 능력을 가지게 되어 완전자동화 생태계에 더 가까워질 수 있다. 그 결과 무인 자동 시스템은 배달 외에도 측량 및 지형 조사, 의료 지원 등 다양한 분야에 적용 가능할 것이다.
뿐만 아니라, 본 프로젝트는 Scalabe하게 확장할 수 있다는 장점이 있다. 간단하게 관제탑 위에 관제탑을 관제하는 상위 관제탑을 추가함으로써, 성북구 단위의 관제, 서울시 단위의 관제, 대한민국 단위의 관제 등으로 더 상위의 범위에서 관제할 수 있다.
연구방법 및 과정
타임라인
사용한 도구
•
Fast API 라이브러리, SQLAlchemy 라이브러리, AWS, MYSQL
•
Multi-Head Attetion Model
•
Airsim, Unreal Engine
•
PX4, Gazebo, QGroundControl
프로젝트 소감
•
6개월이라는 긴 기간 동안 새로운 것에 도전할 수 있었기에, 값진 경험이었습니다.