A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
px4_ros_gazebo / doc / drone.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
158 lines (116 sloc) 27.5 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
Программирование дронов для автономной навигации по видео камерам
Привет! Мы все знаем что такое летающие дроны. Но зачем они нужны автономные и при чем тут видеокамеры — обсудим в этой статье. Потом поговорим, о том, как программировать такие системы, конечно не на низком уровне управления моторами, а на высоком уровне, где мы будем говорить дрону, где он находится и куда ему лететь.
Самые необходимые приложения для пилотов коптеров!
Для упрощения разработки для таких штук существуют среда разработки приложение для робототехники ROS (Robot Operating System), программный симулятор Gazebo (чтобы тестировать алгоритмы в симуляционной среде и в итоге разбить меньше робототехнический средств). И ROS и Gazebo работают в ОС Linux (будем работать в Ubuntu 16.04), и мы в конце настроим такую среду и запустим дрона в симуляторе в автономный полет по заданной траектории. Программа автономного управления будет написана на языке Python.
Какие бывают дроны сейчас, как используются
Дроны бывают разные. По конструкции различают мультироторный (коптеры), самолетный (fixed wing) или вообще гибридный тип (взлетает вертикально, потом использует крылья). Также бывают потребительские (consumer) и коммерческие (commercial) дроны. Потребительские — это те, которые можно купить в магазине и использовать как летающую камеру. DJI Phantom, Mavic — хорошие модели.
Есть и дешевле — но точно хуже. Такие consumer drones используют многие люди для съемки разных мероприятий, зданий, исторических объектов. Например, с дрона можно получить серию фотографий здания или памятника, а затем создать из них 3D модель объекта методом фотограмметрии. Как правило, такие дроны летают на ручном управлении, реже по миссии в автономном режиме по GPS координатам.
Рынок consumer drones больше чем наполовину принадлежит одной компании — DJI. С ними тут очень сложно конкурировать, они делают реально крутой продукт для своих целей: доступный, функциональный, удобный. Хотя в области селфи дронов, я думаю их начинает теснить компания Skydio, со своим дроном R2. Его фишка в том, что он может летать автономно за человеком/мотоциклистом в лесу, видеть все препятствия и прокладывать автономный безопасный маршрут в реальном времени так, чтобы человек всегда оставался в кадре. Реально крутая штука.
Commercial drones используются уже немного сложнее и не индивидуальными фотографами, а компаниями для решения какой-то задачи. Задач тут огромное количество. Рассмотрим сначала outdoor применения, затем поговорим о применениях внутри помещений.
Программирование Дронов — так ли страшно, как многие себе представляют
Дроны следят за состоянием сельхоз полей, летая над ними регулярно и делая фотографии, другие дроны умеют распылять точечно удобрения на растения — например, на том кусте, где размножились насекомые. Дроны используются на стройках, карьерах.
Каждый день они облетают строительный объект, делают фотографии, по которым создается 3D модель в облаке, по которой видны ежедневные изменения состояния строительной площадки, что когда было построено, сколько кубометров песка привезли сегодня, а завтра увезли — на эти вопросы можно получить ответы таким образом. Пример российской компании, которая активно работает с этой технологией на рынке США — Traceair.
Другой пример — осмотр трубопроводов дронами. Это особенно актуально для России — у нас газовые трубопроводы тянутся на тысячи километров, и надо контролировать утечки и врезки. Нельзя не коснуться вопроса доставки товаров дронами.
Не знаю, заработает ли когда-нибудь сервис Amazon-Prime-Air, но уже сейчас компания Matternet осуществляет доставку товаров в Цюрихе и некоторых городах США, а компания Zipline уже давно доставляет медикаменты над просторами Африки. В России успехов тут пока намного меньше, недавно была новость что дрон Почты России разбился на первом тесте, а Сбербанк тестирует доставку денег дронами. Другой пример — летающее такси, перевозящее людей внутри города. Компании Volocopter и Ehang уже имеют летающие прототипы такси, а компания с российскими корнями Hoversurf разрабатывает летающий байк.
Indoor тоже есть задачи для коммерческих дронов, но пока они не сильно распространены, в этой области идет интенсивные Rhttps://github.com/FastSense/px4_ros_gazebo/blob/master/doc/drone.md» target=»_blank»]github.com[/mask_link]
Свободный полет. Как программируют беспилотники

