Движение по линии
Теория
Движение по линии часто используется для движения мобильных роботов по заданному маршруту, с минимальными отклонениями от него. Такой вид движений используется, например, на складах или роботизированной производстве. При таком движении робот оснащён 1 датчиком линии, или несколькими датчиками цвета. Суть алгоритма заключается в следующем: датчик линии устанавливается так, что его центр попадает на чёрную линию, а два крайних сенсора, выходят за пределы линии. Далее робот сравнивает показания со всех сенсоров, и когда один из крайних сенсоров попадает на чёрную линию, тогда ведущее колесо с этой стороны робота замедляется, и робот начинает поворот.
Рисунок 1. - Сборка мобильного робота.
У данного робота 2 ведущих колеса с моторами, два упорных шарика, которые заменяют свободно вращающиеся колеса. Данные шарики имеют преимущества перед свободными колёсами, так как они обеспечивают меньшее сопротивление при движении и особенно при поворотах. Так же на этом роботе установлен датчик линии с 3 сенсорами (рис. 2). Для алгоритма движения, мы будем сравнивать значения крайних сенсоров с значением центрального, чем меньше будет отклонение, тем медленнее будет вращаться мотор. Таким образом, когда робот будет подъезжать одной из сторон ближе к линии, эта сторона будет замедляться, и соответственно робот будет поворачивать и выравниваться
Рисунок 2. - Датчик линии.
Практика
Для начала составим два уравнения описанных выше. Значение s2 отвечает за центральный сенсор, s1 за левый сенсор и s3 за правый сенсор. Берём блок “ - ” и в качестве первого аргумента ставим “Значение s1 с датчика линии на 1 порту”, тут указываем значение с центрального сенсора (s2), не забывая указать порт на котором стоит датчик, в качестве второго аргумента ставим “Значение s1 с датчика линии на 1 порту”, но теперь указываем значение с левого сенсора (s1), и так же не забываем указать порт. После чего все это уравнение ставим в качестве первого аргумента блока “ / ”, в качестве второго аргумента вписываем значение 200. Теперь аналогично составляем второе уравнение, но у второго аргумента блока “ - ” ставим значение правого сенсора (s3), в остальном повторяем все тоже самое.
Теперь напишем программу для движения робота. Для этого нужно соединить блоки “Когда контроллер запущен” и “Всегда”. Внутрь блока “Всегда” ставим блок “Блок управления на 1 порту”, указывая порт к которому подключён блок стабилизатора. Внутрь этого блока добавляем два блока “Вращать мотор 1 со скоростью 50 об/мин”, не забывая поставить соответствующие номера моторов.
Осталось только поставить уравнения в соответствующие им скорости моторов, таким образом программа будет постоянно считывать и обновлять скорость моторов, регулируя поворот машинки.
В этом уроке мы изучили алгоритм движения по линии, а также создали программу для автоматической корректировки скорости моторов. Также научились использовать датчик линии для решения задачи движения по траектории на практике.