ДонНТУ Портал магистров
← Назад
Источник: А. В. Саяпин, А. Г. Зотин. Система управления движением автономной колесной платформы // Решетневские чтения. — 2015.

УДК: 004.45

Система управления движением автономной колесной платформы

А. В. Саяпин, А. Г. Зотин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 E-mail: alstutor@gmail.com

Аннотация: Рассматриваются особенности реализации управляющей микропрограммы аппарата, имитирующего автономную платформу для исследования поверхности иных планет, используемого при проведении занятий в Международной летней технической школе. Описана структура системы управления движением, состав аппаратной части, принципы работы микроконтроллера Arduino, а также особенности автоматного программирования и обеспечения надежности обмена данными с бортовым компьютером на базе Raspberry Pi.

Ключевые слова: система управления, Arduino, микроконтроллер, конечный автомат, автоматное программирование

Введение

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

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

В рамках Международной летней технической школы, проходившей в СибГАУ в 2013–2014 годах, студентам было предложено разработать программное обеспечение автономного колесного исследовательского аппарата, предназначенного для имитации отбора проб грунта на поверхности иных небесных тел [1]. В состав системы управления данного аппарата входил бортовой компьютер, роль которого исполнял микрокомпьютер Raspberry Pi, а также микроконтроллер Arduino Duemilanove, связанный с бортовым компьютером посредством USB-интерфейса и управлявший колесным приводом аппарата [2-3].

Состав системы управления движением аппарата

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

Выбранное направление движения преобразуется в команды и передается в систему управления движением. Система включает в себя микроконтроллер Arduino Duemilanove на основе ATMega 328. Для управления работой двигателей предназначен силовой модуль расширения Ardumoto L298P Motor Driver Shield. На модуле расширения для дополнительного прототипирования установлен модуль датчиков, оборудованный магнетометром и акселерометром. Кроме того, именно к этому модулю подключены ультразвуковые датчики расстояния, оценивающие расстояние до препятствий перед платформой слева и справа по направлению движения. По центру платформы в передней части расположен инфракрасный датчик препятствий, выдающий сигнал в случае, если препятствие находится прямо перед платформой на расстоянии 800 мм и менее.

Программное обеспечение микроконтроллера

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

Одним из важнейших требований к программному обеспечению микроконтроллера являлась высокая надежность работы и устойчивость к возникновению прерываний и сбоев в канале передаче данных между бортовым компьютером и микроконтроллером. Исходя из этих требований, для реализации программного обеспечения микроконтроллера была выбрана концепция автоматного программирования [4]. Часть программного кода, ответственная за командно-информационный обмен с бортовым компьютером, представляет собой конечный частично определенный детерминированный автомат-распознаватель [5]. Автомат содержит 13 состояний и 26 переходов между ними. Прием числовых данных реализован отдельной процедурой, причем возникновение ошибки в ходе приема информации немедленно переводит автомат в исходное состояние, что обеспечивает высокую устойчивость системы к ошибкам и сбоям. Программное обеспечение на стороне бортового компьютера, принимающее телеметрические данные от микроконтроллера, реализовано по такому же принципу. Таким образом, сбой работы микроконтроллера также не приводит к прекращению обмена информацией между бортовым компьютером и управляющим микроконтроллером или зависанию программы. Для возобновления нормального функционирования системы достаточно перезагрузить микроконтроллер либо бортовой компьютер, других специальных шагов предпринимать не требуется.

Выводы

Описанная выше система является частью мобильной платформы и была использована для обучения студентов по дисциплинам «Основы обработки изображений», «Нейронные сети» и «Нечеткая логика». Использование показало высокую эффективность предложенной системы, отсутствие сбоев во время работы и заинтересованность студентов в процессе обучения. В дальнейшем предполагается участие студентов в разработке программного обеспечения микроконтроллера, также возможна интеграция в состав системы управления, основанной на ROS (Robotic Operating System) [6].

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

Список литературы

  1. Мобильные системы для исследования космических объектов [Электронный ресурс]. – Режим доступа: http://www.summerschools.sibsau.ru/index.php/ru/zhizneobespechenie-kosmicheskikh-sistem (дата обращения: 09.09.2015). ↑ к тексту
  2. Зотин А. Г., Саяпин А. В. Разработка полуавтономной исследовательской системы с использованием видеоданных и сенсорных устройств // Решетневские чтения. 2013. Т. 2, № 17. С. 203–204. ↑ к тексту
  3. Саяпин А. В., Зотин А. Г. Автономная колесная платформа и ее использование для изучения основ обработки изображений, нейронных сетей и систем нечеткой логики // Евразийский союз ученых. 2015. № 2(11), ч. 3. С. 38–40. ↑ к тексту
  4. Поликарпова Н., Шалыто А. Автоматное программирование. СПб. : Питер, 2011. 176 с. ↑ к тексту
  5. Брауэр В. Введение в теорию конечных автоматов. М. : Книга по требованию, 2012. 272 с. ↑ к тексту
  6. Kerr J., Nickels K. Robot operating systems: Bridging the gap between human and robot // System Theory (SSST), 2012: 44th Southeastern Symposium on. 2012. P. 99–104. ↑ к тексту
← Назад