Цифровой журнал «Компьютерра» 2011 № 40 (88) | страница 2



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

UAVobjects, описанные на XML, автоматически преобразуются в исходные тексты на C для «прошивки» и C++ для GCS


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

И, наконец, UAVTalk — открытый протокол. Его реализация существует уже на языках программирования C, C++, Python, Java, есть версия для пакета Matlab. Достаточно реализовать формально описанный протокол на новом устройстве, и появляется возможность взаимодействовать как с GCS, так и с моделью на основе OpenPilot.

Особенности проекта

В то время как другие проекты предлагают приобрести специальные программаторы или адаптеры для выполнения настроек (не говоря уже о самых примитивных, где все настройки ограничиваются парой «крутилок» под отвёртку), в проекте OpenPilot этому также уделено особое внимание. Достаточно подключить систему к компьютеру обычным USB кабелем, как будут автоматически установлены нужные драйверы и при запущенной GCS можно будет немедленно приступить к конфигурированию системы.

Тем же путём решается смена версии «прошивок»: достаточно кликнуть мышкой и выбрать файл, и новая версия будет записана в подключённую плату. Это можно делать не только по USB, но даже через радиоканал. Такого сервиса нет в других любительских проектах. И опять же всё это одинаково работает не только на Windows, но и на Mac OS X, и на Linux.