Дрон для любителя: устройство и принципы программирования / Хабр

Дрон для любителя: устройство и принципы программирования / Хабр Самолеты
Содержание
  1. Мой опыт с самого начала
  2. Cl racing f7 v2 daul — лучший полетник для регуляторов 4-в-1
  3. Diatone mamba f722s
  4. Dys f4 pro
  5. Holybro kakute f7 aio — лучший полетник для отдельных регуляторов
  6. Kiss fc v2
  7. Matek f405 ctr
  8. Revolt f4
  9. Sdk и комплекты
  10. А теперь – о самом полетном контроллере
  11. Аккумулятор и питание передатчика (пульта)
  12. Выбор моторов для квадрокоптера
  13. Выбор приемника
  14. Выбор пульта управления (аппаратуры) для квадрокоптера
  15. Выбор регулятора (esc) для квадрокоптера
  16. Выясняем потребляемый ток
  17. Есть два уровня программирования
  18. Есть комплекты для обучения
  19. Железо дрона
  20. Загрузчик
  21. Иной подход
  22. Иной язык
  23. Как работает аппаратура управления авиамоделями?
  24. Какой лучше?
  25. Максимальный ток — амперы
  26. Плохие аккумуляторы
  27. Поддержка телеметрии
  28. Рабочая частота
  29. Регуляторы «4-в-1»
  30. Регуляторы с bec и без него (opto esc)
  31. Рекомендации по выбору передатчика
  32. Совместимость системы
  33. Чем занимается полетный контроллер
  34. Эргономика
  35. Языки и среды разработки

Мой опыт с самого начала

В самом начале я купил Turnigy 9X. Это было доступное решение за $60, дающее простор в плане самостоятельных апгрейдов! Вот мой обзор этой аппаратуры (англ). Но я быстро вырос, мне понадобился дополнительный функционал и поэтому купил Taranis X9D Plus.

В то же время вышла 9XR-Pro, которая была отличным обновлением 9X. Её функционал был как у более дорогих передатчиков, но стоила она значительно дешевле. Передатчик можно было перепрошить; а благодаря тому, что у него есть возможность установки внешнего радиомодуля, то получалось использовать с другими системами: Frsky, Orange (dsmx/dsm2). Благодаря поддержке сообщества появилось очень много модификаций.

Это был очень заманчивый вариант, но я рад, что купил X9D. Передатчик X9D позволяет делать очень многое, он стоит своих денег. X9D стал одним из самых популярных передатчиков в нашем хобби. Не говоря уже о доступности большого количества маленьких и легких приемников с телеметрией.

Есть и другие топовые аппаратуры управления: Futaba T10/T18, Spektrum DX9/DX18, JR-XG11/XG14 и т.д. Вот, например, сравнение DX6 и Taranis (англ).

Cl racing f7 v2 daul — лучший полетник для регуляторов 4-в-1

  • F7, 2x ICM20602
  • Антивибрационное крепление
  • Betaflight OSD
  • PDB
  • 5V/3A BEC
  • 32MB памяти для черного ящика (Blackbox)
  • Напряжение питания: 2S — 8S LiPo

CL Racing F7 — это преемник популярных моделей CL Racing F4 и F4S. У него похожий дизайн, удобное расположение элементов и нормальный размер контактных площадок.

Это один из наиболее доступных полетных контроллеров в нашем списке, и при этом у него отличный набор функций: SmartAudio, ESC Telemetry, управление камерой (достаточно простого подключения, без резистора и конденсатора). Есть, конечно, и память для blackbox.

Процессор серии F7, поэтому не нужно ничего мудрить с инверсией сигналов SBUS и SmartPort.

CL Racing F7 разработан специально для работы совместно с регуляторами «4-в-1». Разъем для регулей позволяет использовать их телеметрию, а также общий датчик тока.

CL Racing F7 — один из первых ПК с функцией VTX pitmode, эта функция позволяет вам включать/выключать видеопередатчик тумблером на аппе.

Одна из отличительных черт второй версии — два гироскопа, они работают все время, а для уменьшения шума/помех данные усредняются. А вместе с RPM фильтром, тюнинг сильно упрощяется.

Вот полный обзор первой весии. Обзор второй версии (англ).

Купить на: Banggood | RDQ | AliExpress

Diatone mamba f722s

Помимо всех обычных функций, которые можно ожидать от ПК на F7, у Mamba F722S есть встроенный Bluetooth модуль, который позволяет менять настройки Betaflight прямо с телефона.

Имеются и два стабилизатора, на 5 и 9 вольт для питания видеопередатчика и курсовой камеры, это уменьшает помехи на видео от регуляторов и моторов. Гироскопы — MPU6000, у них отличная репутация, меньше шумят, чем серия ICM.

Регуляторы 4-в-1 рассчитаны на макс. ток 50 А и поддерживают питание до 6S LiPo, так что полетник очень надежный и универсальный.

Купить: Banggood | GetFPV | AliExpress

Dys f4 pro

  • F4, MPU6000 SPI
  • Софтмаунт
  • Betaflight OSD
  • Встроенная PDB
  • 5 В / 3 А BEC
  • 8MB памяти для blackbox
  • Питание: 2S – 6S

По функционалу DYS F4 очень похож на Kakute F4. Отличное расположение элементов, контактные площадки для силовых проводов (питание, регули) выступают за пределы платы, что упрощает пайку.

Только один последовательный порт с аппаратной инверсией сигнала для SBUS. Если нужна телеметрия, то придется использовать неинвертированный сигнал. Для тех, кто не планирует использовать Smart Port — это не проблема, это просто еще один дополнительный порт для прочих устройств (инвертированный UART нельзя использовать для других устройств).

Купить на Banggood | AliExpress | Обзор

Holybro kakute f7 aio — лучший полетник для отдельных регуляторов

  • F7, ICM20689 SPI (32KHz Looptime)
  • Софтмаунт датчиков
  • Betaflight OSD
  • Встроенная PDB
  • 5 В / 2 А BEC
  • MicroSD слот для blackbox
  • Питание: 2S – 6S

У большинства ПК антивибрационное крепление используется для всей платы, но у Kakute F7 плата с гироскопами демпфируется отдельно. Т.е. не нужно беспокоиться о демпферах, они уже есть. Гироскопы ICM относительно более шумные, но я не стал бы беспокоиться об этом, из-за довольно эффективного софтмаунта.