Управлять квадрокоптером — это целое искусство, но писать программы, которые позволяют ему летать в автономном режиме, — дело не менее захватывающее. В этой статье я расскажу о том, как создать программу на Python, которая будет вести беспилотник, и покажу, как протестировать ее в симуляторе.
Нашими основными инструментами будут среда разработки приложений для робототехники Robot Operating System и программный симулятор Gazebo. Их используют, чтобы тестировать алгоритмы в симуляционной среде и разбивать при этом как можно меньше техники. И ROS, и Gazebo работают в Linux — мы будем работать в Ubuntu 16.04.
Какие бывают дроны
Дроны бывают разные. По конструкции различают несколько типов дронов:
- мультироторный — коптеры;
- самолетный — fixed wing;
- гибридный — он взлетает вертикально, потом использует крылья.
Также дроны делятся на потребительские (consumer) и коммерческие (commercial).
Потребительские, как ты понимаешь, — это те, которые можно купить в магазине и использовать как летающую камеру. DJI Phantom и Mavic — хорошие модели. Есть и менее дорогие, но они определенно уступают по качеству. Такие квадрокоптеры используют для съемки разных мероприятий, зданий, исторических объектов. Например, с беспилотника можно сделать серию фотографий здания или памятника, а затем создать из них 3D-модель объекта методом фотограмметрии.
Как правило, такие дроны летают на ручном управлении, реже по миссии в автономном режиме по GPS-координатам. Рынок потребительских квадрокоптеров больше чем наполовину принадлежит одной компании — DJI. С ней очень сложно конкурировать, поскольку там делают реально крутой продукт: доступный, функциональный, удобный.
Хотя в области квадрокоптеров для селфи DJI начинает теснить компания Skydio со своим дроном R2. Фишка этого дрона в том, что он может летать автономно, например за мотоциклистом в лесу. При этом беспилотник видит все препятствия и прокладывает автономный безопасный маршрут в реальном времени так, чтобы человек всегда оставался в кадре. Реально крутая штука.
Коммерческие дроны используются в компаниях для решения определенной задачи. Одни следят за состоянием сельхозполей, летая над ними регулярно и делая фотографии, другие умеют распылять удобрения точечно. Дроны используют на стройках, в карьерах. Каждый день они облетают строительный объект, делают фотографии, по которым создается 3D-модель в облаке, и уже она помогает отслеживать ежедневные изменения.
Пример российской компании, которая активно работает с этой технологией на рынке США, — Traceair.
Другой способ применения — осмотр трубопроводов дронами. Это особенно актуально для России: у нас газовые трубопроводы тянутся на тысячи километров, и надо контролировать утечки и врезки.
Ну и конечно, у всех на слуху доставка товаров дронами. Не знаю, заработает ли когда-нибудь сервис Amazon Prime Air, но уже сейчас компания Matternet доставляет товары в Цюрихе и некоторых городах США, а компания Zipline давно отправляет медикаменты в полет над просторами Африки. В России успехов тут пока намного меньше, недавно была новость про дрон Почты России, который разбился на первом тесте, а Сбербанк тестирует доставку денег дронами.
Компании Volocopter и Ehang уже имеют летающие прототипы такси, а компания с российскими корнями Hoversurf разрабатывает летающий байк.
В помещениях тоже есть задачи для коммерческих дронов, но пока они не сильно распространены, в этой области идут интенсивные R
Поживем — увидим, какие проекты будут реализованы и задисраптят нашу жизнь. Глобальная цель — сделать систему управления дроном, которой герой фильма «Бегущий по лезвию 2049» мог бы сказать: «Сфотографируй тут все!»
Автономная навигация
Коммерческое применение дронов обычно требует автономного полета, а не ручного управления. Связано это с тем, что часто коммерческие полеты надо выполнять регулярно в одном и том же месте и по одному и тому же полетному плану, который можно запрограммировать и снизить издержки на пилота.
Для автономного управления дрону надо как минимум знать с высокой точностью свои координаты в пространстве. На открытом пространстве можно использовать GPS — точность достигается в несколько метров. Дополнительная наземная станция и технология GPS RTK увеличат точность до нескольких сантиметров. Но наземную станцию не всегда возможно использовать, и это очень дорого.
Обычного GPS хватает для задания маршрута полета над сельхозполями, стройками, трубопроводами, и дроны в этих случаях летают автономно. Эта функция есть у любого современного дрона, который можно найти в продаже.
В таком режиме безопасно летать только в открытом небе без препятствий. Если речь идет об обследовании зданий, трубопроводов или применении внутри помещений, то тут не обойтись без дополнительных сенсоров, определяющих расстояние до объектов. Тут используют одномерные сонары, лидары, двумерные лидары, 3D-лидары и камеры глубины. На борту дрона должен быть установлен дополнительный вычислитель, который в реальном времени будет считывать данные с этих сенсоров, строить 3D-модель окружающего пространства и планировать в нем безопасный маршрут.
Есть еще одна важная проблема: если мы летаем в замкнутом пространстве или между высокими зданиями, то сигнал GPS будет недоступен и необходимо иметь другой источник координат дрона в пространстве. Можно определять свои координаты на борту, обрабатывая видеопоток с бортовых камер — лучше использовать стереокамеры или камеры глубины. Такой алгоритм называется SLAM (Simultaneous Localization and Mapping).
В потоке кадров с камеры алгоритм ищет особые точки (features), которыми могут быть маленькие уголки, какие-то неоднородности. Точкам присваиваются дескрипторы таким образом, что, если мы найдем эту же точку в последующих кадрах, когда камера уже успела переместиться в пространстве, ей будет присвоен такой же дескриптор и алгоритм сможет сказать: «Вот на этом кадре есть такая же точка, что и на предыдущем».
Алгоритм не знает 3D-координаты особых точек и координаты камеры в моменты съемок кадров — эти параметры ему как раз и надо вычислить. Он отслеживает изменения пиксельных координат особых точек между кадрами и пытается подобрать такие параметры, чтобы, если спроецировать особые точки в плоскость кадра, получались наблюдаемые или измеренные пиксельные координаты.
В итоге получается оценка перемещения камеры в пространстве. Обычно алгоритм SLAM очень требователен к вычислительным ресурсам, но есть камера Intel RealSense T265 с микросхемой, реализующей вычисления SLAM на аппаратном уровне.
Для организации автономного управления дроном необходимо решить три задачи.
- Определить координаты дрона в пространстве. Использовать для этого GPS-приемник или вычислять на борту координаты, обрабатывая видеопоток алгоритмом SLAM. А лучше использовать оба подхода, чтобы знать как глобальные, так и локальные координаты дрона
- Построить 3D-карту окружения дрона с помощью сенсоров типа стереокамер, камер глубины, лидаров.
- Добавить софт для планирования маршрута с учетом цели полета, текущих координат и карты окружения.
Практика
Поскольку мы хотим затестить простую программу управления дроном в автономном режиме и при этом ничего не разбить, воспользуемся эмулятором. Нам понадобится следующий софт.
Полетный контроллер
Непосредственно вращением моторов и полетом дрона управляет полетный контроллер, представляющий собой плату Pixhawk с процессором ARM на борту и прошивкой под названием PX4. Сам программный код PX4 можно скомпилировать в режиме software in the loop как раз для тестирования на персональном компьютере на Intel x84 CPU. Софт PX4 в этом режиме думает, что он работает на реальном железе полетного контроллера, хотя на самом деле он выполняется в симуляционной среде на ПК и получает подменные данные с сенсоров.

