Базовые движения
Теория
В данном уроке мы научимся программировать тележку(робота) на движение вперед и назад с использованием разных значений для управления (время, обороты и градусы). Тележка должна быть собрана на базе 4х моторов с энкодерами и 4х mecanum-колес, в дальнейших примерах мы будем изучать эту стандартную модель набора, пример см.рис.1.
Рисунок 1. - Пример сборки робота
Mecanum Колесо - роликонесущее колесо, позволяющее мобильному роботу двигаться в любом направлении на плоскости т.е совмещать линейное и вращательное движения.
Конструкция представляет собой колесо, на котором смонтировано несколько роликов, установленных на протяжении всей окружности колеса. Угол вращения роликов составляет 45° между ними и осью колеса.
Путём изменения направления и скорости вращения отдельных колёс можно заставить робота на mecanum колёсах двигаться в любом направлении — не только вперёд-назад, но и вправо-влево, и по диагонали, и даже по любой дуге, вплоть до вращения машины вокруг собственной оси. При этом трения скольжения между роликами и опорной поверхностью практически не будет.
В тележках(роботах) собранных на базе mecanum-колес принцип движения очень прост, он состоит в правильном и последовательном включении моторов и смене направлений вращения колес.
На рисунке ниже будет отображена схема движения такого робота, мы с вами рассмотрим в этом уроке движение вперед и назад, соответственно относительно схемы движения будет написан и алгоритм управления.
Рисунок 2. - Пример управления направлениями робота
Обратите внимание что красными стрелками показаны направления вращения колес и соответственно ими задается все движение тележки.
Помимо этого на рисунке отображено расположение колес и отображены направления их роликов, учитывайте направления роликов при сборке тележки.
Наша схема управления описана в верхнем левом углу рисунка - это движение вперед, соответственно как показано на рисунке нам необходимо запустить все моторы в одном направлении движения, в таблице описано в каком направлении вращения нам необходимо запустить колеса для нужного нам движения:
Таблица 1.
Движение вперед |
Левая сторона |
Правая сторона |
Верхние колеса |
Против часовой стрелке |
Против часовой стрелке |
Нижние колеса |
По часовой стрелке |
По часовой стрелке |
Для движения тележки назад, необходимо отзеркалить направления вращения колес, смотрите в табл. ниже:
Таблица 2.
Движение назад |
Левая сторона |
Правая сторона |
Верхние колеса |
По часовой стрелке |
По часовой стрелке |
Нижние колеса |
Против часовой стрелке |
Против часовой стрелке |
Практика
Для отработки движений представленных в теории, нам нужно составить программу для управления моторами. Схема запуска моторов для отработки движения вперёд соответствует схеме приведённой в таблице 1. Нам понадобятся следующие блоки:
Раздел “События”
- “Когда контроллер запущен” х1
Раздел “Управление”
- “Всегда” х1
- “Ждать до” х1
- “Подождать 1 сек” х1
Раздел “Модули”
- “Установить скорость 1 мотора в значение 50” х8
- “Блок управления на 1 порту” х2
Раздел “Контроллер”
- “Когда SW1 нажата” х1
Для начала соединим блоки “Когда контроллер запущен” и “Всегда”. Внутрь блока “Всегда” помещаем блок “ждать до”. И в качестве условия, внутри блока “ждать до”, добавляем блок “Когда SW1 нажата”. Таким образом после загрузки программы, тележка (робот) будет ждать нажатия кнопки, и сразу не поедет.
Далее нужно составить блок для запуска моторов, и указать в них правильное направление. Для смены направления вращения моторов, необходимо указать отрицательное значение. И так добавляем блок “Блок управления на 1 порту”, меняя порт на тот, к которому подключён блок стабилизатор (в моем случае это 5 порт). Далее внутрь блока “Блок управления на 5 порту”, добавляем 4 блока “Установить скорость 1 мотора в значение 50”. У каждого блока “Установить скорость 1 мотора в значение 50” меняем номер мотора, так чтобы получилось 4 разных мотора. Далее у 2-го и 3-го моторов, меняем значение с “50”, на “-50”, таким образом мы заставляем их вращаться в обратном направлении.
Теперь добавляем блок “Подождать 1 сек” и меняем значение на 5. После этого блока нам нужно остановить моторы, для этого добавляем блок “Блок управления на 1 порту”, не забывая поменять номер порта (в моем случае это 5 порт). И внутрь блока “Блок управления на 5 порту”, добавляем 4 блока “Установить скорость 1 мотора в значение 50”. У каждого блока “Установить скорость 1 мотора в значение 50” меняем номер мотора, так чтобы получилось 4 разных мотора. И у всех блоков, значение меняем с “50” на “0”.
Таким образом мы создали программу для управления тележкой (роботом). Чтобы отработать движение назад нужно внутри первого блока “Блок управления на 5 порту”, изменить значения у блоков “Установить скорость 1 мотора в значение 50”, так же как указано в таблице 2. Для моторов вращающихся по часовой стрелке установить значение 50, для моторов которые должны вращаться против часовой стрелки установить значение -50. Пример для движения назад:
Аналогичным образом можно составить программу для отработки остальных движений согласно рисунку 2 из теории. При выборе направления вращения мотора, не забывайте учитывать, что при сборке, 2 и 3 моторы, были перевёрнуты, соответственно для них направление инвертировано. То есть если в схеме указано направление вверх (по часовой стрелке), то для этих моторов нужно выбрать направление против часовой стрелки.
Пример для движения вправо:
Пример для движения влево:
В этом уроке мы научились использовать моторы для движения, с помощью Mecanum колес. Так же мы научились собирать простого робота-тележку, для движения с помощью моторов, и собирать схему для управления роботом.