Illustration

Drone Autonomy: донаведення

Практична програма з візуального наведення БПЛА на ціль

Старт: жовтень

Формат: онлайн, 14 тижнів

За 14 тижнів навчишся будувати систему від першого автономного зльоту до наведення апарата на візуальну ціль і точної посадки на неї.

Illustration
Illustration
Illustration

Ціль програми

Зараз ти не знаєш, як під'єднати комп'ютерний зір до автопілота, як провести ціль від кадру до реального руху апарата й утримати його на ній, і як зробити, щоб система не збоїла за межами ідеальних умов.
Після курсу ти зможеш: керувати ArduPilot кодом на Python через MAVLink, витягати ціль із відеопотоку й переводити її в координати дрона, розпізнавати об'єкти нейромережею, будувати логіку наведення з обробкою відмов, збирати й запускати наскрізний сценарій наведення апарата на візуальну ціль із точною посадкою — у симуляції.

Програма підійде:

(01)

Технічному спеціалісту / оператору БПЛА

Ти знаєш польотні режими й Mission Planner на практиці, але не програмуєш.

(02)

Розробнику з Python

Ти пишеш код, але не працював з автопілотами, сенсорами й комп'ютерним зором.

(03)

Інженеру суміжної галузі

Ти розумієш апаратну частину й системи керування.

Під час програми ти:

Illustration

Запустиш віртуальний дрон

Розгорнеш ArduPilot SITL (запуск польотного коду без реального дрона) і будеш піднімати БПЛА в повітря за кілька хвилин.

Illustration

Керуватимеш кодом автопілота

Напишеш бортове програмне забезпечення на Python, яке через MAVLink віддає команди зльоту, польоту й посадки та перевіряє реальний стан апарата.

Illustration

Витягнеш ціль із відеопотоку

Побудуєш ланцюг «камера → детекція → положення цілі» і переведеш координати з пікселів у метри та в систему координат дрона.

Illustration

Зламаєш власну систему навмисно

Спровокуєш зникнення цілі, зависання камери, обрив зв'язку — і навчишся будувати реакції, за яких дрон поводиться передбачувано в збоях.

Програма курсу

5 блоків· 16 модулів · практика в симуляції (SITL + Gazebo) · перевірка коду й логів ментором

Блок 1. Керування автопілотом (ArduPilot, SITL, MAVLink)
Оглядово для досвідчених або повноцінне переднавчання для новачків - детальніше дізнавайтесь в менеджера

  • ● Цифрова грамотність: що це і чому важливо її опанувати на старті навчання.
    ● Перші кроки в цифровому світі: Google-сервіси та хмарні Digital-інструменти

    Результат модуля: Зрозумієте, що таке цифрова грамотність і опануєте Digital-інструменти, які потрібні для вашого подальшого навчання.

  • ● з чого складається система керування дроном: сенсори, гіроскоп-акселерометр (IMU), GPS, компас, барометр;● EKF — фільтр, що зводить суперечливі дані сенсорів в одну оцінку стану дрона (де він, куди й з якою швидкістю летить);● різниця між тим, що дрон хоче зробити (бажаний стан), і тим, що з ним відбувається насправді (оцінений стан);● польотні режими: Guided (керування зовнішніми командами), Auto (місія за точками), Land (посадка), RTL (повернення додому);● де в цю систему підключається комп'ютерний зір.
    Практика (перевіряється): візьмеш свої або навчальні польотні логи (записи, що дрон робив під час польоту) і для одного відрізка знайдеш, що автопілот хотів зробити, що він думав про свій стан і що сталося насправді.
    Результат тижня: намалюєш архітектуру ArduPilot без підказок і поясниш весь шлях від виміру сенсора до зміни обертів моторів.

  • ● як симулятор SITL замінює справжній дрон і навіщо це потрібно на старті;як EKF обирає, яким сенсорам довіряти, коли їхні дані розходяться;● інструменти навколо симулятора: MAVProxy (текстовий пульт керування), параметри, мережеві з'єднання;● повний цикл: запуск → політ → перегляд логу → перезапуск;● як безпечно змінити параметр і перевірити, що зміна застосувалася.
    Практика (перевіряється): встановиш середовище розробки й запустиш віртуальний дрон, проведеш його через Arm (готовність моторів) → зліт → зависання → політ у точку → повернення → посадку, після чого розбереш лог польоту.
    Результат тижня: запускатимеш віртуальний дрон за кілька хвилин і читатимеш його польотні логи, не шукаючи інструкцію щоразу.

  • ● MAVLink — «мова», якою дрон і програма спілкуються: сигнал «я живий» (heartbeat), команди, повідомлення, підтвердження отримання;● чим команда відрізняється від повідомлення й від телеметрії;● як програма підключається до дрона й читає потік даних;● часові мітки — коли саме прийшов кожен вимір і чи не застарів він;● чому різні дані приходять із різною частотою.
    Практика (перевіряється): напишеш програму читання телеметрії, яка в реальному часі показує режим польоту, стан моторів, координати, висоту, нахили, швидкість і заряд батареї, і додаси до кожного значення позначку часу отримання.
    Результат тижня: читатимеш живий стан дрона з Python і знаходитимеш потрібне повідомлення в документації.

  • ● як програмою віддати команди готовності моторів, зльоту й польоту в точку;● як перевірити, що дрон справді виконав команду, а не просто отримав її;● машина станів — покрокова логіка, де наступний крок настає лише за виконаної умови попереднього;● чому не можна керувати паузами («почекай 10 секунд») замість перевірки реального стану;● що робити, коли команда не підтверджена або дрон не в тому режимі.
    Практика (перевіряється): напишеш програму автономної місії, яка підключається до дрона, дочікується сигналу «я живий», переходить у режим зовнішнього керування, піднімає дрон, веде його в задану точку, тримає на місці й повертає додому — з переходами за реальним станом, а не за таймером. Окремо навмисно віддаси хибну команду й перевіриш, як програма її обробить.
    Результат тижня: керуватимеш автопілотом на Python через MAVLink і виконуватимеш автономну місію в симуляції без ручного пульта.