Robot Operating System
Нам потребуется много разных программных модулей. Одни будут работать с сенсорами, другие будут реализовывать SLAM, третьи — строить 3D-карту, четвертые — планировать в ней безопасный маршрут. Для создания этих модулей мы используем Robot Operating System (ROS) — распространенный фреймворк для разработки приложений робототехники. Приложение для ROS представляет собой набор взаимодействующих пакетов, каждый экземпляр которых называется узел, или node.
Один из узлов называется мастер (master node) и отвечает за регистрацию остальных узлов приложения. Каждый узел представляет собой отдельный процесс Linux. ROS предоставляет механизм передачи и синхронизации сообщений между узлами. Существуют как стандартные сообщения, так и определенные программистом. В качестве сообщений выступают данные с сенсоров, видеокадры, облака точек, команды управления и передачи параметров.
Узлы ROS могут быть запущены на разных машинах — в этом случае взаимодействуют они через сетевой интерфейс. В составе ROS есть специальный узел rviz, он служит для графической визуализации передаваемых в ROS сообщений. Например, можно посмотреть, как БПЛА видит мир вокруг себя, отобразить траекторию его движения и видеопоток с камеры.
Для создания пакетов ROS предоставляет возможность использовать языки C++ и Python.
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Источник: xakep.ru
Дрон для любителя: устройство и принципы программирования
Для программирования дрона сегодня не надо разбираться в физике полета и прочих тонкостях, поскольку эти вопросы за вас уже решили разработчики контроллеров и SDK. Тем не менее, тема остается не такой простой. И в этом посте мы хотим рассказать, с какой стороны к ней подступиться.

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

