Библиографическое описание:

Рядчиков И. В., Синица С. Г., Брагин Б. О., Шепилов В. В., Пузановский К. В. Создание робота автономного движения по линии [Текст] // Технические науки: проблемы и перспективы: материалы III междунар. науч. конф. (г. Санкт-Петербург, июль 2015 г.). — СПб.: Свое издательство, 2015. — С. 19-25.

Ключевые слова: конкурс робототехники, автономное движение по линии, ПИД регулятор, А-мега.

 

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

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

Именно данная цель была поставлена перед участниками соревнований по робототехнике «KubSU-robotics 2014» г. Краснодара. Наша команда принимала участие в категории «Линия». Нашей задачей было разработать робота, который должен самостоятельно за наименьшее время пройти трассу. Трасса была разработана Санкт-Петербургским Государственным Политехническим Университетом (рис. 1). Длина трассы составляет 12 м.

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

Рис. 1. Трек дисциплины «Гонки по линии»

 

Для начала было решено, что в качестве процессора будет использована плата Arduino Mega 2560 ввиду своей надежности и быстродействия (рис.2).

Рис. 2. Плата Mega 2560

 

В качестве источника питания использовался литий-полимерный аккумулятор напряжением 12 В и ёмкостью 2 200 мАч.

Была использована стандартная для таких видов соревнований колёсная схема с двумя ведущими колесами, расположенными сзади и одной шаровой опорой [1]. Привод колёс осуществляется двумя мотор-редукторами по одному на каждое колесо, развивающими 290 об/мин на выходе при подаче на них напряжения в 6 Вольт. Ведущие колёса представляют собой автомодельные колёса с шиной диаметром 120 мм и шириной шины 60 мм.

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

Несущая конструкция робота была изготовлена из ПВХ плиты толщиной 8 мм, что позволило снизить вес робота без потери прочности несущей конструкции. Так же были использованы различные детали из набора робототехнического конструктора

«Robo Trick» (крепления двигателей, передняя шаровая опора, крепления линейки датчиков). Снимок робота представлен на рисунке 3.

Рис. 3. Конструкция робота

 

Далее необходимо было разместить на роботе систему распознавания линии. Для этого была использована линейка датчиков, составленная из пяти плат-датчиков промышленного производства «Eb-Line finder». Плата датчик представляет из себя плату со смонтированными на ней двумя инфракрасными парами, работающими на отражении. Так же на плате расположен аналоговый компаратор, который переводит аналоговый сигнал с каждого датчика в цифровой «0» или «1» и переводит этот сигнал на выход. Схема алгоритма работы платы-датчика представлена на рис.4 [3].

Рис. 4. Схема работы платы-датчика

 

Перейдем к описанию программы. Схема работы этапов представлена на рисунке 5. Работа программы состоит из следующих этапов:

1.                  Производится считывание данных с датчиков.

2.                  На основании полученных данных с датчиков, производятся математические расчёты и определяются значения коэффициентов для датчиков.

3.                  На основании полученных коэффициентов подается соответствующий сигнал на драйвер, который управляет работой двигателями.

Рис. 5. Схема работы программы

 

Рассмотрим каждый из этапов работы.

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

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

1.                  Нахождение суммы массива.

2.                  Если сумма массива меньше 10, то соответственно робот находится на линии, следовательно, робот находится на линии, иначе запускается алгоритм поиска линии.

3.                  Присвоение весового коэффициента каждому датчику. Чем датчик дальше от центра, тем коэффициент больше.

4.                  Вычисление центра суммы значений датчиков и перерасчет с весовыми коэффициентами. Производится получение точного значения отклонения от линии.

5.                  Расчёт упреждения ПИД-регулятором (пропорционально-интегрально-дифференциальный регулято) по 4 итерациям.

6.                  После вычитания из максимально возможного коэффициента тяги значения упреждения, получаем момент тяги для каждого колеса.

Краткая схема работы алгоритма представлена на рисунке 6.

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

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

Вывод результата. Вывод результата осуществляется стандартным способом с помощью ШИМ, и сигнал передается на драйвер. Драйвер соответственно усиливает полученный сигнал и подает необходимый ток на двигатели [4].

Итог. В результате робот устойчиво держится на трассе, а в случае ухода с линии, немедленно возвращается на неё. Полосу препятствий, представленную на рисунке 1 робот проходит со скоростью 1 м/с за 12 секунд. Благодаря достигнутым данным показателям наша команда заняла первое место на соревнованиях по робототехнике по данной дисциплине.

Рис. 6. Алгоритм вычисления центра линии

 

Рис. 7. Алгоритм поиска линии.

 

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

 

Литература:

 

1.      Филиппов С. А. Робототехника для детей и родителей. — СПб.: Наука, 2013. 319 с. ISBN 978–5-02–038–200–8

2.      Макаров И. М., Топчеев Ю. И. Робототехника: История и перспективы. — М.: Наука; Изд-во МАИ, 2003. — 349 с. — (Информатика: неограниченные возможности и возможные ограничения). — ISBN 5–02–013159–8.

3.      Соммер У. Программирование микроконтроллерных плат Arduino/Freeduino. М.: БХВ-Петербург, 2012. — 256 с. — (Электроника). — ISBN978–5-9775–0727–1.

4.      Сайт энциклопедии «Амперика/Вики». http://wiki.amperka.ru/

Обсуждение

Социальные комментарии Cackle