Швидка популярність дронів значною мірою зумовлена розвитком контролерів польоту з відкритим кодом, оскільки ключовим пристроєм, який гальмував розвиток дронів, є автопілот. Отже, що таке контролер польоту з відкритим кодом і як він розвивався?
У складному світі безпілотних літальних апаратів квадрокоптери привернули увагу громадськості в першу чергу завдяки своїй простій конструкції, зручності використання та низькій вартості.
Однак, квадрокоптери вимагають найвищого рівня керування польотом, що призвело до появи великої кількості контролерів польоту з відкритим кодом на основі MEMS-датчиків.

Як визначити відкритий вихідний код
Відкритий вихідний код — це концепція, яка вперше була застосована до програмного забезпечення з відкритим вихідним кодом. Ініціатива з відкритого вихідного коду використовує цей термін для опису програмного забезпечення, вихідний код якого може використовуватися громадськістю, а використання, модифікація та розповсюдження такого програмного забезпечення не обмежуються ліцензіями.
Кожен проєкт з відкритим вихідним кодом має власний форум, яким керує команда або окрема особа, де регулярно публікується відкритий вихідний код. Програмісти, зацікавлені в проєкті, можуть завантажити код, змінити його, а потім завантажити власні роботи. Потім менеджери вибирають відповідні модифікації з багатьох і використовують їх для покращення програми, випускаючи нову версію.
Розробка програмного забезпечення з відкритим вихідним кодом поступово поєдналася з апаратним забезпеченням, що призвело до появи апаратного забезпечення з відкритим вихідним кодом (OSHW). На відміну від програмного забезпечення, фізичні ресурси завжди повинні бути спрямовані на створення фізичних товарів.
Таким чином, фізичні особи та компанії, що виробляють товари (продукти) за ліцензією на апаратне забезпечення з відкритим вихідним кодом, зобов'язані гарантувати, що продукт не був виготовлений, проданий або авторизований до його схвалення оригінальним розробником, а також що не використовувалися жодні торгові марки, що належать оригінальному розробнику.
Вихідний код апаратного забезпечення може бути отриманий іншими особами у певному форматі для модифікації. Забезпечуючи технологічну свободу, апаратне забезпечення з відкритим вихідним кодом забезпечує обмін знаннями та заохочує відкрите спілкування та торгівлю апаратним забезпеченням.
Визначення апаратного забезпечення з відкритим вихідним кодом (OSHW) 1.0 базується на визначенні програмного забезпечення з відкритим вихідним кодом.
Це визначення було створено Брюсом Перенсом та розробниками Debian як частину Керівництва Debian щодо вільного програмного забезпечення.
Що таке управління польотами з відкритим кодом?
Після розуміння концепції апаратного забезпечення з відкритим вихідним кодом, легше зрозуміти концепцію контролерів польоту з відкритим вихідним кодом.
Так званий контролер польоту з відкритим вихідним кодом — це проект автопілота з відкритим вихідним кодом, заснований на ідеї відкритого коду, який включає як програмне забезпечення, так і апаратне забезпечення з відкритим вихідним кодом. Програмне забезпечення складається з прошивки в апаратному забезпеченні керування польотом та програмного забезпечення наземної станції.
Ентузіасти можуть брати участь не лише в розробці програмного забезпечення, а й у розробці апаратного забезпечення. Вони можуть купувати обладнання для розробки програмного забезпечення або створювати власне обладнання, що дозволяє більшій кількості людей вільно користуватися результатами розробки проекту.
Використання проектів з відкритим кодом має комерційні наслідки, тому кожен проект контролера польотів з відкритим кодом надаватиме офіційні юридичні терміни для визначення прав розробників та користувачів. Різні контролери польотів з відкритим кодом мають різні юридичні визначення.
Розробка системи управління польотами з відкритим кодом
Система керування польотом першого покоління з відкритим кодом базується на Arduino або інших подібних електронних платформах з відкритим кодом, з можливістю розширення підключень до різних MEMS-датчиків, що дозволяє дрону плавно літати. Її основними особливостями є модульність та масштабованість.
Система керування польотом другого покоління з відкритим вихідним кодом здебільшого має власне апаратне забезпечення з відкритим вихідним кодом, середовище розробки та спільноту. Вона використовує повністю інтегровану апаратну архітектуру, об'єднуючи всі датчики 10 ступенів свободи, керуючий мікроконтролер і навіть GPS-пристрої на одній платі для підвищення надійності. Вона використовує повністю цифровий 3-осьовий MEMS-датчик для системи керування орієнтацією (IMU); вона може керувати літаком для повної автономної навігації та може зв'язуватися з радіо- та наземною станцією, якщо вона обладнана, попередньо маючи функцію повного автопілота. Цей тип керування польотом також може підтримувати різні безпілотні пристрої, включаючи літаки з фіксованим крилом, багатороторні літаки, гелікоптери та транспортні засоби, і має різні режими польоту, включаючи ручний політ, напівавтономний політ і повністю автономний політ. Основними особливостями системи керування польотом другого покоління є висока інтеграція та висока надійність, а її функціональність близька до комерційних стандартів автопілота.
Система керування польотом третього покоління з відкритим кодом буде інноваційною у сфері програмного забезпечення та штучного інтелекту. Вона включатиме розширені функції польоту, такі як ройовий політ, розпізнавання зображень, автономне уникнення перешкод та автоматичне відстеження польоту, а також розвиватиметься в напрямку машинного зору, кластеризації та платформизації процесу розробки.
Управління польотом на Arduino
Щоб поговорити про розробку відкритого програмного забезпечення для керування польотом, слід почати з відомого проєкту апаратного забезпечення з відкритим кодом – Arduino.
Arduino — це найдавніша система керування польотом з відкритим кодом, розроблена Массімо Банзі, Девідом Куартільєллесом, Томом Ігое, Джанлукою Мартіно, Девідом Меллісом та Ніколасом Замбетті в Інституті інтерактивного дизайну Івреа в Італії у 2005 році.
Arduino спочатку створила гнучку апаратну платформу з відкритим вихідним кодом та середовище розробки для ентузіастів розробки електроніки. Користувачі можуть отримати документацію з проектування обладнання з офіційного веб-сайту Arduino, налаштувати друковані плати та компоненти відповідно до своїх фактичних потреб у проектуванні.
Arduino може переглядати вихідний код та завантажувати власний код за допомогою програмного забезпечення Arduino IDE, яке використовує мову програмування Arduino на основі C та C++. Його дуже легко вивчити, і Arduino IDE може працювати на трьох основних операційних системах: Windows, Macintosh OSX та Linux.
У міру того, як ця платформа поступово була прийнята ентузіастами, з'явилися різні функціональні електронні модулі розширення, серед яких найскладнішим був контролер польоту, що інтегрував MEMS-датчики.
Щоб отримати кращий вихідний код для розробки систем керування польотом, Arduino вирішила відкрити свій вихідний код, відкривши таким чином шлях розвитку систем керування польотом з відкритим вихідним кодом. Відомі системи керування польотом з відкритим вихідним кодом, WMC та APM, є прямими похідними продуктами систем керування польотом Arduino та досі розробляються з використанням середовища розробки Arduino.
Управління польотом APM
APM (ArduPilotMega) – це продукт для керування польотом, запущений спільнотою DIY Drones (DIY Drones) у 2007 році, і наразі є найзрілішим проектом з відкритим вихідним кодом у сфері апаратного забезпечення.
Базуючись на платформі з відкритим вихідним кодом Arduino, APM внесла покращення в кілька апаратних компонентів, включаючи інерційний вимірювальний блок (IMU), який включає акселерометр, гіроскоп і магнітометр.
Завдяки чудовій можливості налаштування, APM швидко поширився серед ентузіастів радіокерованих моделей по всьому світу. За допомогою програмного забезпечення з відкритим кодом Mission Planner розробники можуть налаштовувати параметри APM, отримувати та відображати дані датчиків, а також здійснювати автоматизований політ за допомогою Google Maps та інших функцій. Однак Mission Planner сумісний лише з операційними системами Windows.