Недостаток этой системы — нужно убедиться, что гироскопы ничего не касаются, чтобы не передавались вибрации. Т.е. вы не можете разместить сверху другие комплектующие типа приемника или видеопередатчика.

Если в ПК установлен процессор серии F4, то приходится возиться с инверсией сигнала для SmartPort телеметрии и для SBUS. Это не проблема если у вас проц F7, т.к. инверсия настраивается программно.

Ещё мне очень нравится расположение элементов на плате; шикарный функционал, но возможно он будет слегка сложноват для новичков, т.к. все контакты собраны в кучу. К счастью инструкция очень детальная и полезная.

Беспокойство вызывает только шлейф, который можно повредить при крашах. Его можно заменить, тем более что в комплекте есть запасной. Однако это требует некоторых навыков пайки.

Думаю, этот ПК подойдет опытным пилотам, которым нужна высокая скорость работы гироскопов и частота 32к. Есть и не AIO версия, которую можно использовать вместе с регуляторами 4-в-1. Подробнее в обзоре.

Купить на Banggood | AliExpress | Gearbest | GetFPV

Kiss fc v2

  • Процессор F7, гиры MPU6000
  • Идет с прошивкой KISS FC Firmware

После 2х лет ожидания, Flyduino наконец-то выпустила KISS V2 для замены первой версии ПК. У KISS огромная толпа фанатов, которым нравятся характеристики этих ПК. Когда вы платите $80 за KISS FC V2, то вы платите не только за железо, но и за закрытую прошивку, которая работает только на ПК KISS.

Лично я считаю, что KISS летает плавнее и мягче, чем Betaflight, которая летает более точно (больше похоже на движения робота). Не самое точно описание, но как уж смог.

Это один из первых контроллеров, сделанных в виде буквы «H» и с контактными площадками для подпаивания проводов. А еще они же первыми заменили сквозные отверстия для штыревых разъемов на плоские пятаки для пайки с обеих сторон платы.

Во второй версии улучшено расположение контактов, теперь регули подключаются по углам платы. Имеющийся разъем также упростит проводку при использовании определенных PDB. Установка и настройка значительно проще, чем Betaflight.

На KISS можно поставить Betaflight, но, по-моему, есть и другие, более удачные ПК для Betaflight. Причина выбора KISS — это их закрытая прошивка.

Купить GetFPV | RMRC  | Обзор.

Matek f405 ctr

  • F4, MPU6000
  • Betaflight OSD
  • Встроенная PDB
  • 5 UART
  • Слот для MicroSd флэшки
  • BEC: 5V/2A

CTR — это новая версия Matek F405 AIO.

AIO — довольно хороший ПК с отличным функционалом и удобным расположением элементов. Однако, было довольно много жалоб на рывки по курсу и сильные вибрации, из-за очень чувствительных к шуму гироскопов.

И вот, наконец, Matek решили заменить гироскопы, на более устойчивые к шуму MPU6000, ну и добавили ещё кое-какие улучшения. Прочитав наш обзор, вы узнаете, почему это один из лучших ПК для Betaflight и iNav.

Купить на Banggood | AliExpress | Обзор

Revolt f4

  • Процессор F4, гиры Invensense 20602
  • Разработан для Raceflight

ПК Revolt F4 разработан командой Raceflight и специально для Raceflight. Используется самая большая частота обновления данных с гироскопов — до 32 кГц.

Кто-то может не согласиться с мнением «быстрее — значит лучше», но многие пользователи были впечатлены полетом на Revolt F4 с прошивкой Raceflight. Их софт: RF1 (Raceflight One) также развивается в сторону упрощения настройки коптера пользователем.

Revolt F4 — это просто ПК безо всяких свистелок и перделок. Даже встроенного BEC нет, т.е. ему требуется внешнее питание (и дополнительный контакт BAT для контроля напряжения на аккумуляторе). RF объясняют это тем, что хотели минимизировать шумы. Но обычно в таких случаях пользователи жалуются на усложнение процесса сборки. Еще не хватает контакта VBAT, для измерения напряжения аккумулятора.

С тех пор появились несколько новых версий этого ПК с доп. функциями, например RevoltOSD, с поддержкой питания напрямую от LiPo аккумулятора, с OSD, а также Minivolt — по сути уменьшенную версию Revolt.

Кстати говоря, Lumenier Skitzo FC— это Revolt после ребрендинга, это та же самая плата, только другого цвета и с другой ценой.

Купить:

Sdk и комплекты


Понятно, DJI — не единственный пример. SDK есть у Parrot, 3DR, Skydio, Yuneec (правда 3DR, Yuneec и Parrot работают с open-source-платформами, о них мы поговорим далее). 

По сути сейчас мы наблюдаем процесс формирования целого рынка программного обеспечения для таких программируемых дронов. 

Некоторое ПО, в т.ч. на DJI (несмотря на то, что он не open-source) можно найти на GitHub.

Смотрите про коптеры:  Радиоуправляемые самолеты для начинающих

Кстати, образовательные решения тут тоже есть. Например, тот же DJI выпускает специальный комплект из нескольких дронов, рассчитанный на обучение целой группы студентов программированию на Scratch, Python и Swift. 

Помимо проприетарных, есть множество DIY-решений, основанных на популярных универсальных полетных контроллерах. Откровенно говоря, DIY-сообщество в свое время и стало родоначальником всего рынка управляемых дронов. Компании с рынка радиоуправляемых моделей взялись за разработку БПЛА лишь тогда, когда идея стала популярна в народе и можно было построить какие-то бизнес-прогнозы.

DIY-решения обычно опираются на какую-то из доступных систем управления (автопилотов), например Ardupilot или Pixhawk. А контроллер подбирается из списка поддерживаемых для выбранного автопилота. Впоследствии его можно даже доукомплектовать оборудованием (если прошивка позволяет это сделать). Под такие решения есть свои универсальные платформы разработки, например MAVSDK (его поддерживают 3DR, Yuneec и Parrot).

По аналогии с 3D-принтерами некоторые производители выпускают кит-комплекты для DIY дронов. К примеру, в упомянутом выше хакатоне ребята работали с дронами «Иволга» отечественного производства. Есть и другие примеры, например, Ardupilot, как производитель, предлагает на рынке собственные наборы, цена на которые варьируется в зависимости от комплектации.

Дрон для любителя: устройство и принципы программирования / Хабр
Пример комплекта с Aliexpress

На базе open source контроллеров встречаются и промышленные решения.

