Коллектив Авторов - Цифровой журнал «Компьютерра» № 87 Страница 4
Коллектив Авторов - Цифровой журнал «Компьютерра» № 87 читать онлайн бесплатно
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 для моделирования поведения системы. Об этом пойдёт речь во второй части статьи.
Продолжение следует
К оглавлению
Мнения
Пиратство: почему мы перестали ценить информацию
Денис Злобин
Опубликовано 19 сентября 2011 года
На дворе 2011 год. Нелегальное ПО установлено на каждом втором компьютере планеты. Борцы за свободу информации торжествуют: миллионы людей получили реальную возможность творить, развиваться и совершенствоваться, получая дорогостоящий софт совершенно бесплатно. Революция свершилась. Настало время пожинать её плоды.
Ещё десять лет назад мы мечтали о временах, когда развитие интернета сделает информацию доступной всем и каждому из нас. Эти времена настали и принесли целый ворох проблем тем, кто эту информацию производит и рассчитывает продавать. Проблемам копирайта посвящены сотни мегабайт текста, и я не собираюсь в очередной раз рассказывать о бедах музыкантов, кинематографистов, издателей и создателей программного обеспечения. Вместо этого речь пойдёт о нас — конечных пользователях, окунувшихся в пучину свободного распространения информации.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.