Блок 2. Computer Vision та переведення зображення в координати (OpenCV, AprilTag)

  • ● з чого складається цифрове зображення: кадр, пікселі, кольорові канали;● базова обробка: переведення в чорно-біле, розмиття, виділення контурів;● рамка навколо об'єкта й пошук його центру;● частота кадрів (скільки зображень за секунду встигає обробити програма);● різниця між координатами на картинці й координатами в реальному світі.
    Практика (перевіряється): побудуєш ланцюг «камера → кадр → пошук об'єкта → рамка → центр» і виведеш, наскільки об'єкт зміщений від центру кадру (вправо/вліво, вгору/вниз у пікселях).
    Результат тижня: програма визначатиме, де в кадрі знаходиться об'єкт відносно центру.

  • ● модель камери: фокусна відстань, спотворення об'єктива, матриця камери;● калібрування — вимірювання «характеру» конкретної камери, щоб виправити спотворення;● AprilTag / ArUco — спеціальні мітки-квадрати відомого розміру, за якими можна точно визначити відстань і положення;● оцінка положення мітки: як за її кутами програма рахує, де вона в просторі;● перехід від пікселів на картинці до метрів у реальності.
    Практика (перевіряється): відкалібруєш камеру за друкованою шахівницею, збережеш результат калібрування у файл і отримаєш координати мітки (вправо, вгору, відстань до неї) у метрах відносно камери.
    Результат тижня: переведеш об'єкт із пікселів у справжню відстань у метрах і побачиш, що координати змінюються правильно, коли рухаєш мітку.

  • ● системи координат: зображення, камера, корпус дрона, зовнішня (де північ, схід, низ);● чому в камери й у дрона осі спрямовані по-різному й це створює плутанину, перенесення й поворот координат між системами;● матриця повороту й кути нахилу (крен, тангаж, курс) простими словами;● послідовне складання кількох перетворень в одне.
    Практика (перевіряється): напишеш модуль переведення координат із системи камери в систему корпусу дрона й далі в зовнішню систему, і перевіриш його на контрольних випадках (ціль прямо перед дроном, праворуч, знизу, камера нахилена, дрон повернутий на 90°).
    Результат тижня: переведеш ціль із системи координат камери в систему дрона й передбачиш знак координати ще до запуску коду.

  • ● як власний нахил і поворот дрона впливають на те, де насправді знаходиться побачена ціль;● переведення цілі в зовнішню систему координат з урахуванням положення дрона;● затримка (latency) — скільки часу проходить від зйомки кадру до готової команди;● застарілий вимір — коли дані вже не відповідають реальності;● чому правильно розпізнана ціль може все одно привести до неправильного руху дрона.
    Практика (перевіряється): візьмеш нахили дрона із симулятора й порахуєш положення цілі в зовнішній системі координат; заміряєш затримку на кожному етапі (зйомка → розпізнавання → розрахунок → команда) і відкидатимеш виміри, які застаріли понад допустимий поріг.
    Результат тижня: збереш повний ланцюг «камера → положення цілі з поміткою часу» й пояснюватимеш, чому затримка небезпечніша за неточність.