Наразі система управління польотом APM стала еталоном для зрілого управління польотом з відкритим кодом і може підтримувати безпілотні пристрої, такі як багатороторні, літальні апарати з фіксованим крилом, гелікоптери та безпілотні літальні апарати.
Для багатороторних літаків система керування польотом APM підтримує різні чотири-, шести- та восьмиосьові продукти, а також може стабілізувати та виконувати різноманітні режими польоту, такі як автономний зліт і посадка, автономний навігаційний політ, повернення додому, утримання висоти та утримання позиції після підключення до зовнішнього GPS-датчика.
APM також може підключатися до зовнішніх ультразвукових датчиків та оптичних датчиків потоку для досягнення висоти та утримання позиції польоту в приміщенні.
PX4 та PIXHawk
PX4 — це проєкт програмного та апаратного забезпечення з відкритим вихідним кодом, який працює за ліцензією BSD. Його метою є забезпечення доступного, високопродуктивного автопілота для академічних кіл, аматорів та промисловості.
Проєкт було ініційовано проєктом PIXHawk у Лабораторії комп'ютерного зору та геометрії, Лабораторії автономних систем та Лабораторії автоматичного керування в ETH Zurich.
Модуль автопілота PX4FMU працює під управлінням високоефективної операційної системи реального часу (RTOS), яка використовує Nuttx як середовище інтерфейсу портативної операційної системи (POSIX). Це дозволяє програмному забезпеченню використовувати такі інтерфейси, як printf(), pthreads, /dev/ttyS1, open(), write(), poll(), ioctl() тощо. Програмне забезпечення можна оновлювати за допомогою USB-завантажувача.
PX4 зв'язується з наземною станцією через MAVLink та сумісний з QGroundControl та Mission Planner. Усе програмне забезпечення має відкритий вихідний код та відповідає ліцензії BSD.
Контролер польоту PIXHawk, випущений у 2014 році компанією 3DR у співпраці з командами APM та PX4, є оновленою версією контролера польоту PX4. Він має прошивку PX4 та APM, а також відповідне програмне забезпечення наземної станції. Цей контролер польоту наразі є найсучаснішим продуктом у світі продуктів для керування польотом та найпопулярнішим продуктом серед любителів.
PIXHawk має частоту обробки 168 МГц та використовує мікроконтролер Cortex-M4 з інтегрованим апаратним блоком обчислень з плаваючою комою як основний керуючий чіп. Він має два набори гіроскопів та акселерометрів, MEMS-датчики, що доповнюють один одного, триосьовий датчик магнітного поля, який також може бути підключений зовні до іншого триосьового датчика магнітного поля, та два GPS-датчики, один основний та один резервний, які автоматично перемикаються у разі збою.