Программирование под готовые платформы выводит летательные аппараты далеко за рамки класса «игрушек». Это полноценная разработка, которая просто использует библиотеки и функции автопилота для серийно выпускаемого дрона (или для open source полетного контроллера), так что создатель программы может сосредоточиться на решении своей задачи, будь то аэрофотосъемка или воздушные световые шоу.
Самое важное: программирование позволяет снять с оператора часть задач по управлению в режиме реального времени, что на самом деле упрощает применение БПЛА. Не у каждого любителя фотосъемки найдется время и желание учиться пилотировать дрон в сложных условиях.
Типы БПЛА
Исторически сложилось так, что беспилотники классифицируют по исполнению — самолетному и мультироторному. Мультироторные можно разделить по количеству винтов: монокоптеры, квадрокоптеры, гексакоптеры и т.д. Такие БПЛА получили широкое распространение, поскольку им не нужны дополнительные устройства для взлета и посадки. Недавно появился третий класс БПЛА — конвертопланы. Но такая конструкция чаще встречается в специализированных разработках.
Для чего используются
Конструкция определяет возможное применение. Сфер, где успели «засветиться» беспилотные летательные аппараты уже довольно много. Даже если говорить только о «гражданских» машинах (не ориентированных на военных или спасателей), это:
- геодезия и картография;
- сельское хозяйство (в части контроля и обработки полей);
- фермерство;
- аэрофотосъемка,
- обычная фото и видео съемка;
- предпроектные исследования и контроль объектов строительства;
- доставка товаров;
- мониторинг протяженных объектов.

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

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

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


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

Пример состава оборудования программируемого дрона с полетным контроллером pixhawk
Чем занимается полетный контроллер
Насколько легко или сложно управлять конкретным дроном, в том числе и программировать его, определяет полетный контроллер и его программное обеспечение. Именно на него ложится задача управления физикой полета. Благодаря контроллеру оператору достаточно знать только базовые понятия и определения, и нет необходимости защищать докторскую по аэродинамике, чтобы совершить первый полет.
Контроллер решает классические задачи по:
- ориентации беспилотника вокруг его центра масс;
- ориентации центра масс беспилотника в пространстве;
- движению БПЛА по маршруту;
- избежанию коллизий с другими беспилотниками, если это групповой полет, или с иными объектами. Например, есть много разработок безопасных дронов, которые не сталкиваются с людьми, — все зависит от конкретной задачи;
- управлению полезной нагрузкой — камерой, захватами для груза и т.п.;
- передаче информации, в частности, приему команд с пульта, если управление осуществляется вручную;
- корректировке полета, в т.ч. в больших формациях.
Полетный контроллер Arducopter
Полетный контроллер DJI A3
Полетные контроллеры присутствуют на рынке как самостоятельно, так и в составе готовых дронов.
Среди готовых решений широко известны китайские DJI. Вслед за полетным контроллером, шесть лет назад, китайцы предложили SDK, с которым можно создавать вполне профессиональные решения. Вот лишь небольшой список уже решенных задач:
- контроль неправильно припаркованных автомобилей и дорожного движения в целом;
- обследование и обработка территорий в сельском хозяйстве (в том числе, поля и виноградники);
- 3D-реконструкция модели поверхности земли — маркшейдерские работы, трехмерная реконструкция природных туристических объектов и т.п.;
- контроль флотилии дронов для развлекательных целей или быстрого прочесывания местности.

