Программный комплекс включает прошивку для микроконтроллера STM32 и два десктоп-приложения QCopterController и QCopterSim.
Прошивка для STM32 написана на языке С++ и решает следующие задачи:
- работа с интерфейсами GPIO, USART/UART, I2C, SPI, а также со встроенными таймерами и PWM;
- настройка и общение с сенсорами: акселерометр, гироскоп, магнитометр, GPS, ультразвуковой сенсор расстояния;
- калибровка и управление ESC (контроллерами двигателей);
- сохранение и загрузка данных с SD карты;
- фильтрация данных сенсоров: температурная и магнитная компенсации, поправка на магнитное склонение;
- вычисление ориентации и положения летательного аппарата;
- связь с QCopterController через WiFi посредством модуля ESP8266: настройка и передача данных телеметрии, передача и прием данных настроек и калибровок, прием данных управления, прием
плана полета; - контролирование ориентации и положения летательного аппарата в пространстве в нескольких режимах: ручное управление (контроль углов наклона, тангажа и рыскания вместе со средней
мощностью двигателей), удержание высоты, удержание позиции, выполнение плана полета.
QCopterController написана с использованием Qt5/С++ и решает следующие задачи:
- работа с картами Google и OpenStreetMap: загрузка и отображение, кэширование (на жестком диске и оперативной памяти) с ограничениями по максимальной используемой памяти, построение тайлов (фрагментов) карты, используя тайлы с нижних и верхних слоев приближения);
- связь и обмен данными с БПЛА через TCP/IP;
- настройка программы, загрузка и сохранение настроек на жесткий диск;
- настройка БПЛА: настройка управляющих контуров БПЛА, калибровка сенсоров, магнитная и температурная компенсации сенсоров, загрузка данных сетки магнитного склонения для выбранной местности;
- настройка и отображение телеметрии, ее сохранение и загрузка с жесткого диска;
- создание, редактирование, сохранение, загрузка и передача БПЛА плана полета;
- управление БПЛА, отображение его состояния и журнала событий.
QCopterSim написана с использованием Qt5/С++ и является посредником между QCopterController и программой CoppeliaSim (ранее V-REP) для симуляции полета БПЛА в виртуальной среде.