Движение по линии
Практическая работа № 3 «Использование датчиков»
Практическая работа № 4 «Движение робота по линии»
В последние годы проводятся многочисленные соревнования роботов, в том числе Всемирные олимпиады. Классические задачи спортивной робототехники — движение робота по линии. Мы рассмотрим только одну задачу этого типа: робот должен ехать вдоль границы между чёрной и белой полосами. Движением робота управляет микроконтроллер, который выполняет программу, заранее записанную в его память. Такое управляющее устройство называется регулятором.
Регулятор — это автоматическое управляющее устройство, которое следит за состоянием робота и посылает ему управляющие сигналы.
Для того чтобы «увидеть» границу между чёрной и белой полосами, робот использует один или несколько датчиков освещённости (рис. 1.8).
Рис. 1.8
Датчик освещает поверхность светодиодом и измеряет количество отражённого света. Чёрные предметы отражают меньше всего света, белые — больше всего.
Датчик освещённости выдаёт код в интервале от 0 до 255, где О означает полное отсутствие отражённого света, а 255 — полное отражение. Однако не существует идеально чёрных и идеально белых предметов. Даже полоса, которая кажется нам совсем чёрной, отражает немного света, поэтому датчик покажет на ней не 0, а, например, 10. Также и на белой полосе вместо 255 мы получим, например, 230. Среднее арифметическое между этими значениями называют «средним значением серого». Теоретически такой сигнал выдаёт датчик, когда он находится точно над границей чёрной и белой полос (рис. 1.9). К этому состоянию мы и будем стремиться.
Рис. 1.9
Определение среднего значения серого в конкретных условиях называется калибровкой датчика.
Пусть требуется, чтобы слева от робота была белая полоса, а справа — чёрная (как на рис. 1.8). Для управления мы будем использовать очень простой принцип, который называют релейным регулированием. Показания датчика большие, чем 120 (среднее значение серого), означают, что робот зашёл на белую полосу и нужно повернуть его вправо. Если датчик показывает меньше, чем 120, поворачиваем влево.
Используя дополнительные источники, узнайте, что такое реле. Откуда произошло это слово?
Запишите в тетради команды управления моторами для поворота влево и вправо. Мотор 0 находится с левой стороны робота, мотор 1 — с правой.
Получается такая программа, работающая в бесконечном цикле:
нц
если датчик[0]>120 то
мотор[0]:=100
мотор[1]:=0
иначе
мотор[0]:=0
мотор[1]:=100
все
кц
Если запустить такую программу, мы увидим, что робот движется зигзагом, рывками. Дело в том, что мы задали ему такой алгоритм — резкое переключение между двумя состояниями. Это и есть релейное регулирование.
Для более плавного движения нужно создавать вращающий момент, который зависит от ошибки, т. е. от того, насколько робот отклонился от линии. Чем меньше ошибка, тем меньше вращающий момент. Если ошибки нет (датчик выдаёт значение, равное среднему значению серого), подаём одинаковую мощность на оба мотора, робот едет прямо.
Можно использовать, например, такой алгоритм управления:
вещ k=0.5
нц
и:=k*(12 0-датчик[0])
мотор[0]:=50-u
мотор[1]:=50+u
кц
Изучите программу и определите, какой сигнал подаётся на моторы, когда датчик выдаёт значение: а) 100; б) 120; в) 140.
Выражение 120-датчик [ 0 ] — это ошибка управления, т. е. отклонение значения, полученного с датчика, от заданного значения 120. Сигнал управления и, который изменяет мощность моторов, пропорционален ошибке, поэтому такой регулятор называется пропорциональным, или П-регулятором.
Коэффициент k — это коэффициент усиления П-регулятора. Правила выбора коэффициентов в законах управления изучает теория автоматического управления. Мы же будем выбирать коэффициенты экспериментально, не углубляясь в теорию.
Чем больше k, тем сильнее реакция робота на ошибку; чем меньше k, тем более плавно движется робот. Но при малых значениях к его реакция замедлена, и он может потерять линию на повороте.
Проведите эксперимент (на тренажёре или с реальным роботом) и выясните, при каком наименьшем коэффициенте к робот проходит всю трассу.
Проведите эксперимент и выясните, что происходит при выборе слишком большого значения к. При каком наибольшем коэффициенте к робот выполняет задание?
По результатам экспериментов выберите наилучшее, на ваш взгляд, значение k.
Следующая страница Выводы