В 2018 году полиция Нью-Йорка обзавелась 14 дронами (фото: CNN)
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 в этой части постоянно расширяется. Однако это задача не для новичка. Поскольку суть заключается не столько в самом программировании, сколько в решении инженерных задач.
Языки и среды разработки
В двух словах программирование дрона сводится к контролю координат промежуточных точек и высоты над землей с одновременным управлением полезной нагрузкой в зависимости от поставленной задачи.
Используемый для программирования язык, как и среда разработки, определяется системой управления, а в случае с проприетарными решениями — производителем контроллера.
Но пока на рынке царит настоящий зоопарк подходов и языков.
Часть производителей вообще предлагает собственные среды — как упомянутый выше DJI.
Сообщества, разрабатывающие опенсорсные полетные контроллеры, от них не отстают. Исторически сложилось, что большинство DIY решений основано на среде Arduino. Тот же Ardupilot в свое время разрабатывался для управления дроном с контроллером ATMega 2560, а в качестве среды разработки использовал оболочку Arduino. Но сегодня этого уже недостаточно.
Задачи, возложенные на беспилотники, усложняются, а вслед за этим растут требования к железу и ПО. Так что аппаратная составляющая меняется. Даже опенсорсные решения уже базируются не на контроллерах, а на полноценных процессорах с ARM-архитектурой (по аналогии со смартфонами). Среды разработки, соответственно, также дорабатываются и усложняются.
Они становятся кроссплатформенными, но пока все еще ориентированы на конкретный автопилот. И хотя на данный момент существуют общепринятые частные стандарты (например, передачи данных или взаимодействия беспилотников с наземными станциями), до выявления лидера среди языков разработки и SDK пока далеко.
С точки зрения гарантированного выбора направления развития этот этап становления рынка абсолютно непредсказуем. Однако именно сейчас время самых интересных проектов, ведь столько задач еще не решено!
Примеры программирования дронов
Учитывая разнообразие решений на рынке, мы не имеем возможности рассказать о всех вариациях в программировании дронов, но покажем, как это происходит на паре примеров.
Пример 1: DJI
Для программирования проприетарного дрона DJI необходимо зарегистрировать девелоперский аккаунт.
Далее необходимо скачать SDK с сайта производителя. У DJI предусмотрены разные SDK в зависимости от того, что планируется программировать — наземную станцию, управление полезной нагрузкой или самим полетом. Важно выбрать правильный и убедиться, что имеющееся оборудование (будь то дополнительные датчики дрона или мобильное устройство) поддерживается. Дальнейший процесс рассмотрим на примере мобильного SDK (по прочим SDK на сайте производителя есть подробная документация).
SDK включает:

- фреймворк и необходимые библиотеки, которые импортируются в мобильное приложение дрона под Android или iOS;
- инструмент симуляции и визуализации полета;
- вспомогательные инструменты для iOS;
- примеры кода и документацию.
В своем приложении разработчик может контролировать полет, использовать данные с камеры или датчиков на борту дрона, следить за состоянием систем на борту. При этом SDK берет на себя заботу о низкоуровневом функционале — стабилизации полета, управлении питанием.
Логическая схема подключения к дрону представлена на картинке:
Прежде чем приступать к разработке, необходимо сгенерировать для приложения уникальный App Key, который активирует SDK.
Сам процесс разработки зависит от рассматриваемой платформы (iOS или Android). Подробно и для Android, и для iOS он описан в документации, а на GitHUB есть примеры простейших приложений для каждой из этих платформ. Есть замечательное видео, описывающее весь процесс создания простейшего приложения.
Для запуска скомпилированное приложение необходимо перенести на мобильное устройство. Непосредственно перед запуском устройство также надо подключить к дрону по Wi-Fi или через USB-кабель (тип подключения зависит от конкретного устройства).
Пример 2: Pixracer R14

Pixracer — одно из поколений полетного контроллера Pixhawk, который широко используется в DIY-проектах.
Для программирования этого полетного контроллера используется библиотека ROS (Robot Operating System), которая позволяет управлять дронами с помощью MAVLink (пакет называется MAVROS). Писать можно на Python, используя клиент для этой библиотеки под названием rospy.
Для запуска приложения необходимо подключиться по SSH к полетному контроллеру.
С DIY-проектами процедуру программирования в общем виде описать гораздо сложнее, нежели с проприетарными решениями, поскольку слишком многое зависит от деталей прошивки. Для kit-комплектов, которые зачастую построены именно на открытых разработках, обычно есть подробная инструкция по программированию.
- Блог компании Leader-ID
- Робототехника
- Мультикоптеры
- DIY или Сделай сам
Источник: habr.com