Начиная с самосборных решений под управлением готового автопилота, некоторые энтузиасты переходят к разработкам собственного автопилота. Так мир open source в этой части постоянно расширяется. Однако это задача не для новичка. Поскольку суть заключается не столько в самом программировании, сколько в решении инженерных задач.

А теперь – о самом полетном контроллере

После такого вступления стало понятно, что написать полетный контроллер на таких могучих инструментах – совершенно просто. И действительно, если разобраться, то ничего сложного.

Структурная схема управляющего ПО показана на рисунке

Как видно из рисунка, ПО состоит из двух частей:

Так как тратить много времени не хотелось, то драйвер для USB в STM32 был взят прямо нативный и при помощи Interop был слинкован с оберткой на Ada.

Плата оказалась оснащена минимальным количеством периферийных устройств: 

Полетный контроллер реализован по простой схеме и «крутит» 2 цикла:

  1. внешний

  2. внутренний

Внешний цикл это цикл опроса периферии (CMD task на рисунке) в ожидании команд с радиопередатчика. Если команды нет, он передает признаки «сохраняем высоту, держим горизонт». Если команда с пульта есть, передаем ее – целевой угол наклона, целевую мощность на пропеллеры. Частота внешнего цикла 20 Гц.

Внутренний цикл – цикл опроса гиро-акселерометра и распределения мощности на двигатели. Цикл оборудован 3 PID-регуляторами, и математикой Махони для расчета текущего положения по сигналам с гироскопов. В расчетах внутри используем кватернионы, для генерации управляющего сигнала – углы Эйлера. Частота размыкания внутреннего цикла – 200 Гц. Да, Ада без проблем успевает диспетчеризировать с такой скоростью.

Так как у нас нет ни баровысотомера, и другого способа измерить высоту, то для грубого удержания высоты используем интеграцию вертикальной скорости.

Внутренний цикл реализует опрос PID и стабилизацию аппарата:

Забавно, что большинство опен-сорсных реализаций Махони (для Arduino и не только) – на Cи и Wiring оказались содержащими разнообразные баги. Это мешало системе заработать. После того, как было выпито пол-ящика лимонада и съедена корзина круассанов, алгоритм воссоздали с нуля по описанию из [MHN], и система тут же заработала.

Данная схема, как и любая упрощенная модель, испытывает сложности при приближениях параметров к предельным. Здесь это 90 по крену и тангажу – при их превышении для безопасности реализовано отключение двигателей (disarm).

Кроме этого, управление по углу рыскания выполнено сквозным, а PID там используется только для контроля сильных отклонений между выданным и расчетным углами. Это связано с тем, что пилот по скорости, крену и тангажу ожидает реакцию коптера в виде наклона, пропорционального отклонению стиков, а по рысканию — в виде скорости вращения, пропорциональной отклонению.

Но для первого приближения вышло отлично, хотя и совсем не подходит для акробатического квадрокоптера.

Статья получилась неожиданно длинная, поэтому придется разбить ее на две части.  Мы в первой части постарались познакомить вас с инструментами предков, которые на удивление неплохи: по крайней мере, мы сделали выводы, что дальнейшие проекты для эмбеддед хочется делать на Ada, а не на Си.

Итог на текущий момент

Квадрокоптер с прошивкой на Ada/SPARK прошел тесты на подпружиненном стенде и полетах в закрытом помещении, собираются логи, схема стабилизации работает в соответствии с ожиданиями, но в рамках ограничений на углы маневров, как описано выше.

Мы в R&D продолжаем познавать верификацию ПО и с нетерпением ждем схода снега в Москве, чтобы в следующей статье поделиться результатами испытаний, подгонки и видео тестовых полётов ПО в уличных условиях, которое, кажется, статически проверено на то, что не содержит ошибок.

И конечно, на время испытательных полетов все runtime-проверки все равно останутся включены, хотя конечный итоговый результат – проверки не нужны, так как заведомо известно, что они выполняются.

Для себя мы сделали вывод, что для embedded будем стараться писать только на Ada.

Аккумулятор и питание передатчика (пульта)

Пульт управления может получать питание 4 разными способами и от этого тоже зависит удобство использования:

  1. Батарейки типа «АА». Это самый простой и дешевый вариант запитать пульт управления. Как правило, в пульт их нужно 4 штуки. Долговечность — смотря какие вы купите и как много времени будете использовать пульт. Меняются легко, а запасные много места в рюкзаке не занимают. Можно также использовать перезаряжаемые аккумуляторы (тоже пальчиковые).
  2. NiCd или NiMH аккумуляторы. Могут быть разных размеров, так как их обычно стягивают термоусадкой в единую батарею. Недостатком будет малая емкость и эффект памяти — со временем они будут терять емкость и их нужно будет заменять.
  3. LiPo аккумуляторы. В пультах LiPo используют маломощные варианты. У них большая емкость, нет эффекта памяти. Одного заряда будет хватать на долгое время. Плюс к этому, такой аккумулятор прослужит долго благодаря бережной эксплуатации.
  4. Li-ion аккумуляторы или элементы 18650. Некоторые современные пульты используют такие элементы, они компактные, а запас емкости больше, чем у всех остальных.

Выбор моторов для квадрокоптера

Поначалу думал, что выбор моторов будет сопряжен с массой расчетов. Но все оказалось намного проще. В документации на раму S500 есть ссылка на рекомендованные моторы:

  • 2212 KV920
  • 2216 KV880
  • 2216 KV900
  • 3108 KV900

Я выбрал самый бюджетный вариант – мотор 2212 KV920.

В маркировке двигателя есть два параметра. Первый определяет его геометрические размеры. Второй – мощность. 2212 – габаритные  размеры статора: 22 мм – диаметр статора, 12 мм – его высота. Не путайте с размерами самого двигателя, они немного больше.

KV920 – характеризует мощность двигателя и его оборотистость. Чем ниже цифра, тем больше грузоподъемность и меньше скорость дрона. Если провести сравнение с машинами, то грузовики будут иметь KV от 200 до 900, а легковушки от 900 и выше.

Так же через KV можно сосчитать число оборотов на двигателе в зависимости от поданного на него напряжения.

Что касается моего выбора, то здесь решающую роль сыграл финансовый фактор. Обозначение «KV980» говорит хоть и не о грузовом происхождении двигателя, но все же о способности поднимать тяжести. Квадрокоптер с такими моторами вполне должен справиться с подъемом камеры типа GoPro и емкого аккумулятора.

Цена: 25$

Выбор приемника

