Как пишется ПО для дронов или БПЛА и что почитать чтобы это узнать?



@KiberCuber

заинтересовался курсом от скилбоксов по написанию софта для дронов, но нет доверия к этим ребятам (в плане соотношения цена/качество курсов). Из-за этого хочу самостоятельно, хотя бы на уровне базовых концепций, разобраться в данной сфере, поэтому вопрос — что почитать, посмотреть, погуглить; на каком языке вообще пишется ПО такого рода. Сам уже вышел в интернет с данным вопросом, там узнал, что писать можно от ассемблера до Go, но хотелось бы узнать у кого-то кто работает в этом направлении ответы поконкретнее. Заранее извиняюсь, если суть вопроса плохо изложил


Решения вопроса 1



@vabka

0. Направление не новое и хорошо изученное.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *