Выбор платформы для экспериментов с БПЛА

в 20:13, , рубрики: pixhawk, БПЛА, квадрокоптеры, робототехника

Выбрать платформу для экспериментов с БПЛА сейчас есть из чего. Автопилотов на рынке много, поэтому прежде всего последует небольшой обзор доступных устройств, а затем рассмотрим победителя — Pixhawk (да да, вот так, сразу, никакой интриги).
Выбор платформы для экспериментов с БПЛА - 1
Критерии выбора:

  • открытая архитектура (software & hardware);
  • современная элементная база (отпадает все по шаблону *avr*);
  • грамотная, красивая архитектура (отпадают шаблоны *ardu*o и *Rasberi*);
  • механизмы SIL/HIL симуляции;
  • наличие открытого ПО наземной станции.

Посмотрим, что осталось:

  1. Проект Paparazzi
    • Classix
    • Lisa/MX V2.1
    • NavStik

  2. Проект OpenPilot
    • CCD3
    • Revo

  3. Макетные платы с IMU
    • Gumstix
    • Beagleboard
    • MiniPC

  4. Pixhawk Autopilot
    • Аппаратная часть
    • Программная часть

Список не полный, а дальнейший обзор весьма субъективен.

1.Проект Paparazzi

Выбор платформы для экспериментов с БПЛА - 2

Проект с самой долгой историей (первые AVR версии железа датируются 2003 годом) поэтому начнем с него. В 2010 году погиб основной разработчик проекта Pascal Brisset, но сообщество выжило. К настоящему времени существует более десятка автопилотов на базе Paparazzi.

В исходных кодах много чего накопилось: есть реализация интегрирования кинематических уравнений Эйлера через матрицу направляющий косинусов, углы Эйлера, кватернионы; в float и целых числах. Есть реализация фильтра простого Калмана с 6тью переменными для определения ориентации, а в экспериментальные ветки затесался даже UKF — в общем, есть на что посмотреть. Все это богатство конфигурируется под конкретный аппарат при помощи xml файлов перед компиляцией.

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

Paparazzi Classix

Выбор платформы для экспериментов с БПЛА - 3

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

Paparazzi Lisa/MX V2.1

Современное устройство на безе STM32F4.Содержит полный набор датчиков, за исключением GPS. Цена около 200$.

Выбор платформы для экспериментов с БПЛА - 4

Paparazzi NavStik

Интересный вариант с модульной структурой. Состоит из очень плотно скомпонованной основной платы с STM32F4 и полным набором датчиков (в том числе GPS и датчика динамического давления) и набора интерфейсных плат.

Выбор платформы для экспериментов с БПЛА - 5

Набор датчиков уточняется при заказе. Цена основной платы в полной конфигурации 212$.

Выбор платформы для экспериментов с БПЛА - 6

На интерфейсных платах нет ничего такого что нельзя было бы разместить на основной (разъемы, предохранители). А вот возможность стыковки с Gumstix (с тем что на OMAP3530) очень интересна:

Выбор платформы для экспериментов с БПЛА - 7

На фотографии этажерка из Gumstix + NavStik + интерфейсная плата.Получается очень серьезное по потенциалу устройство в миниатюрном исполнении.

2.Проект OpenPilot

Выбор платформы для экспериментов с БПЛА - 8

Проект имеет две аппаратные платформы: CC3D и Revo.

OpenPilot CCD3 (STM32F1)

Выбор платформы для экспериментов с БПЛА - 9
Малогабаритная платка на базе датчика MPU-6000 и МК Cortex-M3. Имеет 6 выходов (ШИМ), 2 UART входа, вход для подключения RC приемника. Обвязки минимум, защиты по интерфейсам нет вообще.

Математика БИНС реализована через EKF на 13/16 переменных состояния. Фильтр написан на чистом c с использованием float. Код в отдельных моментах оптимизирован (матричные вычисления), в других нет (нормализации кватерниона стоит 4 деления вместо умножения на обратное значение). Непонятно для чего настройки фильтра прописаны прямо в коде (непросто будет под новые датчики настроить).

Между автопилотом и железом лежит собственный HAL который, теоретически, можно реализовать через FreeRTOS, но практически написано куча собственно кода под STM32Fx/win/posix. Главный плюс платформы — цена 30$. Доступна, как в официальном магазине, так и на alli, и даже на hk (признание!!!).