Следующим этапом будет выбор приемника. Помните, что как только вы выбрали пульт без многопротокольного модуля, вы привязываетесь к этому бренду и приемники должны быть этой же фирмы. Ниже написано о некоторых параметрах, на которые стоит обращать внимание при покупке приемников:

  • Размер. Меньше не значит хуже. При выборе радиоприемников следует делать выбор в пользу маленьких и компактных. Это меньший вес и занимаемое пространство, а работать будет также, как и большой. Большие приемники просто не поместятся в большинство сборок мини квадрокоптеров.
  • Поддерживает ли приемник SERIAL протоколы, такие как “SBUS”, “SRXL” и “IBUS”. С такими протоколами гораздо легче и проще выполнить соединение с полетным контроллером.
  • Антенны. Если антенны 2, то это хорошо, так как от этого увеличивается диапазон покрытия и приемник лучше будет принимать сигнал у препятствий.
  • Длина антенн. Чем длиннее, тем лучше. Это связано с тем, что карбон (рама) не пропускает радиоволны, поэтому антенны нужно выносить за пределы рам для лучшего принятия сигнала.
  • Цена. Приемники для некоторых систем неадекватно дорогие.

Выбор пульта управления (аппаратуры) для квадрокоптера

Управление квадрокоптером осуществляется по радиоканалу, с помощью пульта. Передача команд от пульта к полетному контроллеру осуществляется через посредника (приемник). Приемник устанавливается на квадрокоптер и соединяется с полетным контроллером проводами.

Разбираться с настройками и характеристиками аппаратуры управления занятие сложное. Поэтому я положился на опыт предшественников и остановил свой выбор на аппаратуре Flysky FS-i6X 10CH. Эта аппаратура, по отзывам владельцев, является удачным выбором для начинающих пилотов.

Смотрите про коптеры:  Тепловизоры для квадрокоптеров и дронов - FORTUNA.ARMY

Для меня очень важным параметром было присутствие 10 каналов передачи данных. Вообще, чем больше каналов, тем больше различных штуковин мы можем установить на коптер. Разъясню, чтобы было понятней…

На газ, поворот влево/вправо, крен влево/вправо, движение вверх/вниз необходимо 4-е канала, т.е. один канал на одно действие. Один канал нужен для переключения полетных режимов. Получаем 5 каналов – минимальный лимит на аппаратуру для квадрокоптера.

Т.к. я собираю коптер для съемок, мне будет необходим подвес для ориентации камеры. С помощью подвеса я смогу направлять камеру вверх/вниз и вправо/влево. На это мне понадобится еще два канала.

Итого, уже сейчас, я получил необходимость в семи каналах на пульте управления. Далее эти потребности будут только расти.

Цена: см.приемник

Выбор регулятора (esc) для квадрокоптера

Мотор меняет число оборотов в зависимости от поданного на него напряжения. ESC – устройство, которое отвечает за подачу и регулировку напряжения на моторе. Такое устройство называют регулятором, или в простонародье «регулем». Выглядит оно так:

Два толстых провода, которые выходят из одного конца регулятора, соединяются напрямую к аккумулятору. Три провода с другого конца к мотору. Шлейф с цветными проводками идет к мозгу дрона (полетный контроллер), который и дает команды на требуемый уровень напряжения на моторах.

Выбор регулятора зависит от мотора. Есть два основных параметра для выбора: диапазон регулируемых напряжений, максимальный потребляемый мотором ток.

Понятно, что если мотор потребляет максимально 15 ампер, то регулятор следует выбирать с запасом в несколько ампер.

Например, мой мотор (Readytosky 2212 KV920) потребляет в районе 20А. Поэтому регулятор мне необходимо брать с характеристикой 20А и выше. Т.к. я закупаюсь в китайском магазине, где производители частенько преувеличивают возможности своих изделий, то мой выбор пал на регулятор с запасом – 30А.

Цена (за 4 шт.): 20$

Выясняем потребляемый ток

При помощи стенда для измерения тяги и ваттметра можно самостоятельно выяснить потребляемый ток. Ну или просто поискать результаты тестов для вашей винтомоторной группы в онлайне. Некоторые производители моторов указывают такие вещи в описании.

Например, если вы используете FPVModel 2206 (англ.) с винтом 5030 и аккумулятором 4S Lipo, то он будет потреблять 10 А при 100% газе, в этом случае регулятора на 12 А будет достаточно. Но, если вы планируете использовать винты 6045 с этим же мотором, максимальный ток может достигать 20 А, в этом случае безопаснее использовать регулятор на 20А.

Не страшно если вы выберите регулятор с небольшим запасом, но не нужно сходить с ума из-за этого. Вы можете использовать регулятор на 30 А или даже на 40 А, там, где требуется всего 20. Такая конфигурация будет работать, но это перебор, и вы просто увеличите вес и стоимость коптера (более мощные регуляторы дороже и весят больше).

Есть два уровня программирования

Если рассуждать о глубине погружения в тему программирования беспилотных летательных аппаратов, можно выделить два «уровня»:

  1. Планирование и закладка в аппарат полетного плана для готового решения, а также последующий контроль его исполнения. Этот уровень позволяет решать множество очень интересных задач, хотя и ограничен возможностями используемой платформы;
  2. Создание собственной системы управления — своего рода «системное программирование» в мире БПЛА.

На Хабре любят DIY и тут довольно много рассказов о деталях второго уровня (например

), в то время как первый до сих пор охвачен слабо. В основном обсуждают детали программирования в определенном SDK или сравнивают аппараты, что понятно лишь тем, кто в теме. Так что далее будем говорить именно про первый уровень.

Программирование под готовые платформы выводит летательные аппараты далеко за рамки класса «игрушек». Это полноценная разработка, которая просто использует библиотеки и функции автопилота для серийно выпускаемого дрона (или для open source полетного контроллера), так что создатель программы может сосредоточиться на решении своей задачи, будь то аэрофотосъемка или воздушные световые шоу.

Самое важное: программирование позволяет снять с оператора часть задач по управлению в режиме реального времени, что на самом деле упрощает применение БПЛА. Не у каждого любителя фотосъемки найдется время и желание учиться пилотировать дрон в сложных условиях.

Есть комплекты для обучения

Доступность обучающих комплектов уже потянула за собой массовое появление как кружков по работе с дронами, так и всевозможных мероприятий — семинаров, мастер-классов, олимпиад.

Дрон для любителя: устройство и принципы программирования / Хабр
Обучающий набор DJI EDU 

