ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ СИСТЕМИ КЕРУВАННЯ АВТОМАТИЗОВАНОЇ ДРОН-ДОСТАВКИ
11.10.2023 21:32
[1. Информационные системы и технологии]
Автор: Пузіно Мілана Владиславівна, студент, Національний університет «Львівська політехніка», Львів;
Журавчак Любов Михайлівна, доктор технічних наук, професор, Національний університет «Львівська політехніка», Львів
Сучасний ритм життя у великих містах обумовлює зростаючі потреби у ефективній логістиці для підтримки якості життя. Особливо це стосується доставки «останньої милі». Транспортування товарів має свої обмеження через людський фактор та вплив на довкілля через великий паливо-залежний транспорт. У результаті це може призвести до збільшення вартості доставки для бізнесу та споживачів. Крім того, конфліктні ситуації можуть поставити під загрозу безпеку осіб, які залучені у процес транспортування вантажів.
Однак, використання дронів у доставці може вирішити ці проблеми. БПЛА працюють цілодобово, ефективно та екологічно чисто, знижуючи витрати та покращуючи точність доставки.
Тож наразі така доставка стає все популярнішою. В останні роки спостерігається зростання кількості компаній, які використовують дрони для доставки власних товарів, хоча їхня загальна кількість все ще залишається малою. Серед наявних аналогів варто зазначити такі проекти, як «Amazon Prime Air» [1], «Starship Technologies» [2] та «Zipline» [3], а також згадати першу пробну доставку дронами від вітчизняного виробника «Нова пошта» [4]. Більшість з цих сервісів виконує доставку «останньої милі», тобто не покриває потреб некомерційної доставки від однієї фізичної особи до іншої, має вузьку спеціалізацію (доставка їжі, медикаментів, товарів конкретного інтернет-магазину тощо) та не має на меті реалізацію логістики в межах одного міста.
Отже, основною метою розроблюваного продукту визначено створення програмного забезпечення системи дрон-доставки для покращення процесу переміщення вантажів у межах відділень одного міста завдяки роботизації БПЛА.
Визначено, що подібне програмне забезпечення має складатися з трьох основних модулів, які під час безпосередньої реалізації утворюють клієнт-серверну архітектуру. Схематично архітектура системи зображена на рис. 1.
Рис. 1. Архітектура системи дрон-доставки
У ролі клієнта виступає користувацький застосунок, метою якого є забезпечення вільної взаємодії користувача з системою. Далі, використовуючи інтерфейс REST-AРІ, додаток надсилає HTTP запити на Web-сервер, який у свою чергу обробляє їх та виконує необхідні дії з даними, а саме базові операції CRUD. Окремою компонентою системи є модуль керування дронами, який акумулює у собі всі необхідні методи та протоколи зв’язку, а також займається обчисленням оптимальних маршрутів доставки. Використовуючи протокол MQTT (Message queuing telemetry transport) [5], ця частина програмного забезпечення утворює із дронами середовище «Видавець-Підписник». Дані, що передаються, є командами керування дроном, описаними через протокол «MavLink», який є універсальним методом зв’язку із БПЛА [6]. Він дозволяє як передавати команди, так і отримувати дані телеметрії з дрону, завантажувати маршрути місій тощо.
Визначено, що основним алгоритмом системи є алгоритм побудови маршруту польоту БПЛА, та, відповідно, сформульовано основні вимоги до нього: швидкість виконання обчислень (гарантує ефективність самої доставки та уникнення технічних затримок), масштабованість (рішення має бути здатним з мінімальними затратами обчислити задачу різного розміру) та простота у реалізації (обраний алгоритм має достатньо легко узгоджуватись з іншими програмними модулями). Серед розглянутих можливих методик були: алгоритм комівояжера, алгоритми Дейкстри та А*, а також алгоритм навчання з підкріпленням (табл. 1). У кожного з перелічених варіантів виявлено позитивні та негативні риси. Усі з наведених способів є простими в інтегруванні з іншими програмними модулями. Проте, алгоритми комівояжера, Дейкстри та А* мають поганий потенціал масштабованості, а достатню швидкість показують лише А* та алгоритм навчання з підкріпленням.
Таблиця 1
Порівняння відповідності алгоритмів побудови маршруту визначеним вимогам та критеріям системи дрон-доставки
Враховуючи проведений аналіз усіх зазначених алгоритмів, визначено, що навчання з підкріпленням є найоптимальнішим вибором для задачі маршрутизації БПЛА для дрон-доставки. Його здатність до самонавчання та адаптації до змінних умов робить його ідеальним вибором. Навчання з підкріпленням дозволяє системі швидко та ефективно визначати найкращий маршрут, уникати перешкод та оптимізувати доставку. Враховуючи потреби в швидкості та точності, цей алгоритм дозволить забезпечити оптимальну доставку з мінімальними витратами ресурсів.
За основні технології для написання програмного забезпечення обрано низку сучасних фреймворків. На момент створення прототипу найоптимальнішим рішенням у виборі технології розробки мобільного застосунку є React Native – кросплатформенний фреймворк, в основі якого використовується мова програмування JavaScript або TypeScript. Він має найбільшу кількість бібліотек та модулів, необхідних для створення системи, а також оптимальну швидкість роботи програми та зручність написання коду.
Для розробки серверної сторони системи обрано технологію Node.js – середовище виконання JavaScript на стороні сервера від Google, яке вигідно виділяється своєю продуктивністю, широкою спільнотою і великою кількістю готових бібліотек.
Для зберігання інформації обрано PostgreSQL – потужну та відкриту реляційну базу даних з акцентом на розширюваність та безпеку, адже вона поєднує в собі високу продуктивність та відкритий код, а також легко інтегрується з Node.js.
У зв’язку з неможливістю використання фізичних дронів на момент створення системи, в ролі цієї компоненти архітектури має виступати ArduPilot SITL. Це програмне забезпечення для автопілота з відкритим кодом, завдяки якому можна моделювати процес керування різними типами безпілотних транспортних засобів, зокрема дронами. Він надає доступ до широкого набору функціоналу, такого як планування місій БПЛА, автономний зліт і посадка, навігація за маршрутними точками GPS тощо. Завдяки ArduPilot можна з легкістю оцінити критичні місця системи та можливість подальшої фізичної її реалізації.
Створено пілотну версію програмного забезпечення дрон-доставки, яка включає в себе користувацький застосунок з підтримкою ролі клієнта (рис. 2), серверну частину додатку з інтеграцією з базою даних та документацією до REST API. Дана версія включає в себе можливість зі сторони клієнта на авторизацію, створення, скасування доставок, а також перегляд їхнього статусу в режимі реального часу.
Рис. 2. Приклади інтерфейсу розробленого клієнтського додатку
Надалі планується програмна реалізація другорядних варіантів використання системи зі сторони клієнтського додатку та підтримки ролі адміністратора. Також планується проведення тестування розробленої системи в інтеграції з ArduPilot SITL та аналіз отриманих результатів дослідження.
Література
1. Amazon Prime Air prepares for drone deliveries [Електронний ресурс] — Режим доступу: https://www.aboutamazon.com/news/transportation/amazon-prime-air-prepares-for-drone-deliveries (відвідано 08.10.2023).
2. Starship Technologies: Autonomous robot delivery [Електронний ресурс] — Режим доступу: https://www.starship.xyz/ (відвідано 08.10.2023).
3. Zipline Instant Delivery & Logistics [Електронний ресурс] — Режим доступу: https://www.flyzipline.com/ (відвідано 08.10.2023).
4. Фото. «Нова пошта» доставила посилку дроном із Києва до Львова [Електронний ресурс] — Режим доступу: https://www.the-village.com.ua/village/business/news/318883-nova-poshta-dostavila-posilku-dronom-z-kieva-do-lvova (відвідано 08.10.2023).
5. Mehrooz G. System Design of an Open-Source Cloud-Based Framework for Internet of Drones Application / G. Mehrooz, E. S. M. Ebeid, P. Schneider-Kamp. — 2019.
6. Sharma A. Communication and Networking Technologies for UAVs: A Survey / A. Sharma, P. Vanjani, N. Paliwal, та ін. — 2020.