Завдяки високошвидкісному процесорному ядру та алгоритму обчислень з плаваючою комою, PIXHawk використовує найсучасніший алгоритм утримання висоти, який може фіксувати висоту літального апарата з точністю до 1 метра лише за допомогою барометричного альтиметра. Він підтримує майже всі типи багатороторних літаків, включаючи трикоптери та H4, які мають нестандартну структуру.
Це дозволяє літальному апарату мати кілька режимів польоту, включаючи повністю автономний маршрут, політ за ключовими точками, керування мишею, "FollowMe", політ хвостом вперед та інші розширені режими польоту, а також може виконувати автономне налаштування.
Адреса проєкту: https://github.com/pixhawk
Контролер польоту PIXHawk дуже відкритий, із сотнями доступних для налаштування гравцями параметрів, і ним можна керувати з простим налагодженням на основі базового режиму. PIXHawk інтегрує кілька електронних карт, і ентузіасти можуть вибирати відповідно до місцевих умов.
OpenPilot та Taulabs
OpenPilot – це проєкт автопілотів, запущений спільнотою OpenPilot у 2009 році, метою якого є надання суспільству недорогих, але потужних та стабільних автопілотів. Проєкт складається з двох частин, включаючи автопілот OpenPilot та відповідне програмне забезпечення.
Прошивка автопілота написана мовою C, тоді як наземна станція написана на C++, і може працювати на трьох основних операційних системах: Windows, Macintosh OSX та Linux.
Найбільшою особливістю OpenPilot є його дуже проста апаратна архітектура, що видно з його численних конструкцій обладнання.
Офіційно випущене обладнання для керування польотом включає CC, CC3D, ATOM, Revolution, Revolution nano та похідне обладнання, таке як Sparky, Quanton, REVOMINI, і навіть FlyingF3, FlyingF4 та DescoveryF4, безпосередньо розроблені на основі плат розробки STM32. Серед них CC3D став найкращим засобом керування польотом для дронів з колісною базою менше 300 мм та надмалих моделей для приміщень, тоді як DiscoveryF4 широко використовується любителями для вивчення керування польотом. Quanton став найкращим обладнанням для Taulabs.
CC3D
CC3D – найпопулярніше обладнання під Openpilot. Ця плата керування польотом використовує лише один 72 МГц 32-бітний мікроконтролер STM32 та один MPU6000 для керування положенням квадрокоптерів, літаків та гелікоптерів (зверніть увагу, що це обладнання може виконувати керування положенням лише з трьома ступенями свободи, а не стабілізацію). Розмір друкованої плати становить лише 35 мм × 35 мм.
На відміну від усіх інших систем керування польотом з відкритим вихідним кодом, вона може підтримувати довгостроковий контроль положення без необхідності використання GPS-злиття або датчиків магнітного поля для корекції. Усі вищезазначені функції використовують єдину прошивку, яку можна змінювати за допомогою налаштувань для перемикання між типами літальних апаратів, режимами польоту, а також підтримки стабілізації карданного підвісу та інших функцій.
Скомпільована прошивка потребує лише близько 100 КБ місця для зберігання, а ефективність її коду вражає, що робить її взірцем для всіх програмістів систем керування польотами. Її програмне забезпечення наземної станції інтегрує повну електронну карту та може контролювати стан літака в режимі реального часу через радіозв'язок.
Система керування польотом TauLabs є похідним продуктом системи керування польотом OpenPilot.
Найпопулярнішим обладнанням TauLabs наразі є Quanton, яке було незалежно розроблено членами оригінальної команди керування польотом OpenPilot.
Він успадковує прості та ефективні функції OpenPilot та розширює їх, додаючи барометр і тривісний магнітометр. Основний мікроконтролер керування оновлено до ядра Cortex-M4 з апаратним керуванням числами з плаваючою комою. Цей пристрій керування польотом є найдавнішим продуктом керування польотом з відкритим вихідним кодом, який підтримує автоматичне налаштування параметрів та має алгоритм ідентифікації моделі, який може виконувати самоналаштування параметрів PID-регулювання положення під час польоту.
TauLabs може реалізувати багато розширених режимів польоту, а при підключенні до зовнішнього GPS може забезпечити мультикоптери такими функціями, як утримання висоти, утримання положення та повернення додому. Система керування польотом інтегрує електронну карту, а інтерфейс дуже зручний у використанні, з режимом майстра ініціалізації, що спрощує початок роботи навіть новачкам.
Вертоліт для кількох Wii (MWC)
Контролер польоту Multi Wii Copter (MWC) – це типовий продукт на базі Arduino, розроблений спеціально для мультикоптерів з низькою вартістю. Він повністю зберігає методи розробки, оновлення пристрою та використання Arduino IDE.
Завдяки низькій вартості, простій архітектурі та зрілій прошивці, цей контролер польоту має велику кількість ентузіастів як у країні, так і за кордоном.
Окрім підтримки поширених квадрокоптерів, гексакоптерів та октокоптерів, найбільшою особливістю цього контролера польоту є підтримка багатьох унікальних типів літальних апаратів, таких як трикоптери, літальні апарати в стилі BIcopter, мультикоптери типу Y4 (дві осі розташовані вертикально). Це робить розробку цього контролера польоту цікавою та легкою для завоювання загальної любові.
KKМультивертоліт
KK Flight Control (KKFC) – це проект з відкритим кодом для керування польотом, що походить з Південної Кореї, і був першим широко визнаним багатороторним керуванням польотом на ранніх етапах розробки квадрокоптерів з відкритим кодом. Його поява стала шоком для всієї індустрії квадрокоптерів.
Цей пристрій керування польотом використовує лише три недорогі одноосьові гіроскопи та простий чотириканальний пристрій дистанційного керування для керування поширеними трьома, чотирма та шістьма роторами, а також підтримує різні схеми розташування літаків, такі як "хрестове", X-подібне, H-подібне та перевернуте вгору-вниз.
У системі керування польотом використовуються три регульовані резистори для регулювання чутливості як метод налаштування, що зберігає характеристики ранніх моделей гіроскопів. Як важливий свідок початку багатороторного керування польотом, ця «антикварна» класична система керування польотом досі має велику кількість гравців.
Папараці (PPZ)
Paparazzi (PPZ) – це програмно-апаратний проект з відкритим кодом, який розпочався у 2003 році з метою створення гнучкої та потужної системи автопілота з відкритим кодом. Однією з унікальних особливостей PPZ є те, що він включає не лише звичайні компоненти системи керування польотом, такі як апаратне та програмне забезпечення, але й апаратне забезпечення наземної станції, таке як різні модеми та антени, що робить його більше схожим на повноцінну невелику безпілотну авіаційну систему.
Ще однією відмінною рисою цього проєкту з відкритим кодом є використання операційної системи Ubuntu, яка об'єднує все програмне забезпечення наземної станції та інструменти розробки в одній системі, що в проєкті називається Live CD. За допомогою CD та апаратного забезпечення для керування польотом користувачі можуть виконувати всі завдання розробки та експлуатації.
Найпопулярнішою апаратною версією PPZ наразі є Paparazzi (PPZ) Lisa/M v2.0, яка має численні інтерфейси розширення та використовує окрему плату датчиків IMU, яку можна розширювати. Такий підхід був популярним на початку існування контролерів польоту з відкритим кодом, оскільки дозволяв постійне оновлення апаратного забезпечення за допомогою покращених датчиків, подібно до оновлення настільного комп'ютера.
Автоквадроцикл керування польотом та ESC32 ESC
Autoquad — це німецький контролер польоту з відкритим кодом, розроблений на ранніх етапах розвитку систем управління польотами з відкритим кодом. Autoquad відомий своєю потужною функціональністю, але його можливості були обмежені наявними на той час датчиками, що змушувало використовувати велику кількість аналогових MEMS-датчиків.
Аналогові датчики – це датчики, які не мають вбудованого аналого-цифрового перетворювача (АЦП) та обчислювального ядра всередині сенсорного чіпа. Натомість вони безпосередньо виводять зміни мікроелектромеханічного датчика у вигляді напруги після посилення та апаратної фільтрації, що вимагає від головного керуючого мікроконтролера виконання збору даних АЦП.
Оскільки на вихідні значення датчика впливають різні температурні середовища, аналогові MEMS-датчики спричиняли багато проблем із калібруванням.
Багатьом гравцям довелося використовувати холодильник для калібрування датчиків під час першого використання контролера польоту. Щоб забезпечити стабільність партійної продукції, деяким виробникам довелося нагрівати друковану плату на літаку для підтримки постійної температури.
Однак, цей метод калібрування приніс додаткове задоволення деяким досвідченим гравцям, і багатьом він сподобався. Для більшості звичайних ентузіастів це справді було складним завданням. Зі зростанням популярності цифрових датчиків із заводським калібруванням, Autoquad, як історичне накопичення, виконав свою місію.
Однак, інша гілка цього проєкту з відкритим кодом, ESC32, поступово здобула визнання серед гравців.
Цей регулятор швидкості (ESC) — перший продукт ESC, який використовує цифровий інтерфейс для керування. Гравці можуть керувати швидкістю двигуна через послідовний порт, інтерфейс I2C та інтерфейс CAN, що набагато швидше, ніж традиційний інтерфейс ШІМ.