Например, в конце января в Точке кипения Омского технического университета (ОГТУ) проходил хакатон, посвященный программированию дронов. 

Дрон для любителя: устройство и принципы программирования / Хабр
Один из организаторов хакатона — Александр Голунов — помогал нам в подготовке этого поста

Любопытно, что до мероприятия ребята, принимавшие в нем участие, не были знакомых с беспилотниками. Некоторые из них увидели дрон вживую первый раз в жизни. Но после знакомства — блочной сборки, настройки, калибровки БПЛА, а также построения виртуального полетного плана — они смогли предложить новые способы применения дронов в быту. Как бы это о том, что ничего сложного тут, в целом, нет.

Железо дрона

С точки зрения железа дрон состоит из:

  • рамы, на которой крепятся агрегаты и защитный кожух. Последний, кстати, присутствует не всегда, но какая-то защита движущихся частей аппарата, а заодно и окружающих от удара этими движущимися частями, есть почти везде;
  • необходимого количества роторов;
  • аккумулятора;
  • набора датчиков. Самый простой дрон может летать с трехосевым акселерометром, но управлять им будет сложно. Заметно упрощают этот процесс: трехосевой акселерометр, трехосевой датчик угловой скорости (ДУС), барометр и магнитометр. Также в списке датчиков могут присутствовать: компас, гироскоп, GPS или приемник любой другой системы глобального позиционирования;
  • модуля связи. Это может быть радиосвязь с пультом управления (наземной станцией) или 4G-модем для получения команд и отправки телеметрии через интернет;
  • полезной нагрузки, например камеры на подвесе, сонара, дальномера и т.п.;
  • сердца дрона — полетного контроллера, который всем этим управляет.

Дрон для любителя: устройство и принципы программирования / Хабр
Пример состава оборудования программируемого дрона с полетным контроллером pixhawk

Загрузчик

Раньше, когда было много разных прошивок, загрузчик был важен при прошивке. Загрузчик — это очень маленькая программа, которую нужно прошить в регулятор; она дает доступ к этому регулятору и позволяет менять/обновлять/настраивать прошивку.

В настоящее время, не стоит даже задумываться об этом, т.к. все новые регуляторы идут с прошивкой BLHeli и с загрузчиком BLHeli. Если вам любопытно, то вот ещё немного информации о загрузчиках:

Без загрузчика можно обновлять прошивку и менять настройки регуляторы только напрямую подключившись к чипу-микроконтроллеру (англ.) или подпаявшись к специальным контактным площадкам на плате (если они, конечно, есть). При прошивке этим способом, можно заодно прошить и загрузчик.

У прошивок SimonK и BLHeli имеются свои загрузчики. Загрузчик от BLHeli имеет более широкий функционал, делая прошивку и настройку заметно проще. Раньше мы могли прошивать только через сигнальный провод, используя интерфейс 1-wire (англ).

Иной подход

Иной подход это верификация ПО. Обычно при этих словах люди начинают думать об абстрактных монадах и академических манускриптах, сложно читаемых и плохо применимых на практике. Но оказалось, что не все так плохо.

Прежде всего, верификация НЕ является гарантией того, что программа не содержит ошибок, а является только проверкой, что программа гарантирует некоторые свойства. А уже дело программиста таким образом обеспечить контроль свойств, чтобы получить нужные результаты.

В случае с SPARK, верификация базово предоставляет нам гарантии:

Для описания инвариантов в языке SPARK предусмотрены специальные расширяющие конструкции языка, описывающие контракты процедур, структур данных, и даже циклов. Контрактом можно указать, например, что данная функция не может обращаться к глобальным переменным, или модифицировать глобальное состояние.

SPARK также учитывает ограничения на типы, которые описаны в Ada. В случае обычного исполнения ошибка несоответствия типов упадет в Runtime; SPARK же позволяет статически доказать, что ограничения на типы не могут быть нарушены никаким потоком исполнения.

Например:

Или другой пример:

Компилятор и верификатор не дадут создать такой код, который приведет к присвоению значений, нарушающих ограничения и предикаты.

Отдельный плюс SPARK в том, что система позволяет “натягивать” гарантии на программу поэтапно, то есть программа может быть частично верифицированной. То есть часть модулей можно объявить верифицируемыми, а часть – (пока) нет.

Сам SPARK делит верификацию на уровни: от “каменного” (Stone level) через “Бронзовый” и “Серебряный” уровни до “Золотого” (Gold) и “Платинового”. Каждый из уровней усиливает гарантии:

Мы остановились на уровне Gold, потому что наш квадрокоптер все-таки не Boeing 777 MAX. 

Как работает верификация в SPARK: прувер собирает описание контрактов и типов, на их основе генерирует правила и ограничения, и далее передает их в солвер (SMT – Z3), который проверяет выполнимость ограничений. Результат решения прувер привязывает к конкретным строкам, в которых возникает невыполнимость.

Более подробно можно почитать в [SUG]

Иной язык

Несмотря на то, что сейчас “рулят” си-подобные ECMA-языки, мы нормально отнеслись к тому, что от этого придется отказаться. Более того, кажется, что чем больше программа, тем больше вредит укорочение ключевых слов и конструкций. Что касается Rust, то он – субъективно – в отношении минимализма издалека сильно напоминает Perl, к сожалению.

Смотрите про коптеры:  Юный Папа - Купить Большие радиоуправляемые самолеты в Краснодаре

И наоборот, по ощущениям, пространные, многобуквенные конструкции раздражают, когда разум летит вперед, но не мешают, когда во главу угла ставится надежность, понятность, и легкость чтения. В этом смысле Ada (а SPARK это подмножество Ada) вполне хорош. Теперь давайте посмотрим, что же язык Ada может дать embedded-разработчику.

 Профили

Сам язык и стандартная библиотека позволяет определять и использовать так называемые “профили”. Профиль это набор ограничений, выполнение которых контролирует компилятор. Например, можно определить ограничение “нельзя использовать динамическую память”.

Мы используем профиль Ravenscar, специально для embedded-разработки. Он включает пару дюжин ограничений, которые делают вашу разработку для микроконтроллеров более удобной и верифицируемой: нельзя на ходу переназначать приоритеты задач-потоков, переключать обработчики прерываний, сложные объекты из stdlib-ы и такое.

Вот ограничения профиля Ravescar, для примера

 Runtime

