Найти в Дзене

mBot2 #14. Движение по линии. Релейный регулятор.

Ну вот, настало время покататься по линии. И нам потребуется какой-то регулятор. В робототехнике регулятором называют программный (или аппаратный) элемент, который поддерживает некоторое (желаемое автором программы) состояние робота или его системы управления, сравнивая данные с датчиков (реальное состояние) с заданным целевым значением и создавая управляющее воздействие на привод (например, моторы), чтобы устранить отклонение. Вот в нашем случае и есть желаемое состояние - робот должен двигаться над линией и следовать за ее изгибами. Простейший регулятор - релейный. Релейный регулятор – это тип регуляторов, который может
вырабатывать ограниченное количество вариантов (положений регулятора)
движения, обычно от 2 до 4. Говоря проще – он не умеет работать плавно.
Если, например, количество положений в регуляторе 2, то такой регулятор
называют двухпозиционный, если 3, то трёхпозиционный и т.д. И, несмотря на то, что mBot2 и его среда программирования позволяют использовать куда более

Ну вот, настало время покататься по линии. И нам потребуется какой-то регулятор.

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

Вот в нашем случае и есть желаемое состояние - робот должен двигаться над линией и следовать за ее изгибами.

Простейший регулятор - релейный.

Релейный регулятор – это тип регуляторов, который может
вырабатывать ограниченное количество вариантов (положений регулятора)
движения, обычно от 2 до 4. Говоря проще – он не умеет работать плавно.
Если, например, количество положений в регуляторе 2, то такой регулятор
называют
двухпозиционный, если 3, то трёхпозиционный и т.д.

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

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

Пример на уровне обычного автомобиля. Представьте себе, что вы задали его автопилоту некоторое минимальное расстояние до едущих впереди автомобилей. Например - 10 м. И в данном случае простым релейным регулятором будет вариант с двумя состояниями: остановится и ехать (с определенной скоростью). Как вам понравится такое движение? Автомобиль будет то резко останавливаться, то набирать скорость. Так, рывками и поедем. Ну да, по хорошему надо плавно менять скорость в зависимости от расстояния... Но это уже будет совсем другой регулятор).

Соберем простую программу, в которой регулятор будет опираться на показания всего двух "центральных" датчиков Quad RGB Sensor, на R1 и L1.

Вы можете по разному реализовать данное движение, используя различные блоки (например - Если... иначе). Но самый простой вариант:

Все понятно прямо по блокам. 2 сенсора видят линию - едем вперед, один сенсор видит, второй нет - выдаем соответствующее управляющее воздействие.

Попробуйте так покататься по линии, например, по комплектному полю.

-2

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

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

-3

Тогда можно использовать в условиях еще несколько вариантов состояния робота на линии.

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

Если вы проведете много экспериментов, то можно подобрать некоторые более-менее оптимальные параметры, при которых робот будет довольно быстро проходить данную трассу. Но от рывков влево-вправо вы так и не избавитесь. Это особенность релейного регулятора, от которой никуда не деться. Да, в некоторых случаях, когда требуется просто действие (например, включить свет фар вечером) его вполне можно применять, но для "автопилота" и плавного движения - не самый удачный выбор. В следующий раз попробуем что-нибудь более интересное.

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

Все, до новых приключений! Удачи в экспериментах)))

Ранее в цикле: