Научная статья на тему 'Особенности программирования движения роботизированных устройств на платформе Arduino'

Особенности программирования движения роботизированных устройств на платформе Arduino Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
829
93
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РОБОТОТЕХНИКА / ПРОГРАММИРОВАНИЕ ДВИЖЕНИЯ НА ARDUINO / ARDUINO-BASED MOVEMENT PROGRAMMING / ИНЖЕНЕРНО-ТЕХНИЧЕСКАЯ ПОДГОТОВКА / ENGINEERING AND TECHNICAL TRAINING / P-РЕГУЛЯТОР / PD-РЕГУЛЯТОР / PD-CONTROLLER / ROBOTECHNICS / P-CONTROLLER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гордиевских Виталий Михайлович, Кораблев Андрей Андреевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гордиевских Виталий Михайлович, Кораблев Андрей Андреевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Special aspects of movement programming for robot devices built in Arduino platform

The article deals with special aspects of movement programming for robot devices built in Arduino platform. Selection experience and application peculiarities of programming algorithms for a robot positioning while moving along a line.

Текст научной работы на тему «Особенности программирования движения роботизированных устройств на платформе Arduino»

2. Морковкина, В.В. Проблемы и перспективы современного вузовского книгоиздания на примере типографии ШГПУ [Текст] / В.В. Морковкина, В.М. Гордиевских // Вестник Шадринского государственного педагогического университета. 2016. - № 3(31). - С. 164-168.

3. Куправ, Т.А. Информационно-инновационные технологии в агробизнесе [Текст] : учеб.-метод. пособие / В.В. Реймер, Т.А. Куправ, Ю.А Елбаев. - М. : Буки-Веди, 2013. - 160 с.

4. Загузина, Е.Г. Проектирование специализированной информационной системы государственного учреждения [Электронный ресурс] / Е.Г. Загузина // Современные научные исследования и инновации. -2015. - № 3. - Режим доступа: http://web.snauka.ru/issues/2015/03/51039.

5. Петряшов, Д. Автоматизация работы с информацией о внешнем окружении фирмы [Текст] / Д. Петряшов // Маркетинг и маркетинговые исследования. - 2013. - № 2.

6. Криковцев, И.В. Метод сбора и документирования требований к порталу RUS [Текст] / И.В. Криковцев. - Москва, 2008.

УДК 004.42

В.М. Гордиевских, А.А. Кораблев г. Шадринск

Особенности программирования движения роботизированных устройств

на платформе Arduino

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

Робототехника, программирование движения на Arduino, инженерно-техническая подготовка, P-регулятор, PD-регулятор.

V.M. Gordievskikh, A.A. Korablev, Shadrinsk

Special aspects of movement programming for robot devices built in Arduino

platform

The article deals with special aspects of movement programming for robot devices built in Arduino platform. Selection experience and application peculiarities of programming algorithms for a robot positioning while moving along a line.

Keywords: robotechnics, Arduino-based movement programming, engineering and technical training, P-controller, PD-controller.

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

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

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

Достигать данной цели можно различными путями:

- организацией специализированных занятий в рамках образовательного процесса школы;

- в кружках технического творчества при досуговых центрах;

- на специализированных занятиях и мастер-классах при вузах;

- средствами спортивной робототехники наразличногоуровня фестивалях, конкурсах, турнирах и т.д.

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

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

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

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

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

В теории автоматического управления более 100 лет назад был разработан автоматический регулятор - устройство, посредством которого осуществляется автоматическое регулирование. С помощью чувствительного элемента (датчика) регулятор, в зависимости от принципа регулирования, измеряет регулируемую величину и

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

Реализация регуляторов возможна на основе одного или двух датчиков. Если мы используем один датчик, то условимся называть ошибкой рассогласования разницу между реальным значением датчика и требуемым значением, к которому мы стремимся. Например, допустим, что при движении по линии нужно, чтобы датчик отражения располагался над границей линии и поля. Предварительно измерив значение отраженного света в данном положении робота, мы в каждый такт цикла будем вычитать это значение из текущего значения, определяемого датчиком цвета. Затем полученную ошибку рассогласования умножаем на коэффициент к и результат подаем в качестве управляющего воздействия на моторы.

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

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

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

В настоящее время наиболее распространён пропорциональный интегральный дифференциальный регулятор или РГО-регулятор. Алгоритм РГО-регулятора, адаптированный для управления роботом на платформе Агёшпо, позволяет оценивать положение датчика / датчиков отражения относительно следуемой линии и, в зависимости от результата, рассчитывать управляющие воздействия на моторы.

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

РГО-регулятор содержит три составляющие. Рассмотрим подробнее суть каждого из

них.