Когда в embedded необходимо создать более-менее сложное приложение, там всегда заводится RTOS, и ее выбор и интеграция это отдельная песня. В случае с Ada с этим больше нет сложностей – сама Ada включает в себя минимальную исполняемую среду с вытесняющим планировщиком потоков (в Ada это tasks, задачи), с интегрированными в сам язык средствами синхронизации (семафоры, рандеву, называются entries) и даже средствами избегания дедлоков и инверсии приоритетов. Это оказалось очень удобно для квадрокоптера, как станет понятно ниже.

Для embedded-разработчика доступны на выбор также разные рантаймы:

Вот пример описания пустой задачи

Хочется обратить внимание, что эти задачи – это по сути легковесные green threads, так как под ними нет никаких настоящих потоков не существует. Поэтому мы не страдаем от отсутствия корутин, ведь задачи не тяжелее них, зато встроены в язык.

Кроме этого, в Ada есть достаточно мощная stdlib для ядра STM32, включая полную реализацию рантайма. Возможно, и для вашей архитектуры она тоже есть.

Почему не “rustRustRUST”!

Когда мы говорим, про гарантии в языках программирования, сразу вспоминается Rust и его гарантии относительно указателей. Почему тут не он? Нам кажется, что Spark мощнее.

Ada не очень любит указатели – там они называются access types, и в большинстве случаев там они не нужны, но если нужны, то – в Spark также есть проверки владения, как в Rust. Если вы аллоцировали объект по указателю, то простое копирование указателя означает передачу владения (которую проконтролирует компилятор/верификатор), а передачу во временное владение (или доступ на чтение) верификатор также понимает и контролирует.

В общем, концепция владения объектом по указателю, и уровень доступа через этот указатель – есть не только в Rust, и его преимуществами можно пользоваться и в других инструментах, в частности, в Ada/SPARK. Подробно можно почитать в [UPS]

Вот пример кода с владением

Почему мы пишем, что в Ada/SPARK не нужны указатели? В отличие от Си, где базовым инструментом является указатель (хочешь ссылку – вот указатель, хочешь адрес в памяти – вот указатель, хочешь массив – вот указатель – ну вы поняли?), в Ada для всего этого есть строгий тип.

Если уже и этого мало, есть интероп с СИ – то есть код можно компилировать совместно, и слинковать на этапе сборки. Но в этом случае гарантии поведения модуля как черного ящика остаются на разработчике. Для интеропа используются атрибуты – вот так, например, мы оборачиваем функцию на Си в доступ для Ada.

Для соблюдения нужного layout или битности в коде также не нужны указатели: Ада при необходимости позволяет детально описать, как именно структура будет располагаться в памяти. Минус ошибки на конвертации из логического в физическое представления и обратно – прощайте битовые сдвиги, сложения на кольце, арифметика указателей.

IDE

Для работы доступна вполне приятная и удобная IDE, но всегда можно использовать и VSCode с плагинами, и другие текстовые редакторы.

О производительности и надежности

Вполне валидным аргументом может быть вопрос с эффективностью ПО. Что касается эффективности, то в интернете доступно свежее исследование [EFF], из которого хочется привести табличку, показывающую, что “старичок» Ada еще огого:

Если говорить о надежности, то SPARK/Ada известен как один из языков с наименьшим количеством ошибок. В планируемом на 21 запуске кубсатов [LIC] полетное ПО планируется реализовывать на Ada, предыдущий спутник BasiLEO тоже на Ada был единственным среди 12, кому удалось приступить к планируемой миссии.

Как работает аппаратура управления авиамоделями?

Вся современная аппаратура управления работает на частоте 2.4GHz. Это общепринятый стандарт, и вам наверняка знакома эта цифра, ведь в данном диапазоне работают Wi-Fi роутеры и блютуз. На практике системы управления в дорогих дронах, например, DJI так и работают — пульт это грубо Wi-Fi роутер, к которому подключается квадрокоптер. На самом деле, DJI обменивается данными пульт-квадрокоптер по технологии Ocusync.

Когда вы включаете пульт управления и начинаете двигать стиками или делаете другие движения элементами управления — движения каждого стика или элемента передаются квадрокоптеру в цифровом закодированном значении. Квадрокоптер принимает их с помощью приемника, а приемник в свою очередь отправляет данные в полетный контроллер дрона, который уже обрабатывает все данные и отдает команды двигателям через регуляторы оборотов.

Важный момент: если аппаратура не с многопротокольным модулем, то покупать пульт управления и приемник нужно только одной фирмы!

Если вы покупаете пульт FrSky Taranis, то вам необходимо купить приемник этого же производителя, то есть FrSky. С приемниками других производителей он работать не будет. То же самое относится и ко всем другим: Futaba не будет работать с пультом или приемником от Spektrum. Поэтому при покупке будьте внимательны.

Сейчас набирают популярность пульты с многопротокольным модулем. Такая аппаратура управления может подключаться к огромному количеству различных приемников разных брендов, вам нужно в настройках лишь выбрать название бренда и тип приемника. К таким относится, например, Jumper T-Lite. Есть и другая аппаратура.

Какой лучше?

Есть простое правило — чем дороже полетный контроллер, тем стабильнее и надежнее будет мультикоптер. Дело в том, что ведущие производители используют качественные аппаратные комплектующие и качественное программное обеспечение для настройки и управления.

Из достоинств, следует отметить: достаточно удобное расположение разъемов для подключения необходимых устройств и сопутствующей периферии; надежность разъемов; пластиковый корпус, для защиты от внешних воздействий. Также имеется встроенная виброразвязка для защиты чувствительных датчиков расположенных на плате от вредных вибраций корпуса полетного контроллера, неизбежно возникающих при работе силовой установки. Таким образом, можно сказать, что это законченный продукт, максимально подготовленный для полетов «из коробки».

Практически у всех «именитых» контроллеров есть копии, иногда довольно хорошего качества, что иногда не может оставить равнодушным при постройке, например, резервного аппарата. Так или иначе, этот выбор скорее из серии «религиозных». В любом случае, выбирая полетный контроллер, помните о том, что это «мозг» вашей системы, а главное при полетах – безопасность (да и скупой платит дважды).

Максимальный ток — амперы

Первая вещь, на которую нужно обратить внимание при выборе регулятора — это максимальный ток, он измеряется в амперах. Моторы потребляют энергию при вращении, если им нужен ток больше, чем может выдать регулятор, то регулятор начнет греться и в итоге откажет.

  • Увеличение KV моторов
  • Увеличение размера мотора (диаметр и высота статора)
  • Более тяжелые пропеллеры (диаметр или шаг).