Про официальный магазин надо сказать особо. При доступе из РФ Вас встречает пустая страница с приветливой фразой «You cannot access this store from your country.», как-то не хорошо, особенно с учетом того что в команде есть русскоязычные разработчики. Столь же приветливо ведет себя и администрация на форуме (когда-то схватил бан за размещение объявление о профильной вакансии в русской ветке, причем не просто пользователя заблокировали, а ip в черный список внесли, т.е. а)люди не ленивые; б)какой-то триггер на тему РФ срабатывает).

OpenPilot Revo (STM32F4)

Выбор платформы для экспериментов с БПЛА - 10

Устройство на базе STM32F4. На борту датчик давления и модем на 433МГц (для приема помех прямо от контроллера т.к. экран не земечен). Устройство разрабатывали долго, но наконец выпустили. Документация не опубликована, поэтому у китайцев клонов еще нет, у официальных продавцов цена 100-130$ (см. замечание про родной магазин выше).

Ввиду мощного контроллера (168МГц с FPU) для экспериментов устройство подходит значительно больше чем первое.

3.Макетные платы с IMU

Выбор платформы для экспериментов с БПЛА - 11

Для ряда применений небольшого ARM на борту недостаточно (даже если это М4). Чуть выше уже упоминалась плата Gumstix на OMAP3530 (Cortex-A8) в связке с NavStik. Было бы странно ели бы Gumstix сам не сделал что-то подобное самостоятельно.

Выбор платформы для экспериментов с БПЛА - 12

Плата расширения Gumstix AeroCore. Другая популярная «макетка» BeagleBone c SOC от TI. Под неё тоже есть подходящая платка:

Выбор платформы для экспериментов с БПЛА - 13

На фотографии BeagleBone IMU Cape

И, наконец, Intel со своим Edison. Под него платы расширения пока нет, но кто-то сомневается, что будет?

Следует заметить, что перечисленные платформы с трудом проходят по критерию «открытости», вся надежда была на I.MX6, ввиду полноты документации, но его родной SabreLight не подходит по форм фактору, а остальные реализации не имеют должной популярности (сугубо моё мнение). Так что ждем обещанного I.MX6 cо встроенным Cortex-M4 и новой подходящей макеткой.

К отряду макетных плат отнесу так же различные MiniPC на базе Android. Привлекательные, прежде всего, своей ценой. На примере Mk808 за 40$ имеем:

  1. RK3066 2 x Cortex-A9 1.6GHz;
  2. 1Гб ОЗУ;
  3. 8Гб Flash;
  4. WiFi;
  5. SD разъем;
  6. UART на плате;

Есть и более современные устройства на RK3288, но вопросс наличия порта Linux требует дополнительного изучения.
Подобный miniPC прикрученный через UART к любому описанному здесь автопилоту расширяет его возможности вплоть до VSLAM.

Становится возможным вместо описанных здесь «микро ОС» для МК использовать полноценные ОС
с надстройками в виде ROS или даже Simulink.

4.Pixhawk Autopilot

Наконец добрались до Pixhawk. Многие видели красивые ролики с квадрокоптерами играющими с мячиком для настольного тенниса, выполняющими акробатические трюки, стаей дружно что-то стоящие. Основной поставщик этого Контента — ETH Zurich (Swiss Federal Institute of Technology Zurich). Pixhawk это их разработка pixhawk.ethz.ch. Благодаря академичности проект имеет красивую архитектуру, как в аппаратной части, так и программной. С аппаратной и начнем. Благодаря открытости приобрести клон можно на Alliexpress, что я и сделал:
Выбор платформы для экспериментов с БПЛА - 14
Комплектность:

  1. сам автопилот;
  2. GPS модуль с антенной, батарейкой и магнитометром;
  3. кнопка со встроенным светодиодом;
  4. DC/DC преобразователь с датчиком тока;
  5. переходник USB->UART/I2C;
  6. разветвитель I2C.

Итого: 185$ (6500р… эх, было время).
Первый вопрос который возникает: насколько китайский клон «китайский». Что же, вскроем и посмотрим.

Аппаратная часть

Основной блок устройства представляет собой небольшую коробочку со множеством разъемов.

Выбор платформы для экспериментов с БПЛА - 15

Материал корпуса — полупрозрачный темный поликарбонат.

Выбор платформы для экспериментов с БПЛА - 16

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

Выбор платформы для экспериментов с БПЛА - 17

Основные компоненты смонтированны снизу платы.

Выбор платформы для экспериментов с БПЛА - 18