1. Пропорциональная составляющая (Р) позволяет задавать управляющее воздействия на моторы (тормозить один мотор и ускорять второй мотор) с силой, пропорциональной величине отклонения робота от следуемой линии. Скорости моторов рассчитываются как разность требуемого и текущего положения, умноженная на неотрицательный коэффициент. Чем больший коэффициент будет задан, тем быстрее будет происходить возвращение робота на требуемую траекторию, но движения при этом станут более резкими. Такой алгоритм называется пропорциональным регулятором или Р-регулятор. Пропорциональная составляющая оказывает самое сильное управляющее воздействие на моторы.

2. Интегральная составляющая (I) учитывает информацию о положении робота на предыдущих шагах и задает дополнительные управляющие воздействия на моторы в зависимости от полученного результата.

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

Уравнение РШ-регулятора в общем виде:

¿в

У(0 = Р +1 + Б = кре(0 + к,/0 е (1) Ск + кй— где

^ период дискретизации;

V(t) - требуемая скорость мотора;

e(t) - ошибка, указывающая, насколько далеко датчик отражения находиться от среднего значения серого;

P, I, D - пропорциональная, интегральная и дифференциальная составляющие соответственно;

Ц, ^ - коэффициенты PГО-регулятора.

PID-регулятордля мобильного робота на платформе АМшпореализуется путем замены дифференцирования-разностью, а интегрирования - суммой:

V© = P(t) + ВД + D(t);

P(t) = kpx e(t);

I© = I(t - T) + ^х e(t);

D(t) = kdх (e(t) - e(t -

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

При этом чем дальше робот отъехал от линии, то есть чем больше ошибка. Тем с большей скоростью он будет возвращаться на линию.

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

Рассмотрим смысл коэффициента пропорциональности Ц. Как видно, поворот производится в силу того, что от мощности одного мотора управляющее воздействие вычитается, тогда как к другому - прибавляется. Таким образом, коэффициент Ц может усиливать или ослаблять воздействие регулятора на моторы: если он больше единицы, то происходит усиление, а если меньше - ослабление. Большой Ц сделает робота очень чутким к ошибкам, что приведёт к резким рывкам для возврата на траекторию. Малый Ц сделает движение робота плавным, но при изменении траектории под большими углами будет приводить к ситуации, когда робот может потерять траекторию. Конкретные значения коэффициента Ц, наиболее подходящие в каждом конкретном случае, будут

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

Алгоритм управления движением робота по линии с использованием одного аналогового датчика отражения и P-регулятора:

1. Калибровка датчика;

2. Измерение показания датчика на черном и белом;

3. Вычисление среднего значения между черным и белым;

4. Применение формулы:^^-^, где H - базовая скорость моторов, L -данные с датчика отражения (analogRead()), K - среднее значение между черным и белым для левого мотора и H-(L-K) для правого мотора. При этом датчик отражения должен располагаться слева от черной линии.

Выявленные проблемы при реализации данного алгоритма:

1. Робот, при наезде датчиком на черную линию поворачивает вправо и теряет её. Следует переставить датчик на другую сторону линии или поменять моторы местами.

2. Движение робота по линии зависит от полигона. У разных полигонов в зависимости от качества печати и типа поверхности коэффициенты отражения разные.Следует повторить 1, 2 и 3 пункт алгоритма.

Алгоритм управления движением робота по линии с использованием двух аналоговых датчиков отражения и P-регулятора.

1. Калибровка датчика;

2. Измерение показания датчика на черном и белом;

3. Вычисление среднего значения между черным и белым;

4. Применение формулы: H+(L-K), где H - базовая скорость моторов, L -данные с датчика отражения (analogRead()), K - среднее значение между черным и белым для левого мотора и H+(L-K) для правого мотора.

При реализации алгоритма могут возникать следующие проблемы:

1. На поворотах робот съезжает с линии. Следует уменьшить базовую скорость робота или использовать PD-регулятор (добавить коэффициент ускорения).

2. При наезде левым датчиком на черную линию робот поворачивает вправо. Поменять датчики или моторы местами.

Стоит обратить особое внимание на скорость считывания данных с датчиков и скорость подачи сигнала на моторы для платформы Arduino UNO (Atmega 328P): analogRead() - скорость выполнения 110 мкс; digitalRead() - скорость выполнения 1900мкс; analogWrite() - скорость выполнения 2000 мкс.

Скорость считывания цифрового сигнала и скорость подачи ШИМ-сигнала (аналогового сигнала) примерно одинаковы, поэтому робот, использующий в качестве сенсоров цифровые датчики, выполняет езду по линии вполне корректно. В то время как скорость считывания аналогового сигнала примерно в 18 раз больше скорости подачи ШИМ-сигнала, в результате чего робот стоит на месте при любом значении датчика. Для решения этой проблемы необходимо использовать delay(20) между каждым циклом считывания и подачи аналогового сигнала.

Кроме того большее значение имеет сам датчик отражения и отражающая характеристика поверхности полигона. Если разница между возвращаемыми значениями черного и белого будет примерно равна 20-25 измеряемых единиц, это будет идеальным

значением. В нашем случае был применен датчик, который возвращал на чёрной линии значение равное 73, а на белой 83 единицы. Таким образом, разница составила 10, что недостаточно для точного управления роботом при движении по линии. В таком случае актуальна следующая формула управления двумя датчиками H+4*(L-K).

Тем не менее, использование P-регулятора не позволяет решить задачу полностью: движение робота будет сильно зависеть от его конструкции, настроек регулятора и пр. Для достижения большей точности движенияробота по линии применимпропорционально-дифференциальный (PD) регулятор.

Задача движения робота по линии оптимальным образом решается именно с помощью PD-регулятора. Однако эффект от него проявляется только на больших скоростях, когда робот начинает терять траекторию. Сначала необходимо добиться стабилизации движения при нулевом дифференциальном коэффициенте. Когда робот начинает ехать по линии на одном P-регуляторе, теряя ее только на крутых поворотах, постепенно увеличиваем дифференциальную составляющую. Ее действие будет выражаться в резком сдерживании робота при попытке отклониться от курса. В результате робот должен идти по линии плавно без резких изменений направления движения.

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

Основное отличие - это присутствие кубического коэффициента. Формула для расчёта скорости в этом случае имеет следующий вид:

H+(L х0,0001), где H - базовая скорость моторов, L - данные с датчика отражения (analogRead()).

Итак, в ходе исследований регуляторов для платформы Arduino (мобильный робот) были зафиксированы различные результаты. Наилучший результат был получен в случае, когда применяется два датчика цвета управляющих двигателями с помощью PD-регулятора при движении на колёсах с передним приводом,как вдоль произвольной линии, так и на разветвлённых участках. Вместе с тем, были выделены особенности программирования роботизированных устройств на данной платформе, выявлены достоинства и недостатки. Вместе с тем отметим, опыт программирования роботов на платформе Arduinoпоказал, что, например, роботизированная платформа имеет низкую стоимость в сравнении с конструкторами Lego, но является немодернизируемой, требует высокого уровня знаний и уменийв области программирования (язык программирования Си,графические языки FBD и LAD, которые являются стандартом в области программирования промышленных контроллеров), основ микроэлектроники и схемотехники.Зачастую при конструировании программно-аппаратных комплексов на АМшпосвязки «микроконтроллер - исполнительное устройство» не работают без дополнительных настроек и по готовым скетчам.Все эти проблемы не позволяют применятьплатформу Arduinoдля обучения робототехнике в школе.

ЛИТЕРАТУРА

1. Гордиевских, В.М. Роль робототехники в подготовке будущих инженеров-программистов [Текст] / В.М. Гордиевских // Вестник Шадринского государственного педагогического университета. - 2016. - № 2 (30). - С. 47-50.

2. Гордиевских, В.М. Микроконтроллеры LEGO EV3 и Arduino UNO как технологическая основа для курса робототехники в ВУЗе [Текст] / В.М. Гордиевских, А.А. Кораблев // Вестник Шадринского государственного педагогического университета. - 2016. - №3 (31). - С. 160-163.

3. Гордиевских, В.М. Развитие интереса школьников к механике и программированию средствами образовательной робототехники [Электронный ресурс] / В.М. Гордиевских, А.А. Кораблев // Непрерывное образование в XXI веке: проблемы, тенденции, перспективы развития : в 4 ч. : материалы междунар. науч.-практ. конф., 28 окт. 2016 г. - Шадринск : ШГПУ, 2016. - Ч. 1. Основные направления образования в современных условиях: теория и практика. - С. 121 -126. - Режим доступа: http://shgpi.edu.ru/biblioteka/katfree/302.pdf.

УДК 811.111

И.И.Грачева, Е.А. Макарова, г. Шадринск

Германизмы в английском языке

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

Английский язык, заимствования, германизмы, ассимиляция.

I.I. Gracheva, E.A. Makarova, Shadrinsk

German borrowingsin the English language

German borrowings in English are considered in this article. The role of borrowings in the development of English vocabulary, the place of germanisms among other borrowingsare disclosed. Special attention has been devoted tothe ways of occurrence of German borrowings in different historical periods and to the spheres of use.

Keywords: English, borrowings, germanisms, assimilation.

Заимствование - это процесс, в результате которого в языке появляется и закрепляется некоторый иноязычный элемент. Это неотъемлемая составляющая функционирования и исторического изменения языка, один из основных источников пополнения словарного запаса; также это полноценный элемент языка, являющийся частью его лексического богатства, служащий источником новых корней, словообразовательных элементов и точных терминов [4, c.86]. Заимствование слов является способом пополнения словарного состава языка, а также свидетельством взаимодействия и взаимопроникновения языков и культур. Пополнение и изменение словарного состава - явление естественное для любого языка, свидетельствующее о его развитии и отражении в нем изменений в жизни общества.

Более двух третей лексики английского языка составляют заимствования из других родственных и неродственных языков. Английский язык подобен «пылесосу, который

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.