@KiberCuber
Решения вопроса 1
@vabka
1. Зависит от того, какое именно ПО.
Что-то пишется на Си, что-то на языках высокого уровня, а что-то реализуется на уровне железа (плис/fpga/asic)
Для моделирования каких-то процессов может использоваться уже упомянутый матлаб, например.
2. Изучать нужно теорию управления и физику, тк по сути всё управление моторами базируется на ней — а это по сути основная и единственная задача, как удержать дрон в воздухе, не сталкиваться с препятствиями при движении, а в случае отсутствия движения — оставаться на месте.
По разработке — собственно Си для микроконтроллеров и verilog для железа. По хорошему ещё электронщиком нужно быть.
Не сильно от обычной embedded разработки отличается, выходит.
А на высоком уровне — там уже на конкретную задачу нужно смотреть. Где-то может даже ML и компьютерное зрение понадобится.
Получается тоже не так уж много отличий от обычной разработки.
Ответы на вопрос 3
@yanchick
@AlexSku
@firedragon
По теме:
Полетный контроллер по сути тупой автомат имеющий на входе
* GPS
* датчик положения
* возможно датчик скорости
Пишется он на С причем это хардкорный С без этих ваших memoryallocation
Как правило используется либо самописная система либо RTOS с адаптацией под задачи
Итак что имеем верхнее ограничение сервомашинки 20 Мс — 500 раз в секунду ( на самом деле от 20 до 200)
GPS — 10 -20 раз в секунду
В этих пределах и молотит полетный контроллер, он намеренно сделан сильно тупым что бы отрабатывать очень быстро. Все остальные системы это приятные дополнения.
Поиграться и не только можно скачав https://pixhawk.org/
Отдельный вопрос это главные контроллеры. Тут языки высокого уровня, часто с использованием CUDA