Блок 3. Розпізнавання об'єктів нейромережею (YOLO, Jetson)

  • ● нейромережа-детектор простими словами: як вона вчиться впізнавати об'єкти на прикладах;● архітектури YOLO — швидкі детектори, придатні для роботи в реальному часі;● датасет — набір зображень із розміткою (де саме на кожному фото потрібний об'єкт);● донавчання готової моделі під власну задачу замість навчання з нуля;● як оцінити, чи добре модель розпізнає.
    Практика (перевіряється): розмітиш власний набір зображень і донавчиш готовий детектор упізнавати потрібний об'єкт, після чого перевіриш його точність на нових кадрах.
    Результат тижня: навчиш нейромережу впізнавати довільний об'єкт, а не лише спеціальні мітки.

  • ● запуск моделі на бортовому комп'ютері (NVIDIA Jetson) — маленькому комп'ютері на самому дроні;● прискорення й стиснення моделі, щоб вона встигала працювати в реальному часі;● супровід об'єкта в кадрі (трекінг) — утримання тієї самої цілі від кадру до кадру;● повторне впізнавання цілі після того, як вона на мить зникла з поля зору;● вбудовування нейромережевого розпізнавання в наявний ланцюг зору замість міток або поряд з ними.
    Практика (перевіряється): підключиш вихід детектора (рамка об'єкта → центр → положення) у ланцюг переведення координат із Блоку 2 і порівняєш затримку нейромережевого розпізнавання з розпізнаванням за мітками.
    Результат тижня: розпізнаватимеш довільні об'єкти нейромережею й передаватимеш ціль у логіку автономності.

Блок 4. Логіка наведення, точна посадка та наскрізний проєкт

  • ● як із положення цілі в кадрі отримати команду «куди рухатись»: похибка по горизонталі, вертикалі та відстані;● утримання цілі в центрі кадру під час руху апарата (візуальне стеження);● підхід до цілі за вектором: скорочення відстані з корекцією напрямку;● точна посадка (precision landing) як окремий випадок наведення — зведення до цілі вниз, до нуля висоти;● повідомлення LANDING_TARGET: у якій системі координат і як часто передавати● автопілоту положення цілі;● перевірка, що ціль бачима й дані коректні, перш ніж їм довіряти.
    Практика (перевіряється): спершу напишеш генератор штучної цілі (без камери), який передає автопілоту положення цілі, перевіриш правильність системи координат, знаків і частоти; потім заміниш штучну ціль на реальну мітку AprilTag і простежиш один вимір крізь усю систему: камера → програма → переведення координат → автопілот.
    Результат тижня: зводитимеш дрон на побачену камерою ціль і передаватимеш автопілоту її положення в реальному часі.

  • ● машина станів наведення: старт → готовність → зліт → пошук → захоплення цілі → супровід → зниження → посадка;● аварійні режими й переривання місії, коли щось іде не так;● підтвердження цілі за кілька кадрів поспіль замість реакції на одне випадкове спрацювання;● як не дати апарату почати зведення від однієї помилкової детекції;● обробка появи, зникнення й повторної появи цілі.
    Практика (перевіряється): напишеш модуль поведінки, який на вхід отримує стан дрона, стан цілі й час, а на виході видає поточний етап місії й команду; протестуєш його на сценаріях, коли ціль з'явилася, зникла, знову з'явилася, стоїть далеко від центру або розпізнається нестабільно.
    Результат тижня: побудуєш логіку, яка веде апарат від пошуку цілі до зведення на неї й приймає рішення за станом системи.

  • ● відсів хибних вимірів — коли координата раптом «стрибає» в неможливе місце;● згладжування даних, щоб прибрати дрібні коливання;● рівень довіри до цілі й перевірка, чи не застаріли її дані;● сторожовий таймер (watchdog) — контроль, що всі частини системи ще працюють;● перелік типових відмов і заздалегідь визначена реакція на кожну.

    Практика (перевіряється): навмисно спровокуєш збої (ціль зникла, камера зависла, зв'язок обірвався, координата стрибнула на 20 метрів) і пропишеш у файлі-таблиці, як система має реагувати на кожен випадок; проведеш щонайменше 10 таких тестів.

    Результат тижня: зробиш так, що апарат поводиться передбачувано під час зведення на ціль навіть у збоях, а не тільки в ідеальних умовах.

  • Практика (перевіряється): збереш наскрізну систему, яка виконує сценарій готовність → зліт → політ у зону пошуку → розпізнавання цілі → наведення й вирівнювання над нею → точна посадка, і проженеш її через щонайменше 10 сценаріїв (ціль по центру, збоку, тимчасово втрачена, з шумом у координатах, із затримкою, із розривом зв'язку, звичайне зведення).
    Оформиш інженерний пакет: діаграма архітектури, опис проєкту (README), логи типових запусків (успішний / втрата цілі / затримка / хибний вимір), метрики (частота кадрів, затримка, точність зведення, точність посадки, час відновлення після втрати цілі), таблиця відмов, короткий демозапис.

    Результат: збереш робочий прототип системи наведення на візуальну ціль — від камери до точної посадки в одній системі, зведеній твоїми руками.

Розподілена архітектура та навігація без GPS (оглядово)

  • Оглядово розберешся, як цей самий ланцюг наведення масштабується далі: ROS 2 (розподіл системи на незалежні вузли), Gazebo (повний симулятор фізики й камери), навігація без GPS (VIO — визначення власного руху за камерою й гіроскопом). Це матеріал для розуміння напрямку розвитку, а не практичне навчання.

Що відбувається між модулями:

illustration
illustration
illustration
illustration
illustration
illustration
illustration
illustration

Перевірка і фідбек від кураторів

Практика в симуляторі

Домашні завдання на власних даних

Робота в малих групах

Q&A-сесії між модулями

Розбір реальних кейсів учасників

Закритий WhatsApp-чат

Записи всіх модулів на платформі

Навичку керування кодом автопілота

Зібрану систему наведення на візуальну ціль

/ (01)

/ (05)

Illustration
Illustration

Проведеш ціль від виявлення камерою до автопілота

Розуміння, куди рухатися далі

/ (02)

/ (06)

Illustration
Illustration

Логіку наведення з обробкою відмов

/ (03)

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

Ти проводиш ціль від камери через детекцію, оцінку положення й переведення координат до автопілота — з урахуванням затримок і хибних вимірів.

Ти оглядово розумієш, як масштабувати систему на ROS 2, Gazebo й навігацію без GPS, і що вивчати для наступного рівня.

Ти пишеш бортове програмне забезпечення на Python, що керує ArduPilot через MAVLink і перевіряє реальний стан апарата.

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

Illustration
Illustration

Нейромережеве розпізнавання

/ (04)

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

У результаті ти отримаєш:

Залиш заявку на курс «Drone Autonomy» — ми зв'яжемося з тобою, розкажемо про формат, старт і умови.

Дякуємо за реєстрацію!

Наш менеджер зв'яжеться з Вами найближчим часом!

Can't send form

Please try again later.


FAQ

  • Так, якщо в тебе є база Python (цикли, функції, класи). Досвід польотів — перевага, але не вимога. Курс веде від архітектури автопілота до повної автономної місії, і кожен тиждень має практичний результат, без якого не переходиш далі.

  • Практика — основа. Кожен модуль закривається завданням, яке перевіряє ментор: код, логи, критерії переходу. Наприкінці ти збираєш робочий прототип, а не конспект.

  • Ні. Увесь autonomy-стек відпрацьовується в симуляції (SITL і Gazebo). Реальне залізо опціональне на ранніх модулях зору — вистачить звичайної веб-камери й друкованого маркера. Потрібна Linux-система (Ubuntu) або віртуальна машина.

  • Це відкритий галузевий стандарт автономності БПЛА з реальним застосуванням. Курс дає системне мислення autonomy-інженера — розкладати задачу від сенсора до контролера — тому після нього ти орієнтуєшся й у суміжних інструментах, а не заучуєш один набір команд.