Отличный проект для обучения. Делал подобное на диплом, сейчас работаю в компании которая производит промышленные дроны. Расскажу что нужно.
Блок 1: Теория полета (2-4 недели)
- Аэродинамика винтов: тяга, реактивный момент, ground effect
- Динамика квадрокоптера: 6 степеней свободы, углы Эйлера (или кватернионы, они лучше)
- Принцип управления: как комбинация оборотов 4 моторов дает крен, тангаж, рыскание
Книга: "Quadrotor Dynamics and Control" - есть PDF в открытом доступе. Плюс лекции MIT по Underactuated Robotics на YouTube.
Блок 2: Теория автоматического управления (4-8 недель)
- ПИД-регуляторы: понять интуитивно и математически
- Каскадное управление: внутренний контур (угловые скорости) + внешний (углы) + позиционный
- Калибровка и настройка коэффициентов
- Фильтры: комплементарный, Калман (хотя бы базово)
Это самый сложный блок. Без понимания ТАУ полетный контроллер не напишешь. Курс на Coursera от University of Michigan "Robotics: Aerial Robotics" - маст хэв.
Блок 3: Датчики и сенсорный фьюжн (2-4 недели)
- IMU: акселерометр + гироскоп, понимание погрешностей, дрейфа
- Барометр для высоты
- Магнитометр для курса (и почему он глючит везде)
- GPS для позиционирования
- Оптический поток и лидары для помещений
- Фьюжн данных: комплементарный фильтр для начала, потом EKF
Блок 4: Силовая электроника (2-3 недели)
- Бесколлекторные моторы (BLDC): принцип работы, характеристики
- ESC: протоколы управления (PWM, OneShot, DShot)
- Батареи LiPo: разряд, балансировка, безопасность
- Расчет тяговооруженности
Блок 5: Микроконтроллеры и embedded (4-6 недель)
- STM32 (F4 или F7) - стандарт для полетников. Arduino слишком медленный.
- RTOS или голый metal с прерываниями
- I2C, SPI, UART для датчиков
- Управление таймерами для PWM
С твоим бэкграундом в C++ это будет ок, но нужно погрузиться в embedded специфику.
Блок 6: Механика рамы (1-2 недели)
- Центр масс, развесовка
- Жесткость vs вес
- Защита от вибраций (мягкие крепления IMU)
Можно купить готовую раму для начала, не парься.
Порядок:
- Параллельно: теория полета + теория управления
- Симулятор! Обязательно напиши модель в Python/Matlab. Отладь алгоритмы виртуально.
- Датчики и фьюжн
- Железо: STM32, моторы, ESC, сборка
- Интеграция, калибровка, первые полеты на привязи
- Свободный полет
Тайминг:
Если фулл-тайм: 4-6 месяцев до летающего прототипа.
Если по вечерам: 8-12 месяцев.
Это при условии что не застрянешь на теории управления, там многие буксуют.
Альтернативный путь:
Начни с существующей прошивки (Betaflight/INAV), изучи ее код, модифицируй. Это быстрее даст летающий аппарат и понимание архитектуры. Потом напишешь свое.
Вау, это прямо учебный план! Спасибо. Начну с курса MIT и симулятора в питоне.