Автопілот для дронів навчився швидкісним польотам у лісі

Інженери зі Швейцарії розробили автопілот для дронів, який здатний керувати ними на високій швидкості при польотах у незнайомому оточенні, вибираючи безпечний маршрут для маневрування між безліччю перешкод. Для цього вони використовували методи машинного навчання, натренувавши нейросетевий агент знаходити оптимальні траєкторії для руху, використовуючи тільки інформацію про швидкість, положення в просторі і зображення від бортових 3D-камер дрона. Для демонстрації можливостей алгоритму в реальних умовах, дрон випробували в різних оточеннях. Наприклад, автопілот продемонстрував здатність керувати квадрокоптером зі швидкістю від 3 до 7 метрів на секунду в лісі, уникаючи зіткнень з деревами та їх гілками, а також пролітати через вузькі прорізи на високій швидкості. При цьому алгоритм не вимагає великих обчислювальних ресурсів і йому достатньо можливостей бортового комп'ютера дрона. Стаття опублікована в журналі.


Сучасні квадрокоптери мають надзвичайно високу маневреність і рухливість. Вони здатні швидко змінювати напрямок руху, різко прискорюватися і сповільнюватися, здійснювати перевороти в повітрі і рухатися на високій швидкості. Це робить їх пілотування, особливо в оточенні великої кількості перешкод, непростим завданням і вимагає тривалої підготовки пілотів.


Інженери давно працюють над створенням автопілота, здатного керувати мультикоптерами на рівні професійних пілотів в умовах невідомого оточення з великою кількістю перешкод. Це дозволило б знизити ступінь людської участі в управлінні дронами і розширити спектр завдань, що виконуються ними в повністю автономному режимі.

Основними стримуючими факторами при створенні автопілота для управління дроном на високих швидкостях виступають неповнота знань про оточення, яка випливає з недосконалості сенсорів, і обмежені обчислювальні здатності бортового обладнання. Алгоритм повинен вміти з мінімально можливою затримкою планувати траєкторію, політ по якій можливий фізично для дрона і яка вільна від перешкод, спираючись при цьому тільки на швидко мінливі дані бортових сенсорів, які містять шуми і спотворення, викликані швидким рухом і постійно змінюється рівнем освітлення.

Інженери з Цюріхського університету під керівництвом Давіде Скарамузза (Davide Scaramuzza) розробили алгоритм автопілота, який відповідає перерахованим вимогам і здатний керувати дроном на високій швидкості в незнайомому оточенні, що містить велику кількість перешкод складної форми.

Для експериментів інженери побудували квадрокоптер вагою 890 грамів з коефіцієнтом тягоозброєності 4,4. За характеристиками платформа, що вийшла, порівнянна з гоночними дронами, які використовуються професійними пілотами в змаганнях. Як головний бортовий комп'ютер використовується NVIDIA Jetson TX2, графічний модуль якого використовується для нейросетевих розрахунків, а центральний процесор здійснює управління дроном, посилаючи команди на польотний контролер. Для отримання інформації про навколишній світ використовуються дві камери глибини Intel RealSense, які дозволяють отримувати інформацію про глибину зображення, а отже оцінювати відстані до об'єктів в поле зору.

Замість того щоб розділяти завдання пошуку оптимальної траєкторії польоту на окремі підзадачі розпізнавання і планування маршруту, розробники застосували наскрізний підхід. Нейросетевий сенсомоторний агент безпосередньо переводить зображення зі стереокамер розмірністю 640 на 480 точок, а також інформацію про швидкість і положення дрона в просторі в оптимальні траєкторії руху в обраному напрямку, які потім перетворюються в команди для польотного комп'ютера і сигнали для роторів дрона. Такий підхід дозволяє значно знизити тимчасові затримки при обчисленні маршруту.

Для навчання сенсомоторного агента розробники застосували імітаційне навчання, яке здійснюється за допомогою експерта - алгоритму, що володіє повною інформацією про оточення і стан дрона і генеруючого набори оптимальних траєкторій, огинаючих перешкоди на обраному напрямку руху за допомогою алгоритму семплювання Метрополісу-Гастінгса. Оскільки в реальному світі неможливо отримати весь обсяг інформації про стан оточення, тренування і подальше тестування проводилося в симуляторі для квадрокоптерів Flightmare, а моделі оточення створювалися з асетів ігрового движку Unity.


Сцени для тренувань складалися з випадково розставлених на шляху моделі дрона перешкод у вигляді дерев і геометричних тіл різної форми і розмірів. Сцени для тестування можливостей алгоритму імітували ліс зі щільною випадковою розстановкою дерев, а також міське середовище з будинками, дорожніми знаками, автомобілями і стовпами, а також індустріальні пейзажі з безліччю перешкод різної форми і розмірів.

Надалі, навчений алгоритм перенесли без будь-яких змін і випробували на справжньому дроні в умовах реального лісу та індустріальних пейзажів. Дрон з новим автопілотом підтвердив можливість переміщатися на високій швидкості від 3 до 10 метрів в секунду через простір з безліччю раптово виникаючих перешкод. Так, наприклад, дрон під керуванням автопілота продемонстрував здатність загортатися в польоті від дерев, що раптово з'являються на його шляху гілок. На швидкостях до 5 метрів в секунду дрон пройшов всі випробування без єдиного зіткнення, а зі збільшенням швидкості до 10 метрів в секунду зростало число помилок, але кількість успішних випробувань, коли дрон без зіткнень досягав заданої точки, перевершувала випадки, в яких відбувалися зіткнення.

В одному з експериментів тестовий дрон повинен був вилетіти з ангара на максимальній швидкості через вузьку щілину в дверях. Комерційний квадрокоптер, що переміщається з максимальною швидкістю 2,7 метрів в секунду в двох випробуваннях зупинявся перед дверима, вважаючи, що вікно виходу занадто мало, а в третьому випробуванні зіткнувся зі стіною, тоді як дрон з тестованим автопілотом успішно пролетів через вузький вихід у всіх шести випробуваннях зі швидкістю від 3 до 5 метрів в секунду.

У майбутньому розробники планують продовжити роботу над поліпшенням алгоритму автопілота для керування польотом на швидкостях понад 10 метрів на секунду.

Стереозображення для автономного розпізнавання перешкод на шляху безпілотника в польоті раніше також використовували американські інженери з Массачусетського технологічного інституту. Вони розробили алгоритм, який за зображенням з двох камер, встановлених на крилах дрона, дозволяє вчасно розпізнавати небезпеку зіткнення з перешкодою і йти від нього на швидкості до 50 кілометрів на годину.

Для того щоб дрони могли діяти в групах важливо, щоб вони не тільки вміли ефективно маневрувати між перешкодами, які вони зустрічають на шляху, але і не допускати зіткнень з іншими дронами. Американські інженери використовували методи глибокого навчання для того, щоб навчити дронів прокладати шлях через простір з перешкодами, при цьому уникаючи зіткнень між собою. Розроблений ними алгоритм також враховує аеродинамічні обурення, створювані гвинтами дронів під час польоту, дозволяючи зменшити вплив повітряних потоків на траєкторію руху дронів у рої при близьких прольотах.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND