УДК 004.5
Г.Г. Калач
ИСПОЛЬЗОВАНИЕ ГРАФИЧЕСКИХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ ДЛЯ РЕАЛИЗАЦИИ БЕСПЛАТФОРМЕННОЙ ИНЕРЦИАЛЬНОЙ НАВИГАЦИОННОЙ СИСТЕМЫ
В статье рассматривается бесплатформенная инерциальная навигационная система, которая позволяет рассчитывать углы наклона и крена мобильного робота или беспилотного летательного аппарата. Рассматриваются основные способы комплексирования и обработки информации на примере фильтра Калмана. Проводится расчёт сравнительной характеристики оценки состояния системы на примере математической модели и реального макетного образца. Предлагается способ комплексирования информации на основе интеллектуального фильтра.
Ключевые слова: бесплатформенная инерциальная навигационная система, фильтр Калма-на, комплексирование информации, устойчивость, оценка состояния системы, методы искусственного интеллекта.
G. Kalach
USING THE HIGH LEVEL GRAPHICAL PROGRAMMING LANGUAGES FOR REALIZATION STRAP DOWN INERTIAL NAVIGATION SYSTEM
The article views a strap down inertial navigation system for calculation tilting angle and the roll of the mobile robot and unmanned aerial vehicle. The basic ways of integration and information processing are viewed on the Kalman filter. The article also presents the calculation of comparative characteristic of the system state value on the mathematical model and a real prototype and suggests a method of information integration based on artificial intelligence method.
Keywords: strap down inertial navigation system, Kalman filter, aggregation of information, stability, system state value, artificial intelligence methods.
Появление более новых мощных вычислительных процессоров привело к бурному развитию мобильных роботов. На данный момент они уже не представляются нами огромными неповоротливыми устройствами, всё чаще и чаще мы можем встречать мобильных роботов размером с радиоуправляемую машинку. Применение мобильных роботов в различных сферах требует высокую автономность, а также мобильность. Для правильной или точной работы устройства необходимо знать его положение относительно предметов, которые его окружают, то есть управлять движением по заданному маршруту, или, в более широком смысле, иметь систему навигации мобильного робота.
Определение маршрута движения, в частности определение координат мобильного автономного робота, является одной из сложных задач, средства навигации должны быть автономны, энергонезависимы и экономичны, иметь малую массу. Навигация, осуществляемая автономными средствами, т. е. на основании информации, полученной только на борту объекта от акселерометров, гироскопов и часов, называется инерциальной.
В рамках работы рассмотрена бесплатформенная навигационная система, основанная на 3-осевом акселерометре и на базе микропроцессора STM32. Были реализованы математические модели датчиков и алгоритмы обработки информации, полученной с них. Модели были сделаны в математической среде Matlab Simulink и перенесены на устройство с помощью программных средств RapidSTM32 и Keil.
Результаты исследований показали возможность использования моделей Simulink как реальной основы для проектирования навигационной системы. При этом алгоритм создания программного обеспечения для БИНС полностью автоматизирован за счёт применения специальных надстроек для Matlab, что во многом упрощает проведение анализа системы в целом.
Модуль представляет из себя плату размером 90 х 65 мм, на которой установлен микрочип семейства ARM Cortex M-3, трёхосевой акселерометр LIS3LV02DLLGA16. Также на плате имеется огромное количество дополнительных выводов и интерфейсов для подключения к мобильному роботу или передачи информации по беспроводным каналам связи, в их числе фирменный разъём UEXT, разъём для карт памяти SD-MMC, радиоинтерфейс на базе трансивера Nordic nRF24L01, USB-разъём и т. д. Плата также может быть модифицирована (дополнена) путём подключения дополнительных датчиков.
Алгоритмы, применённые в данной навигационной системе, позволяют использовать комплекс, как для наземных мобильных роботов, так и для воздушных беспилотных летательных аппаратов. Точность работы системы для линейных характеристик перемещения составляет 1 - 2 см, для угловых - 0,1 - 2°. Программно-аппаратный комплекс может быть использован в научно-исследовательских работах и для знакомства с основными моделями навигационных датчиков и алгоритмов обработки информации, а именно:
фильтрации выходных данных с датчиков (фильтр Калмана);
комплексирования информации;
сбора и передачи информации для дальнейшей удаленной обработки.
В дальнейшем планируется на базе данного устройства создать бесплатформенную инерци-альную навигационную систему, в которой будет реализован метод комплексировании информации на основе искусственного интеллекта.
Развитие мощных математических графических оболочек, таких как LabView, Matlab Simu-link и т. д. открывает новые возможности для развития микроконтроллеров. Использование графических языков программирования высокого уровня обычно имеет ряд преимуществ перед традиционными способами программирования, а именно:
1. Уже есть несколько встроенных функций и тулбоксов для выполнения современных математических вычислений. Таким образом, можно реализовать сложные алгоритмы. Например, нет необходимости в написании библиотеки матриц перехода.
2. Использование графического языка программирования означает разработку с помощью блок-схем. Это позволяет видеть как и где проходит сигнал, что не всегда просто увидеть в программном коде.
3. Графический язык программирования позволяет использовать несколько встроенных инструментов для вывода информации или визуализации модели при анализе системы. Есть возможность полностью создать модель среды, в которой будет использоваться объект и предусмотреть все возможности для дальнейшей упрощённой отладки. В итоге отладка становится значительно проще.
RapidSTM32 является блоком управления для Matlab Simulink, который помогает конвертировать Simulink модели в C-файлы для ARM Cortex-M3 процессоров. В конечном счёте, блок управления позволит пользователям передавать их конструкции моделей из Simulink на микроконтроллеры семейства ARM Cortex M-3 без необходимости писать код на языке С или Ассемблер. Блок работает в реальном времени. Блок не предназначен для полного встроенного программирования, что позволяет пользователям настраивать каждый бит в каждом регистре. Скорее всего, он больше пригодится начинающим пользователям, которые осуществляют сложные алгоритмы в реальном времени без использования ОС реального времени RTOS и использования более низких уровней отладки и программирования [1, 2].
На практике фильтр Калмана используется для оценки состояния системы. Эта информация содержится в ковариационной матрице ошибок P. Самым простым способом проанализировать работу фильтра является сравнение найденной ковариационной матрицы ошибок P с фактической ошибкой. Процесс заключается в следующем [3].
Найдём теоретическое значение ошибки среднеквадратичного отклонения путём взятия квадратного корня членов диагонали матрицы Р.
Найдём фактические значение ошибки оценки, находя различия между реальным состоянием и оценкой состояния.
Сравним два значения.
Следует отметить, что теоретическое значение ошибки среднеквадратичного отклонения, полученное из Р, вычисляется на основе реальных оценок состояния. Для точности, мы должны получить данные из нескольких случайных процессов, реализованных методом Монте-Карло, и сравнить усредненные значения.
Были высчитаны значения различных типов ошибок, где под значением «фактическое» подразумевается значение, полученное с устройства, а под «теоретическое» - значение, полученное во время расчёта (рис. 1).
Рис 1. Псевдофактическое и теоретическое значения ошибки среднеквадратичного отклонения: 1 - теоретическое (высчитанное); 2 - псевдофактическое (действующие)
Фактическое среднее значение и ошибка среднеквадратичного отклонения должны быть как можно ближе к нулю. Если среднее значение или ошибка среднеквадратичного отклонения существенно отличаются от этих значений, фильтр неправильно настроен, тогда необходимо вводить корректирующие действия (рис. 2).
Работа навигационной системы с одним типом датчиков не является оптимальным и хорошим вариантом, любые бесплатформенные инерциальные навигационные системы имеют свойство накопления ошибок, поэтому необходимо БИНС использовать с другими системами навигации или увеличивать количество измерительных датчиков, желательно разного типа.
Одним из подходов реализации комплексирования полученной информации являются методы искусственного интеллекта. Предлагается реализовать блок выборки наиболее точной информации с нескольких датчиков. К примеру, у нас в системе имеется магнитометр, акселерометр и гироскоп, которые могут измерить угол тангажа. Составим правила, например: «если показания магнитометра не меняются с частотой 5 Гц, а данные гироскопа и акселерометра изменяются более чем с частотой, равной 10 Гц, то значения магнитометра истинные», - это говорит нам о том, что «если в радиусе действия магнитометра нет металлических предметов и показания акселерометра и гироскопа меняются слишком часто, то берём показания с магнитометра». Для начала эти правила можно реализовать на нечёткой логике в блоке Fuzzy в Matlab [4].
Рис 2. Фактическое среднее значение ошибки и ошибка среднеквадратичного отклонения: 1 - среднее значение ошибки; 2 - ошибка среднеквадратичного отклонения (теоретическая);
3 - фактическая ошибка среднеквадратичного отклонения
В целом работа нечётких блоков, а именно, нечёткого ПИД-регулятора с фильтром Калмана, является хорошим вариантом. По результатам проведённых экспериментов, при исследовании САУ, в состав которой входит fuzzy регулятор, мы столкнулись с нелинейностями, возникающими при расширении интервала входных значений регулятора, применение фильтра Калмана позволило в некоторых случаях вообще убрать помехи.
В рамках работы была спроектирована достаточно простая навигационная система, которая может определять углы наклона и крена мобильного робота. Были реализованы алгоритмы обработки информации с датчиков. По результатам испытаний можно сказать, что фильтр Калмана достаточно хорошо справляется со своей задачей. В зависимости от алгоритмов преобразования точность определения углов наклона составляет порядка 0,1 - 2°. При измерении линейных составляющих 1 - 2 см.
Работа блока RapidSTM32 позволяет смоделировать среду работы устройства, выявить ошибки и отладить. Также стоит отметить, что показания реального объекта и показания модели в среде Matlab почти не отличаются.
Наличие большого количества периферийных интерфейсов на плате, является большим плюсом для дальнейшей модификации системы. С их помощью можно подключить дополнительные навигационные датчики. При дальнейшей модернизации системы есть возможность реализовать более сложные алгоритмы комплексирования и обработки информации с разных датчиков за счёт внедрения методов искусственного интеллекта.
Литература
1. Siouris, G. M., Aerospace Avionics Systems:A Modern Synthesis, 1st ed., Academic Press, Inc., 1993. С. 20 - 22.
2. STMicroelectronics, LIS3L06AL MEMS INERTIAL SENSOR: 3-axis - +/-2g/6g ultracompact linear ac-celerometer datasheet, May 2006. С. 5.
3. Кузовков Н. Т., Салычев О. С. Инерциальная навигация и оптимальная фильтрация. М.: Машиностроение, 1982.
4. Макаров И.М., Лохин В.М., Манько С.В., Романов М.П. Автоматизация синтеза и обучение интеллектуальных систем управления. Под редакцией И.М. Макарова и В.М. Лохина. М.: Наука, 2009, 228 с.