0. Направление не новое и хорошо изученное.
1. Зависит от того, какое именно ПО.
Что-то пишется на Си, что-то на языках высокого уровня, а что-то реализуется на уровне железа (плис/fpga/asic)
Для моделирования каких-то процессов может использоваться уже упомянутый матлаб, например.
2. Изучать нужно теорию управления и физику, тк по сути всё управление моторами базируется на ней - а это по сути основная и единственная задача, как удержать дрон в воздухе, не сталкиваться с препятствиями при движении, а в случае отсутствия движения - оставаться на месте.
По разработке - собственно Си для микроконтроллеров и verilog для железа. По хорошему ещё электронщиком нужно быть.
Не сильно от обычной embedded разработки отличается, выходит.
А на высоком уровне - там уже на конкретную задачу нужно смотреть. Где-то может даже ML и компьютерное зрение понадобится.
Получается тоже не так уж много отличий от обычной разработки.