Есть два значения максимального тока: максимальный продолжительный ток и пиковый ток. Максимальный продолжительный ток (Continuous current) — это ток через мотор, который может выдавать регулятор скорости продолжительное время без вреда для себя.

Некоторые новички ошибочно считают это значение током, который выдает регулятор на моторы: на самом деле всё наоборот. Это моторы определяют потребляемый ток, поэтому рейтинг регуляторов должен быть такой же, как у моторов (или выше). Но использовать очень мощные и большие регуляторы нет никакого смысла, например, если вы замените 20А регулятор 40-амперным, то коптер будет хуже летать из-за увеличившегося веса.

Плохие аккумуляторы

Ещё одна вещь, о которой стоит задуматься — какой ток может выдать ваш аккумулятор. Большинству 5″ коптеров хватит регуляторов на 20 А, т.к. четырехбаночные аккумуляторы емкостью 1300 — 1500 мА*ч просто не выдают бОльшую мощность продолжительное время, т.е. их не хватит чтобы спалить 20А регуляторы (при условии что они действительно рассчитаны на 20 ампер, и это не маркетинговый ход).

Регулей на 25 — 30 ампер достаточно в большинстве случаев. Даже если у вас высококачественный аккумулятор ёмкостью 1300 — 1600 мА*ч, то регулятор на 35 А всё равно перебор, хотя хуже не сделает и ничего не спалит.

Я выяснил, что большинство аккумуляторов 4S емкостью около 1500 мА*ч дают ток не больше 80 ампер.

Например, у вас винтомоторная группа, которая может потреблять до 120 ампер. Да, она будет потреблять такой ток, но обычно не более пары секунд. Из-за того, что аккумулятор не сможет выдать такой ток, его напряжение очень сильно просядет и ток станет значительно меньше.

Поддержка телеметрии

Телеметрия
Телеметрия

Некоторая аппаратура управления поддерживает двухстороннюю связь приемник=передатчик, то есть обмен данными. Например, приемник может отправить пульту информацию, что аккумулятор разряжен и нужно садиться. Телеметрия может вас предупредить и о других критических состояниях, чтобы избежать неприятностей.

Но телеметрия не ограничивается приемником, сейчас уже есть много внешних модулей, таких как MinimOSD или MiniOSD, это маленькие платы, которые впаиваются в цепь fpv-камера = полетный контроллер = видеопередатчик и накладывают свои данные на видео в вашем шлеме или очках. Настраиваются такие платы обычно в BetaFlight OSD.

На сегодня у всех современных полетных контроллеров есть встроенное OSD и все передается без каких-либо дополнительных доработок в виде установки модуля MinimOSD. Сейчас разве что RSSI передается только приемником и по отдельному каналу.

Этот пункт можно считать не особо важным в выборе приемника.

Рабочая частота

Самая популярная частота — 2,4 ГГц. Более низкие частоты тоже используются (27 МГц, 72 МГц, 433 МГц, 900 МГц и 1,3 МГц), но в нашем хобби (коптеры) они значительно менее популярны.

Если вам интересно, то вот краткое техническое описание.

Те, кто занимаются моделизмом довольно давно, должны помнить частоты 27 МГц и 72 МГц с номерами каналом и кварцами (кварцевые резонаторы нужны были для настройки на определенный канал, в приемнике ставился аналогичный кварц для привязки его к передатчику).

Этой технологией пользовались десятилетиями, она позволяла передавать сигнал на большие расстояния, а сигнал хорошо огибал препятствия. Однако такой сигнал мог глушиться другими передатчиками, работающими на тех же частотах (даже при использовании разных брендов).

2,4 ГГц — новое поколение систем, в настоящее время это самая популярная частота для управления устройствами как летающими в небе, так и ездящими по земле. С появлением алгоритмов с псевдослучайной перестройкой рабочей частоты, благодаря которым нет необходимости вручную выбирать частоты и каналы, эта частота стала стандартной для радиоуправляемых моделей. Антенна меньше, вес тоже меньше, но обычно радиус приема меньше, чем у 27/72 МГц (спорный вопрос, прим. перев).

Возможно вы слышали о других частотах, например, 1,3 ГГц, 868/900 МГц, 433 МГц; на этих частотах работает дальнобойное оборудование для тяжелых моделей.

Все производители передатчиков используют алгоритмы с псевдослучайной перестройкой рабочей частоты, так что использовать аппаратуру стало очень просто. Программное обеспечение постоянно сканирует эфир для поиска наилучшей частоты, отслеживает помехи, и автоматически переходит на свободные каналы.

Регуляторы «4-в-1»

Еще один удобный вариант — регулятор 4 в 1, по сути, это 4 отдельных регулятора скорости расположенных на одной плате, размером как полетный контроллер или PDB (плата распределения питания). Такие регуляторы и полётник можно собрать в стек, что упрощает разводку проводов. Однако повреждение 1 регулятора ведет к замене целой платы. Компромисс между риском и удобством.

В качестве компромисса некоторые производители выпускают отдельные регуляторы, которые можно соединить между собой и получить плату 4-в-1, например Quadrant 4-in-1. Ещё одно преимущество плат 4-в-1 — более правильно распределение веса в коптере, основная масса компонентов оказывается в собранной в одном месте, что дает меньший момент инерции коптера. Благодаря этому увеличивается его отзывчивость.

Регуляторы 4-в-1 обычно ставятся прямо под полетным контроллером, поэтому есть смысл подумать о помехах, которые могут повлиять на летные характеристики и качество видео. Попробуйте их экранировать (англ).

Регуляторы с bec и без него (opto esc)

Некоторые регуляторы включает в себя стабилизатор (BEC), который дает на выходе 5В (это напряжение можно использовать для питания полётного контроллера, приёмника и других компонентов). Есть регуляторы у которых BEC отсутствует, их маркетологи и производители часто называют «Opto», хотя очень часто никакой опторазвязки в них нет.

Оптопара — это оптический элемент, который передает сигнал при помощи света. Он отделяет высоковольтную часть схемы от низковольтной и предотвращает повреждение электроники высоким напряжением, снижает интерференцию сигналов.

Opto регуляторы имеют преимущество: меньший вес, размер и шум (т.к. схема управления мотором изолирована от управляющих схем: от приемника и полетного контроллера).

