Бортове ПЗ для БПЛА: Python, MAVLink, Companion Computer
Старт: жовтень
Формат: online
За 8 тижнів ти навчишся з'єднувати власний код із автопілотом дрона, запускати його на бортовому комп'ютері й знаходити причину, коли система не працює.
Це практична інженерна програма для тих, хто хоче писати програмне забезпечення для дронів, а не просто керувати ними.
На який рівень виходиш: ти проєктуєш систему бортового ПЗ, пишеш власну програму, що спілкується з дроном через MAVLink, і запускаєш її на бортовому комп'ютері як службу, що працює сама. Ти збираєш надійну програму, яка переживає обрив зв'язку й збої, і знаходиш причину, коли з'єднання чи команда не працюють.
(01)
Ти пишеш код, але не знаєш специфіки дронів — як з'єднати свою програму з автопілотом, бортовим комп'ютером і залізом.
(02)
Ти налаштовуєш дрони й працюєш із залізом, але будь-яку задачу з кодом віддаєш програмісту й залежиш від нього.
(03)
Ти маєш технічний досвід і базове програмування в іншій галузі, але хочеш зайти в безпілотні системи та оборонні технології.
Розберешся, як влаштована програмна частина дрона, і навчишся визначати, де має працювати кожен компонент — на автопілоті чи на бортовому комп'ютері.
Створиш код, що знаходить дрон, тримає з'єднання, приймає телеметрію, відправляє команди й переживає обрив зв'язку.
Перетвориш свою програму на службу, що сама запускається після ввімкнення, веде журнал і перезапускається після збою.
Отримаєш зламаний стенд і крок за кроком знайдеш, що саме налаштовано неправильно.
8 тижнів · 9 модулів
● Цифрова грамотність: що це і чому важливо її опанувати на старті навчання.
● Перші кроки в цифровому світі: Google-сервіси та хмарні Digital-інструменти
Результат модуля: Зрозумієте, що таке цифрова грамотність і опануєте Digital-інструменти, які потрібні для вашого подальшого навчання.
● Як влаштована програма; змінні та типи даних; списки й словники для зберігання наборів даних● Умови, цикли, функції; основи об'єктного програмування простими словами● Робота з файлами; обробка помилок у коді; підключення готових бібліотек● Робота в командному рядку та базове збереження версій коду (Git — інструмент, що зберігає історію змін)● Окремий блок: як писати код за допомогою штучного інтелекту й розуміти те, що він видає
Практика: написати власну програму, що читає дані з файлу, обробляє їх і записує результат назад, з коректною обробкою помилок.
Результат модуля: самостійно пишеш й читаєш код на Python, працюєш в командному рядку та розумієш код, згенерований ШІ.
● Автопілот як окрема частина; бортовий комп'ютер і навіщо він потрібен● Що має працювати на автопілоті, а що на бортовому комп'ютері● Ланцюг «земля → бортовий комп'ютер → автопілот → корисне навантаження»● Способи з'єднання, затримки, пропускна здатність, слабкі місця системи● Вибір бортового комп'ютера під задачу: коли достатньо Raspberry Pi, а коли потрібен Jetson (критерії — обчислювальна потужність, навантаження зі штучним інтелектом, енергоспоживання, ціна)
Практика: розібрати задану систему дрона, скласти схему, де має працювати кожен компонент, і обґрунтувати вибір бортового комп'ютера під задані вимоги.
Результат модуля: проєктуєш систему бортового ПЗ і обґрунтовуєш, яку плату брати під конкретну задачу.
● MAVLink як мова обміну повідомленнями; повідомлення, команда, підтвердження прийому● Як частини системи розрізняють одна одну; сигнал «я живий» і виявлення пристроїв● Частота повідомлень, потоки даних, способи передачі● Маршрутизація повідомлень; кілька пристроїв в одній системі
Практика: написати програму на Python, що знаходить дрон, тримає з'єднання, приймає телеметрію, відправляє команду, обробляє підтвердження і переживає обрив зв'язку.
Результат модуля: пишеш власну програму спілкування з дроном, а не лише переглядаєш телеметрію.
● Два підходи до написання коду — простіший і складніший; коли який потрібен● Бібліотеки pymavlink і MAVSDK (готові набори інструментів)● Підписка на події, таймаути, повторні спроби, застарілі дані● Чому «команда прийнята» ще не означає «команда виконана»
Практика: реалізувати ту саму задачу двома способами — через pymavlink і через MAVSDK — та письмово обґрунтувати вибір підходу.
Результат модуля: обираєш потрібний підхід під задачу, а не просто копіюєш чужі приклади.
● Операційна система Linux на бортовому комп'ютері; віддалене підключення; права доступу● Робота з провідними портами; запуск програми як служби● Ведення журналів; автозапуск після ввімкнення; сторож, що перезапускає програму після збою● Контроль ресурсів; контейнери (Docker — спосіб запакувати програму, щоб вона однаково працювала будь-де)
Практика: перетворити свою програму на службу, що сама запускається після ввімкнення, веде журнал і перезапускається після збою.
Результат модуля: твій код працює не тільки на власному комп'ютері, а й після перезавантаження на реальному бортовому комп'ютері.
● Провідні та мережеві з'єднання; типові помилки передачі даних; швидкість передачі● Втрата пакетів; накопичення й переповнення даних; перепідключення● Розподіл повідомлень між кількома отримувачами● Керування навантаженням на канал зв'язку
Практика: на стенді, де програма, автопілот і наземна станція обмінюються даними, знайти проблему, яку викладач навмисно вніс у налаштування (неправильний порт, швидкість, маршрутизація).
Результат модуля: знаходиш причину проблеми зі з'єднанням.
● Побудова логіки роботи через стани; обробка кількох подій одночасно; черги задач● Докладне ведення журналу; перевірки справності● Поведінка при втраті зв'язку та при застарілих даних● Робота в умовах обмежених ресурсів; коректне відновлення; автоматичні тести
Практика: отримати «поганий» приклад програми (зависає, падає після обриву зв'язку) і переробити його на надійну службу з обробкою збоїв.
Результат модуля: перетворюєш тестовий приклад на програму, що переживає реальні збої.
● Камера й корисне навантаження як окремі частини системи; обробка відео оглядово● Розпізнавання об'єктів на бортовому комп'ютері (нейтральні цивільні сценарії)● Специфіка Jetson як платформи для штучного інтелекту: запуск моделей на графічному процесорі, прискорення через TensorRT/OpenCV, теплові та енергетичні обмеження на борту● Як частина зі штучним інтелектом спілкується з основною програмою● Способи зв'язку між програмами; основи запуску на маломіцному залізі
Практика: підключити тестовий модуль розпізнавання, що повертає подію «щось знайдено», запустити його з урахуванням обмежень бортового заліза й зробити так, щоб основна програма обробляла подію й реагувала.
Результат модуля: інтегруєш модуль зі штучним інтелектом або камерою в систему дрона й розумієш обмеження заліза, на якому він працює.
● Наскрізний фінальний проєкт, що збирає всі навички курсу в один артефакт для портфоліо.● Пошук проблем і спостереження за системою: журнали програми, контроль навантаження на процесор, пам'ять і мережу● Інструменти перегляду обміну повідомленнями; аналіз частоти повідомлень; відтворення збоїв● Складання технічного звіту за результатами перевірки
Практика: розробити з нуля програму для бортового комп'ютера за технічним завданням. Вона має: запускатися після ввімкнення, знаходити систему дрона й тримати з'єднання, збирати обрану телеметрію, взаємодіяти з тестовим корисним навантаженням, обробляти команди, вести докладний журнал, переживати обрив зв'язку й перепідключатися, проходити перевірку тестами. На виході — репозиторій із кодом, схема системи, налаштування запуску, тести, демо й технічний опис. Проєкт захищається перед викладачем.
Результат модуля: у мене є готовий інженерний проєкт рівня реальної робочої задачі, який я показую роботодавцю.
/ (01)
/ (05)
/ (02)
/ (06)
/ (03)
Ти пишеш код за допомогою штучного інтелекту й, головне, розумієш та виправляєш те, що він видає, а не сліпо копіюєш.
Твій код працює не лише в середовищі розробки, а й після перезавантаження на бортовому комп'ютері — як служба, що сама відновлюється.
Ти бачиш траєкторію росту: від інтеграції бортового ПЗ — до глибшої автономності, комп'ютерного зору чи архітектури безпілотних систем, і розумієш, який навик підтягнути далі.
Ти вмієш створити програму, що спілкується з автопілотом і працює на бортовому комп'ютері.
Готова бортова програма з кодом, схемою, налаштуваннями запуску й тестами — те, що ти показуєш роботодавцю.
/ (04)
Ти діагностуєш збої з'єднання, команд і взаємодії частин системи, а не заходиш у глухий кут при першій же помилці.
Так, для цього є тариф зі вступним модулем — ти вивчаєш базу Python з нуля за два тижні, а потім заходиш в основну програму. Основна частина — це реальна інженерна робота. Якщо ти готовий вкладатися, стартова база в тебе буде.
Більшість часу — практика на комп'ютері. Кожен модуль дає конкретне завдання, яке перевіряє викладач. Головний елемент — «клініка відлагодження», де ти отримуєш зламаний стенд і сам шукаєш причину. Теорія тут обслуговує практику, а не навпаки.
Фізичний дрон не потрібен. Уся практика — на готовому навчальному середовищі із симулятором. Потрібен звичайний комп'ютер: 8+ ГБ оперативної пам'яті, сучасний процесор, 64-бітна операційна система.
Ти вивчаєш два підходи до написання коду — простіший (pymavlink) і складніший (MAVSDK) — і навчаєшся обирати потрібний під конкретну задачу, а не сліпо триматися одного. Це те, що відрізняє інженера від людини, яка копіює чужі приклади.
Ти вчиш інженерію бортового програмного забезпечення та інтеграцію систем — навик, потрібен у цивільній робототехніці, промислових дронах, дослідженнях і оборонних технологіях. Програма не містить інструкцій із бойового чи іншого шкідливого застосування. Ти працюєш із нейтральними технічними сценаріями: з'єднання, телеметрія, розгортання, діагностика.