Возможно вы искали: 'Where's Waldo? in Holl...'

May 15 2025 15:21:09
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » OpenPilot: беспилотные аппараты по-опенсорсному

OpenPilot: беспилотные аппараты по-опенсорсному

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



Автор: Олег Семёнов
| Раздел: Статьи |
Дата: 23 сентября 2011 года


Kettering Bug, предшественник современных беспилотников

Интерес к беспилотным летательным аппаратам возник у людей давно. Ещё в 1910 году американский военный инженер Чарльз Кеттеринг построил и испытал несколько устройств, управляемых часовым механизмом. С тех пор разработка и применение "беспилотников" как в мирных, так и в военных целях не прекращались. Но действительно массовым это направление стало только в наши дни с появлением доступных электронных компонентов и узлов. И любители, и серьёзные компании начали создавать подобные системы.

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

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

Как всё начиналось...
Что получится, если объединить купленную в ближайшем магазине летающую модель, современный микроконтроллер и несколько увлечённых общим интересом людей? Система, которая способна управлять полётом самолёта или вертолёта без помощи пилота. Именно идея создания такой платформы и лежит в основе OpenPilot.

Проект OpenPilot основали в январе 2010 года три человека, познакомившиеся друг с другом через интернет и имевшие общие устремления. Все трое хотели создать универсальную платформу для управления беспилотными летательными аппаратами (БПЛА, или UAV - Unmanned Aerial Vehicle), предназначенную для серьёзных мирных применений - поисковых и спасательных работ, аэрофотовидеосъёмки и т.п.

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

Беспилотник ScanEagle стоит около 100 тысяч долларов (фото Boeing)

Представьте себе лесника, наблюдающего за лесным пожаром, или сотрудника Рыбнадзора, разыскивающего браконьеров. Им бы пригодился беспилотник, и лучше не один. Но только не за 100 тысяч долларов. Такие суммы едва ли по карману бюджетным организациям, не говоря уж о любителях.

Занять эту нишу и нацелились основатели OpenPilot. Проект явился первой серьёзной попыткой создать нечто столь же качественное, как и дорогие коммерческие системы (стоимостью от 10 000 долларов и вдобавок с дорогими контрактами на техническую поддержку), но предельно простое для неопытных пользователей и доступное, в том числе и в финансовом плане. Чтобы понять уникальность проекта, следует сказать несколько слов о том, чем же в принципе можно управлять и что существовало ранее.

Какие бывают летательные аппараты?

Можно выделить три принципиально различных класса, на которые делятся все летающие модели (не считая воздушных шаров и ракет). Первый из них – это традиционные самолёты, с ними всё ясно. Модель самолёта движется с помощью тянущего или толкающего воздушного винта, крылья создают подъёмную силу, а отклоняемые рулевые поверхности позволяют управлять направлением полёта. Висеть на месте самолёт не может.

фото flickr.com/jeremiahjw

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

фото flickr.com/jsbrownbill

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

фото flickr.com/sidkites

Всё портит лишь один, но существенный недостаток: так как необходимо управлять каждым мотором в отдельности, эти системы фактически обречены летать на электрической тяге. Это удобно, экологически чисто, но, увы, мешает малая ёмкость батарей, так что время полёта редко превышает 10-20 минут. Этого хватает, чтобы, например, провести съёмку состояния архитектурного объекта перед началом реставрации камерой весом в 100 грамм, но явно мало для того, чтобы пролететь несколько километров и доставить полезный груз в пару килограммов для спасательных работ. Дальние миссии для многороторных аппаратов недоступны: нет возможности использовать двигатели внутреннего сгорания.

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

Немного о конкурентах

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

Вторая проблема любительских проектов – низкое качество программного кода и максимально упрощённая схемотехника. Можно насчитать, пожалуй, несколько десятков таких проектов. Почти в каждом из них есть что-то позаимствованное у аналогов. Аппаратная часть большинства проектов создаётся с целью максимально удешевить систему. Но очевидно, что, используя слабые по вычислительной мощности процессоры, невозможно сделать систему действительно качественной. Та же ситуация с программным кодом: большинство таких проектов начиналось с задачи минимум: научить аппарат зависать и летать. Позже появлялись дополнительные потребности: висеть не только под управлением пилота, но и автоматически, лететь по заданному маршруту, управлять подвешенной видеокамерой для аэросъёмки и так далее. Радикально менять систему не поднимается рука, а в результате новые возможности дописываются в виде заплаток, делая программный код совершенно не читаемым, а поиск ошибок в нём становится непростой задачей.