Однако без BEC на 5 вольт приходится использовать отдельный стабилизатор для питания приёмника и полётного контроллера (заметьте, у таких регуляторов всего 2 контакта на серворазъеме, а не три: есть земля и сигнал, но нет питания — красного провода).

Рекомендации по выбору передатчика

Лично я предпочитаю Taranis X9D Plus и Taranis QX7.

  • Обе эти аппаратуры работают под управлением прошивки с открытым исходным кодом, OpenTX
  • Совместимы с большим количеством приемников FrSky, которые поддерживают PWM, PPM, SBUS; они доступны по цене, маленькие по размеру и весят совсем немного
  • У QX7 тумблеров меньше, чем у X9D; кроме того, меньше разрешение экрана, но это совсем не важно для коптеров. Некоторые говорят, что QX7 лучше лежит в руках чем X9D, хотя это дело личных предпочтений

Обновление (март 2021) — FrSky выпустила обновленную версию, X9D SE (Special Edition) в которой установлены стики на датчиках Холла (M9 Gimbals), корпус под карбон, новые тумблеры.

Совместимость системы

Когда вы покупаете пульт управления, вы покупаете и систему, на которой все это управляется и «разговаривает» с приемником. Это фундамент для будущего расширения хобби до нескольких авиамоделей. У каждой модели будет свой приемник, и с каждым приемником пульт должен быть совместим, это убережет вас от лишней траты денег.

Например, самая популярная аппаратура управления — это FrSky, и на многих авиамоделях производители ставят приемники именно этого производителя или предлагают выбор из нескольких приемников разных производителей. Если вы решите перейти или поставить приемник другого производителя, то вам придется покупать новый пульт у него же.

На некоторых моделях приемники вообще встроенные и их нельзя менять.

Важно различать и понимать совместимость оборудования. Одни различаются по производителю: FlySky и FrSky — новичку их легко перепутать. Также различаются по протоколу работы между собой, например, DSM2 и DSMX — это протоколы взаимодействия TX=RX производителя Spektrum.

Чем занимается полетный контроллер

Насколько легко или сложно управлять конкретным дроном, в том числе и программировать его, определяет полетный контроллер и его программное обеспечение. Именно на него ложится задача управления физикой полета. Благодаря контроллеру оператору достаточно знать только базовые понятия и определения, и нет необходимости защищать докторскую по аэродинамике, чтобы совершить первый полет.

Контроллер решает классические задачи по:

  • ориентации беспилотника вокруг его центра масс;
  • ориентации центра масс беспилотника в пространстве;
  • движению БПЛА по маршруту;
  • избежанию коллизий с другими беспилотниками, если это групповой полет, или с иными объектами. Например, есть много разработок безопасных дронов, которые не сталкиваются с людьми, — все зависит от конкретной задачи;
  • управлению полезной нагрузкой — камерой, захватами для груза и т.п.;
  • передаче информации, в частности, приему команд с пульта, если управление осуществляется вручную;
  • корректировке полета, в т.ч. в больших формациях.

Дрон для любителя: устройство и принципы программирования / Хабр
Полетный контроллер Arducopter
Дрон для любителя: устройство и принципы программирования / Хабр
Полетный контроллер DJI A3

Полетные контроллеры присутствуют на рынке как самостоятельно, так и в составе готовых дронов.

Среди готовых решений широко известны китайские DJI. Вслед за полетным контроллером, шесть лет назад, китайцы предложили SDK, с которым можно создавать вполне профессиональные решения. Вот лишь небольшой список уже решенных задач:

Эргономика

Ниже в статье вы увидите список с аппаратурой, после выбора которой у вас будут все необходимые и нужные функции, а также удобство. Эргономика — это широкая категория, описывающая внешний вид, ощущения и дизайн. Это подобно салону автомобиля, его коробке передач — в хорошей машине приятно находиться и управлять ей.

Пульт Phantom 4 pro
Пульт Phantom 4 pro

К сожалению, чтобы это понять, пульт нужно держать в руках. На вид они все похожи, от Taranis до TBS Tango или даже Turnigy Evolution. Но это только на вид. На самом деле все они отличаются по весу, форме и толщине стиков, а также из какого они материала, скользят или не скользят в руках.

Будет очень хорошо, если в вашем городе есть магазин авиамоделей, где вы сможете подержать в руках всю аппаратуру. Если нет, то не стесняйтесь подходить к пилотам, которые летают у вас на местности, скорее всего они с радостью покажут и расскажут вам о своей аппаратуре. 

Еще один важный момент по выбору аппаратуры — дизайн:

  • Посмотрите каким способ крепится или как расположена антенна(ы), легко ли ее сломать?
  • Есть ли крючок для ремешка, чтобы можно было держать пульт на шее?
  • Есть ли у пульта переключатели, к которым можно легко дотянуться?
  • Есть ли у пульта 2-х или 3-х позиционные переключатели? Для квадрокоптеров они нужны.

Языки и среды разработки

В двух словах программирование дрона сводится к контролю координат промежуточных точек и высоты над землей с одновременным управлением полезной нагрузкой в зависимости от поставленной задачи.


Используемый для программирования язык, как и среда разработки, определяется системой управления, а в случае с проприетарными решениями — производителем контроллера.

Но пока на рынке царит настоящий зоопарк подходов и языков.

Часть производителей вообще предлагает собственные среды — как упомянутый выше DJI.

Сообщества, разрабатывающие опенсорсные полетные контроллеры, от них не отстают. Исторически сложилось, что большинство DIY решений основано на среде Arduino. Тот же Ardupilot в свое время разрабатывался для управления дроном с контроллером ATMega 2560, а в качестве среды разработки использовал оболочку Arduino.

Но сегодня этого уже недостаточно. Задачи, возложенные на беспилотники, усложняются, а вслед за этим растут требования к железу и ПО. Так что аппаратная составляющая меняется. Даже опенсорсные решения уже базируются не на контроллерах, а на полноценных процессорах с ARM-архитектурой (по аналогии со смартфонами).

Среды разработки, соответственно, также дорабатываются и усложняются. Они становятся кроссплатформенными, но пока все еще ориентированы на конкретный автопилот. И хотя на данный момент существуют общепринятые частные стандарты (например, передачи данных или взаимодействия беспилотников с наземными станциями), до выявления лидера среди языков разработки и SDK пока далеко.

С точки зрения гарантированного выбора направления развития этот этап становления рынка абсолютно непредсказуем. Однако именно сейчас время самых интересных проектов, ведь столько задач еще не решено!

Оцените статью
Добавить комментарий

Adblock
detector