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.