Ещё несколько проектов начинались как любительские, но постепенно переросли в коммерческие или были закрыты. Типичным примером является немецкий mikrokopter.de (MK), реализующий функции автопилота для мультироторных аппаратов. Проект начинался как открытый. Его участники публиковали схемы и исходные коды программ для повторения всеми желающими. Любой понимающий специалист или любитель мог посмотреть, как реализована та или иная функция, и либо повторить систему, либо на её основе сделать что-то своё.

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

Такая смена позиции авторов проекта привела к разочарованию и оттоку многих пользователей. Они начали искать альтернативное решение, но его не существовало... И вот тут на сцене тихо и без лишнего шума появился OpenPilot.

OpenPilot

У проекта всего три задачи. Во-первых, создать универсальную систему автопилота, применимую ко всем существующим типам летательных аппаратов: к самолётам, вертолётам и мультироторным системам.

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

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

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

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

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

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

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

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



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



Наземная станция управления (GCS).

Несмотря на то что основная работа системы происходит на борту модели, пользователь имеет дело в первую очередь с наземной частью - так называемой наземной станцией управления (Ground Control Station, сокращенно GCS). С её помощью выполняется первоначальная настройка системы, а в дальнейшем может осуществляться контроль по радиоканалу с борта модели и даже управление моделью с помощью компьютерного джойстика вместо специального передатчика.

OpenPilot GCS уникальна многими своими особенностями. Например, в отличие от большинства других проектов, работающих только под Windows, GCS проекта полностью кроссплатформенная. Один и тот же исходный текст компилируется в приложения для Windows, Linux или Mac OS X. Не имеет никакого значения, какая система установлена у конкретного пользователя - OpenPilot GCS идентично выглядит и работает на всех трёх платформах. Интересно заметить, что разработка проекта также ведётся на всех трёх платформах: Windows, Linux и Mac OS X.

Более того, уже сейчас ведётся адаптация GCS для работы на портативных планшетах под управлением Linux или Android, что, очевидно, гораздо удобнее в полевых условиях. Грамотная архитектура системы позволила сделать такую адаптацию быстрой и относительно несложной.

Другой особенностью OpenPilot GCS является её модульность и гибкость настроек. Имеется несколько рабочих пространств, каждое из которых содержит набор так называемых гаджетов. Любой гаджет выполняет свою функцию и не зависит от остальных. Пользователь может создать новое рабочее пространство (или несколько) и разместить на нём в произвольном порядке нужные ему гаджеты с приборами, настройками, графиками, логами и прочим, выбираемые из предложенного списка. Ну а программист, заинтересованный в создании нового специфического инструмента для GCS, может легко добавить его, совершенно не затрагивая уже написанный код, а просто подключив свой гаджет к системе. Всё построено на основе системы uavobjects, о которой будет сказано чуть ниже.

Инерциальная навигационная система (OpenPilot INS)

Существенной частью любого автопилотного проекта является часть, обычно называемая инерциальной навигационной системой, или INS. В большинстве любительских проектов INS как таковой нет - есть некие её фрагменты, более или менее работающие.

Для того чтобы выполнять любые функции управления, нужно чётко представлять:


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

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

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

Дополнительно могут также использоваться и другие источники информации:

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

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

В отличие от множества аналогичных проектов OpenPilot INS способна также выполнять функцию Dead Reckoning. Упрощённо говоря, это означает предсказание данных о нахождении и скорости модели даже при временной потере сигнала GPS. При этом используются акселерометры и остальные датчики для примерной оценки, которая вновь будет уточнена при восстановлении приёма сигнала GPS. Такой функцией не может похвастаться ни один любительский проект.

Основная плата (OpenPilot Pro). Вторым аппаратным компонентом является основная плата OpenPilot Pro. Имея на борту столь же мощный микропроцессор, она выполняет функции управления, стабилизации и навигации. На вход платы поступает сигнал с приёмника, к выходам подключены рулевые машинки или регуляторы моторов. Также к ней подключена плата INS.

Задачами данной схемы являются:

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

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

фото с openpilot.org

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

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

Продолжение следует
666 Прочтений •  [OpenPilot: беспилотные аппараты по-опенсорсному] [24.04.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• OpenPilot: беспилотные аппараты по-... Ukraine Vova 24.04.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка