Інтегрована платформа розробки ШІ для дронів
Індустрії БПЛА не вистачає загальнодоступної відкритої апаратної платформи, доступного симулятора для тестування та стандартних комплектів апаратного забезпечення для порівняльного аналізу. Крім того, розпочати розробку складно без низькорівневої експертизи в галузі радіотехніки. Ці проблеми заважають інноваціям і доступності в розробці програм ШІ для дронів.
![](/images/cases/integrated-hardware-and-software-platform-ai-development-uavs/development-uavs-1.jpg)
Завдання
![](/en/images/target.png)
Один з основних викликів виник при розробці рішення для автономного керування літаючими засобами. Виявилося, що готових рішень (дрону + ШІ) з відкритою архітектурою для розробки та тестування систем управління просто неможливо купити або використовувати вже готові комплекси.
При розробці та тестуванні рішень, які використовують інструменти Комп'ютерного зору та Машинного навчання, необхідно було розробити платформу для тестування та налагодження систем обробки даних та керування дронами. Таке рішення мало бути максимально мобільним (компактним), підтримувати різні архітектури (бібліотеки), бути продуктивним для реалтаймових обчислень, невибагливим до живлення через використання в екстремальних умовах та підтримувати різноманітне периферійне обладнання. При цьому рішення має підтримувати різні зовнішні контролери та протоколи інтеграції з ними.
Також важливим є завдання максимальної гнучкості та простоти доступу до тестових даних, щоб у реальному часі відстежувати метрики роботи алгоритмів управління комплексом.
На додаток це рішення має бути бюджетним, а комплектуючі повинні бути доступні для замовлення без обмежень.
Огляд рішення
![](/en/images/bulb.png)
Підхід у створенні комплексних рішень передбачає використання апаратного рішення та програмного середовища. Для первинного тестування алгоритмів та рішень, що використовуються в робототехніці, обрали міжплатформний симулятор з відкритим кодом для безпілотних літальних апаратів AirSim, створений з використанням ігрового рушія Unreal Engine 4 як гнучкої платформи для досліджень в області ШІ. На даному етапі вдалося розробити та протестувати у віртуальному середовищі рішення щодо управління літаючими засобами, рішення щодо візуальної одометрії, пошуку, класифікації та визначення об'єктів на поверхні землі. Розробка та тестування проводилося з використанням емульованих датчиків та носіїв.
Для апаратної підтримки необхідно було вибрати мобільну платформу, яка відповідає означеним вимогам і не суперечить базовим обмеженням щодо її використання. Первинно розглядали як базову платформу мікрокомп'ютери від компанії Nvidia лінійки Jetson, але при тестуванні цієї платформи зіткнулися з набором незадовільних параметрів, які не дозволяли розглядати ці продукти як основу системи для тестування рішень. Лінійка Jetson обмежена за продуктивністю, недостатньо компактна, вимоглива до живлення та обмежена до замовлення. Як наслідок, ми виключили цю платформу з переліку ймовірних. Зрештою зупинилися на рішеннях від бренду Raspberry Pi. Ця платформа базово задовольняє всім вимогам для розробки тестової платформи, але не має рішень для використання в дрібносерійному виробництві.
Використання тестової платформи дозволило інтегрувати рішення на реальний дрон і отримати доступ до відстеження метрик у реальному часі.
![](/images/cases/integrated-hardware-and-software-platform-ai-development-uavs/development-uavs-2.jpg)
![](/images/cases/integrated-hardware-and-software-platform-ai-development-uavs/development-uavs-3.jpg)
Технічні деталі
![](/en/images/tools.png)
Для реалізації віртуального тестового середовища було розгорнуто та протестовано систему на базі AirSim для первинної перевірки алгоритмів розпізнавання за візуальним потоком з використанням віртуальних датчиків (сенсорів).
Розроблено додаткове віртуальне середовище для AirSim, яке суттєво розширювало можливість емулювання поведінки дронів. Дане рішення було мотивовано обмеженою функціональністю готових для використання віртуальних середовищ і обмеження модифікації середовища шаблонних просторів.
Далі, після ряду навантажувальних тестів за апаратну платформу, було обрано одноплатне рішення Raspberry Pi 5 (8Gb) з набором зовнішніх датчиків, барометр (mpu2950), гіроскоп\акселерометр (ms5611). Одним з основних факторів вибору даного набору датчиків є підтримка інтерфейсу SPI, який дозволяє опитувати стан сенсорів з більшою частотою ніж I2C. Raspberry Camera module 2 обрана як базова камера, оскільки, на відміну від Camera module 3, не має автофокусу виконаного у вигляді фізичного модуля і не схильна до впливу вібрацій, які у свою чергу несприятливо впливали на тестові візуальні дані, одержувані в результаті тестових завдань.
Виділення окремого модуля живлення для підтримки 5А струму, що потрібне для стабільної роботи бортового модуля при різних режимах польоту зі значно зміненими показниками живлення силового контуру дрону. Додана підтримка потужнішого зовнішнього модуля WiFi та зовнішній комплекс зв'язку для онлайн моніторингу телеметрії. Загальний стан датчиків та тестового модуля, включно з телеметрією та повним спектром логування, проводився за допомогою кастомної збірки Betaflight з візуальним контролем через розширену версію Betaflight Configurator.
Це рішення дозволяє тестувати на реальних польотних завданнях складні алгоритми та системи візуальної одометрії з мінімальними витратами часу та коштів.
Стек технологій
![GPT](/en/images/OpenCV.png)
OpenCV
![Llama 2](/en/images/c++.png)
C++
![Llama 2](/en/images/Python.png)
Python
![Llama 2](/en/images/betaflight_48.png)
BetaFlight
![Llama 2](/en/images/AirSim_48.png)