Звичайний ШІМ-регулятор потужності має частоту оновлення форми сигналу 400 разів на секунду, тоді як частота оновлення цифрового інтерфейсу може сягати мільйонів разів на секунду. Такий високошвидкісний зв'язок необхідний, особливо для багатороторних літальних апаратів, які дуже чутливі до змін потужності.
ESC також підтримує керування швидкістю в замкнутому циклі та може виконувати детальне налаштування параметрів двигуна, що неможливо з традиційними ESC на радіокеруванні. Проект можна знайти за адресою http://autoquad.org/wiki/wiki/aq-esc32/ .
Звичайно, Autoquad також робить прогрес. Вони випустили новий продукт для контролера польоту, Autoquad M4, який має комплексне оновлення основного керуючого мікроконтролера та датчиків, використовуючи звичайні мікроконтролери STM32F4 та цифрові датчики.
Однак, зіткнувшись з передовими продуктами керування польотом, такими як PIXHawk та APM, які були зрілими протягом багатьох років, він перетворився з попередника на новачка.
Таким чином, системи управління польотами з відкритим кодом значною мірою сприяли поширенню таких продуктів, як квадрокоптери-дрони, у звичайних домогосподарствах, сприяли розвитку технології безпілотних літальних апаратів і навіть допомагали людям здійснити свою мрію про польоти.




Залишити коментар