Сверху располагаются интерфейсные разъемы, разъем microSD и несколько индикаторных светодиодов.
К качеству монтажа претензий нет — все ровно, флюс отмыт (кроме батарейки, она, очевидно, паялась вручную после печки). Кстати, у конкурентов батарейки нет (значит нет и часов реального времени, точнее нет пока не пойман GPS).
Пластиковые разъемы имеют соответствующие отверстия в верхней половинке корпуса. Возле каждого разъема есть подпись. Ответные разъемы входят с некоторым усилием. Для отключения категорически нельзя тянуть за провод (оторвется), а следует использовать тонкий пинцет или острые кусачки.

Выбор платформы для экспериментов с БПЛА - 19

На столе операция не вызывает затруднений, а в поле в -15С будут сложности. Имеет смысл сразу запастись запасными кабелями.

GPS модуль идущий в комплекте совмещает в себе приемник СНС с батарейкой и антенной и магнитометр.

Выбор платформы для экспериментов с БПЛА - 20

Необходимость выносить магнитометр вместе с GPS антенной возникает так как его желательно располагать подальше от силовых проводников и магнитных материалов. Для примера на DJI это сделано так:

Выбор платформы для экспериментов с БПЛА - 21

Все входы/выходы выведенные на разъемы имеют защиту от статики, ограничительные резисторы. По цепям питания установлены проходные конденсаторы и защитные диоды.

Выбор платформы для экспериментов с БПЛА - 22

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

Выбор платформы для экспериментов с БПЛА - 23

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

А теперь вспомним конкурентов из начала статьи у которых ноги МК напрямую подключены к разъемам. Самые крупные детали на плате это два МК. Большой STM32F427 (168МГц, 256КБ ОЗУ, 2МБ FLASH) и поменьше STM32F103 выполняющий функции failsafe контроллера (управление аппаратом при отказе основного алгоритма автопилота). Т.е. Мы видим ту же архитектуру что и в Paparazzi 2008года, но на современной элементной базе. Здесь можно отметить что в современных SOC есть тенденция встраивать небольшие МК (ядра) для решения вспомогательных задач (а также задач жесткого реального времени), но здесь поступили проще — поставили отдельный МК. Установленные датчики/выведенные интерфейсы подробно расписывать не буду, все есть на странице проекта.

Программная часть

Проект базируется на NuttX RTOS. NuttX представляет собой небольшую posix ОС. Система имеет поддержку ROMFS что позволяет часть настроек производить через конфигурационные файлы при работе системы (сравните со сборкой через конфигурационные xml у paparazzi).

Алгоритмы БИНС основаны на EKF и доступны в виде отдельного проекта InertialNav. Есть варианты реализации под различные наборы датчиков: на 21, 22, 23 и 24 переменных состояния. Код фильтра хорошо документирован и частично получен автоматической генерацией из MATLAB. В проекте имеются исходные MATLAB файлы, архивы с данными — полный набор для опытов.

Работа с устройством «на столе» крайне проста: при подключении к USB в системе появляется новый виртуальный COM порт который можно использовать для связи с автопилотом (в реальном устройстве вместо USB будет подключаемый по UART радиоканал).

Проект совместим с кодом наземной станции управления QgroundControl. Взаимодействи происходит через открытый протокол MAVLink.

Выбор платформы для экспериментов с БПЛА - 24

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

Для пользователя достаточно, но мы пойдем дальше…

Установка среды разработки и загрузка проекта осуществляется в два клика даже из-под windows:

  1. качаем toolchain
  2. запускаем PX4_Software_download.bat — происходит скачивание проекта;
  3. импортируем проект в Eclipse.

Все, имеем Eclipse c проектом:

Выбор платформы для экспериментов с БПЛА - 25

Кому приходилось настраивать Eclipse для работы с ARM оценит простоту.

Теперь остается прикрутить ST-LINK и можно начинать отладку… но будет это в следующей статье которая появится только после накопления и осознания соответствующего опыта.

Ссылки:

  1. www.pixhawk.org – проект открытой платформы для БПЛА;
  2. www.paparazziuav.org – проект открытой платформы для БПЛА;
  3. www.openpilot.org – проект открытой платформы для БПЛА;
  4. www.qgroundcontrol.org – открытое ПО наземной станции управления;
  5. www.gumstix.com – производитель миниатюрных SBC;
  6. www.beagleboard.org/bone – дешевый SBC на базе SOC от TI.

Автор: pdkdrp

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js