Пришла пора поговорить о квадрокоптерах и программировании. Одновременно затронем тему, а нужны ли тут знания математики. Нас будет также интересовать что надо знать, чтобы научиться программировать эти летающие аппараты. Кто-то воспринимает
квадрокоптеры как крутые игрушки не только для детей, но и для взрослых, а нам эти устройства интересны с позиций математики и программирования. Число моделей растет, а стоимость снижается и, очевидно, в будущем квадрокоптер не будет восприниматься этакой диковинкой, а в учебных программах для айтишников появится обязательный учебный предмет - "программирование квадрокоптеров". Число владельцев летальных аппаратов тоже растет - проводятся слеты и конференции. Все это порождает спрос на программное обеспечение для управления полетами и выполнения конкретных полетных задач. Риск потери такого аппарата велик (деревья, препятствия, птицы, вылет за пределы зоны управления и прочее), а значит, требуется программирование автоматической обработки таких нештатных ситуаций. Например, в случае переключения в режим автоматического возврата к владельцу в экстремальной ситуации. Ведь никому не хочется просто так потерять несколько сотен долларов.
Сразу разочаруем программистов - для того, чтобы программировать такие устройства одной математикой уже не обойтись. Как минимум, потребуются знания еще двух дисциплин - теоретической механики и динамики, а также теории автоматического управления. Конечно, если вы простой пользователь, то для того, чтобы запрограммировать автоматический полет по заданной программе, можно воспользоваться готовыми программами для записи таких программ. Но, мы же говорим сейчас о написании таких программ, а не про их использование. А для этого понадобятся фундаментальные знания.
Программистам "любителям" математики, сразу напомним про дифференциальные уравнения. Когда вы их решали в курсе высшей математики, то мучили своего преподавателя вопросом - зачем? А вот вам и ответ - описать поведение динамического объекта одним дифуравнением уже не получится. Как минимум летательный аппарат имеет шесть степеней свободы. Положение тела в пространстве описывают 6 координат: три - для определения положения центра масс и три - для определения угловой ориентации в пространстве (см.картинки ниже).
Вспомним еще, что скорость - это производная. А если еще учитывать трение и ветер, то получится вполне приличная система дифференциальных уравнений. Кстати, чтобы ее только составить надо знать законы механики и динамику не на тривиальном уровне. И это еще не все. Дифуравнения потом надо решать, но вы подаете на вход системы начальные условия - управляете квадрокоптером. Значит решать надо быстро и точно. А пока вы решаете - аппарат летит, что означает: вычисленное управление приходит с опозданием. И тут вам понадобятся знания ТАУ- теории автоматического управления и, в частности, хорошее понимание того, как устроены ПИД-регуляторы. А из классической математики, кроме дифур, надо еще знать и численные методы (апроксимация, экстраполяция, численное интегрирование и дифференцирование). Но и это еще не все. Надо программировать управление стабилизацией положения - например, после столкновения. Да, чуть не упустили - надо понимать принципы аэродинамики (еще та математическая дисциплина).
Ну а чем-то порадовать сможете? - спросите вы. Порадовать можем - научиться этому смогут не всем (это вам не сайты делать), а значит, если вы выучите математику, то конкурентов у вас будет меньше, чем на рынке сайтов и платить вам будут больше.