Такое понятие как системы автоматического управления (теория автоматов, алгоритм управления) используется давно и не является новшеством в теории робототехники. Впервые о использовании систем автоматического управления роботами в образовательной робототехники в России заговорил Сергей Александрович Филиппов — учитель информатики и робототехники в Физико-математическом лицее № 239. Его труды по данному направлению вошли в книгу «Робототехника для детей и родителей» [1]. Правда, все его труды, а также труды других авторов, работающих над данным направлением, связаны с использованием систем автоматического управления для знаменитого конструктора LegoMindstormsNXT 2.0, либо EV3. Алгоритмы управления роботами при движении по чёрной линии были написаны на таких языках программирования, как Робот Си, NXT-G, RoboLab. Полностью отсутствует информация по использованию данных алгоритмов управления для платформы Arduino. Проблема данного исследованиязаключается в возможности использования некоторых алгоритмов автоматического управления при движении робота построенного на базе платформы Arduino. И запись данных алгоритмов управления на языке программирования ArduinoIDE.
Объект исследования:Образовательная робототехника.
Предмет исследования:Системы автоматического управления.
Цель работы:Выбор оптимальной системы управления роботизированной платформой на базе Arduino.
Задачи:
- Изучение литературы по данному вопросу.
- Обоснованный выбор некоторых алгоритмов управления.
- Построение робота на базе Arduinoдля исследования алгоритмов управления.
- Написание выбранных алгоритмов управления на языке программирования ArduinoIDE.
- Определение экспериментальным путём оптимальной системы управления данным роботом.
Методы исследования:моделирование, анализ, синтез, сравнение, обобщение, интеграция, эксперимент.
Область применения алгоритмов автоматического управления в образовательной робототехнике
Алгоритмы автоматического управления широко применяются на занятиях по робототехнике в кружках и других образовательных учреждениях. Изучение данного направления показывает учащимся возможность управления роботизированной платформой без участия человека, используя датчики, изменяя внешние условия. Применение подобных алгоритмов управления используется в соревнованиях по робототехнике. Существует два основных направления соревнований — это движение робота вдоль чёрной линии и лабиринт. Придвижение робота вдоль чёрной линии могут быть использованы как аналоговые, так и цифровые датчики освещённости в различном количестве. Большее развитие получили соревнования движения роботов вдоль чёрной линии.
Отличия платформы Arduino от Lego
См. в полной версии работы.
Выбор и анализ систем автоматического управления
Для выбора систем автоматического управления было изучено много литературы. Главные критерии по которым отбирались системы, это простота исполнения, возможность применения данной системы (алгоритма) для движения робота вдоль чёрной линии и возможность перевода данной системы в язык программирования ArduinoIDE. Были отобраны три системы с которыми мы и продолжили дальнейшую работу:
1. Система автоматического управления — релейный регулятор.
Смысл данного регулятора очень прост. У нас имеется робот, состоящий из двух моторов, поворотного колеса и двух аналоговых датчиков освещённости. Модель данного робота представлена на рисунке 1. Буквой М обозначены моторы, кружки, закрашенные красным цветом — датчики освещённости. При движении данного робота вдоль чёрной линии возможно четыре различных состояния датчиков (рисунок 2).
Рис. 1. Модель робота с двумя датчика освещенности
Рис. 2. Варианты расположения двух датчиков освещенности над черной линией
Состояние № 1, оба датчика расположены на белом, в таком случае управляющий регулятор заставляет робота поехать вперёд. Состояние № 2, робот наехал на линию левым датчиком, следовательно, регулятор сообщает правому мотору большую мощность, и робот поворачивает влево до тех пор, пока левый датчик освещённости не окажется на белом. Аналогично с состоянием № 3, только в данном случае робот поворачивает направо. Состояние № 4. Робот наехал на перекрёсток, оба датчика расположены над чёрной линией. Регулятор так же, как и при состоянии № 1, подаёт на моторы одинаковую мощность — робот едет вперёд.
2. Система автоматического управления — пропорциональный регулятор.
Данный регулятор отличается от релейного кардинальный образом и позволяет плавно управлять мощностью моторов робота в зависимости от того, насколько «глубоко» робот заехал тем или иным датчиком на линию. Для рассмотрения данного регулятора будем использовать ту же модель робота (рисунок 1).
Рис. 3. Разница в восприятии человека и робота
Т. к. на нашем роботе установлены аналоговые датчики освещённости, мы можем с этих датчиков получать значения от 0 до 100. Где — 0, это абсолютная темнота, а значение 100 обозначает яркий отражённый свет. Датчики освещённости — это обычные делители напряжения, поэтому в нашей ситуации значение 100 соответствует 5 вольтам, значение 0 соответствует 0 вольтам. Внешне задача представляется решаемой только с помощью релейного регулятора, поскольку в системе присутствует всего два видимых человеческому глазу состояния: чёрное и белое. Но робот видит иначе, для него отсутствует резкая граница между этими цветами (рисунок 3). Причина в том, что датчик освещённости улавливает отражённый свет всего одним фотоэлементом, поэтому наличие в пятне от фонарика-светодиода сегмента чёрного поля просто понижает совокупную освещённость.
При использовании данного регулятора, введём некоторые переменные. - показания левого датчика освещённости, - показания правого датчика освещённости, - разница между показаниями левого и правого датчиками освещённости, рассчитывается один раз () за выполнение алгоритма (заводская ошибка датчиков). Сам регулятор выглядит следующим образом (математическая модель):
; ;,
где U- влияющий коэффициент, k- усиливающий коэффициент (обычно равен от 2 до 10, в зависимости от конфигурации робота), ml- мощность левого мотора, mr — мощность правого мотора.
3. Система автоматического управления -пропорциональный регулятор с кубической составляющей.
Глядя на результаты применения регуляторов при движении по линии с двумя датчиками, можно заметить, что робот показывает лучшее время, если на прямолинейных участках движется с малыми отклонениями, а на изгибах поворачивает резко. Такого эффекта можно достичь, используя вместе с пропорциональной кубическую составляющую с малым коэффициентом:
- расчёт статической ошибки (заводская разность сенсоров, рассчитывается один раз в самом начале программы):
Сам регулятор:
;; , где k2< 0.05
Мощность, подаваемая на моторы:
Данный регулятор позволяет разгрузить пропорциональную составляющую, понизив её коэффициент. При малых отклонениях «куб» практически не оказывает влияния на движение. Зато на поворотах, когда невязка повышается значительно, кубическая составляющая стремительно «вырастает» из своего понижающего коэффициента.
Выводы:
Из множества автоматических систем регулирования (регуляторов) мы остановились на трёх оптимальных для нас системах:
- Релейный регулятор
- Пропорциональный регулятор
- Пропорциональный регулятор с кубической составляющей
Теоретически, для нашей задачи, лучше всего подойдёт пропорциональный регулятор с кубической составляющей, т. к. данный регулятор отлично управляет роботизированной платформой при резких изгибах трассы.
Создание робота для исследования систем управления, написание скетчей систем управления
При реализации данного этапа работы были разработаны две модели робота:
1. Робот на базе шасси GekkoSport-mini 2wd [5].
Для создания робота были использованы следующие элементы:
- Arduino Uno.
- Драйвер моторов двухканальный DFRobot для Arduino на L298P v1.2 <2А.
- Плата расширения для подключения сенсоров (Arduino Sensor Shield v5).
- Шасси GekkoSport-mini 2wd, переработанное, изготовлено самодельное основание из органического стекла. Диаметр основания 127 мм. На данной платформе используются моторы с редуктором Gekko MR12–030. Скорость вращения мотора без нагрузки: 400 об/мин. Крутящий момент: 0,35 кг*см. Диаметр колёс 42 мм.
- Аналоговые датчики уровня серого DFRobot v2 (датчики освещённости). Датчики имеют встроенную подсветку.
- Для питания данной системы использовались батарейки и аккумуляторы: крона 9VCamelion (250 mAh) (питание контроллера), пальчиковые батарейки типа АА, 6 штук.
- Болты М3, гайки М3, стойки для крепления Arduino, соединительные провода.
Для датчиков, из пластиковой крышечки, была изготовлена защита от засвечивания внешними источниками света. После того, как все элементы были соединены, получился робот компактных размеров (рис. 4).
Рис. 4. Готовый робот №1
При тестировании выбранных систем управления на данном роботе выяснилось, что крутящего момента 0,35 кг*см, которым обладают моторы платформы Gekko, не хватает, и робот становится очень инертным, т. к. моторы не успевают качественно реагировать на приказы регулятора.
2. Робот на базе конструктора Lego с управляющим модулем Arduino.
Так как времени заказывать новые моторы не было, мы решили воспользоваться имеющимся набором LegoMindstormsNXT 2.0 для создания платформы («мозг» Arduino). Моторы набора Lego имеют крутящий момент 3 кг*см, для данного эксперимента этого показателя будет достаточно (рис. 5).
Рис. 5. Робот № 2
Для того чтобы можно было использовать платформу Arduino и моторы LegoMindstorms, были изготовлены кабели-переходники.
На данной модели робота тестировались алгоритмы управления. Был выбран оптимальный алгоритм управления.
Выбранные регуляторы (системы управления) были переведены в язык программирования ArduinoIDE для последующей заливки в чип робота. Программа, написанная на языке программирования ArduinoIDE, называется скетчем [3,4].
Выводы:
- Для данной исследовательской работы были изготовлены два робота. Один на базе платформы GekkoSport-mini 2wd, второй — на базе конструктора Lego.
- Получена возможность совмещения двух платформ Lego и Arduino.
- Системы регулирования переведены на язык программирования ArduinoIDE.
Выбор экспериментальным путём оптимальной системы управления
Для сравнения выбранных алгоритмов управления было использовано игровое поле для соревнований «Hello! Robot! Траектория».
Как проводилось тестирование алгоритмов: в чип робота заливался скетч с определённым алгоритмом, робот устанавливался на основной круг игрового поля, запускался секундомер, и робот начинал движение, которое продолжалось ровно один круг, после чего секундомер останавливался. Каждый алгоритм управления испытывался 10 раз. Для того чтобы сравнять возможности всех алгоритмов начальная скорость регулирования была установлена на 80 процентах от максимальной. Показания секундомера записывались в таблицу. Среднее время прохождения роботом трассы (Таблица 1).
Таблица 1
Среднее время прохождения роботом трассы, используя различные регуляторы
Регулятор |
Время прохождения трассы (среднее) |
Релейный |
24 сек. |
Пропорциональный |
22,6 сек. |
Пропорциональный с кубической составляющей |
21,3 сек. |
Заключение
По результатам данного исследования из трёх выбранных нами систем управления оптимальной системой является — пропорциональный регулятор с кубической составляющей. Именно этот регулятор показал лучшее время прохождения робота по трассе «Hello! Robot! Траектория». Данные полученные в результате исследования могут быть применены на занятиях по робототехнике в образовательных учреждениях, а также при подготовке учащихся к различным соревнованиям по робототехнике в которых используется платформа Arduino.
Выводы:
- Обоснованно выбраны алгоритмы автоматического управления: релейный регулятор, пропорциональный регулятор, пропорциональный регулятор с кубической составляющей.
- Данные алгоритмы переведены на язык программирования ArduinoIDE.
- Разработан робот для отладки алгоритмов управления.
- Выбран оптимальный алгоритм управления для данного робота.
- Существует возможность совместного использования элементов платформы LegoиArduino.
Литература:
- Филиппов С. А. Робототехника для детей и родителей: учебное пособие для преподавателей кружков робототехники школ и вузов. Издание 2-е. Санкт-Петербург «Наука» 2011.- 258 с.
- Зайцев Г. Ф. Теория автоматического управления и регулирования. Издание 2-е. Киев «Быща школа» 1988. — 432 с.
- Язык программирования ArduinoIDE. URL:http://arduino.ru/Reference
- Официальный сайт компании Arduino. URL:http://arduino.cc/
- Интернет магазин. РОБОТОТЕХНИКА. URL: http://www.robototehnika.ru/