Компонент · Шасси

Комплект колёс Mecanum

Колесо mecanum создаёт тягу под 45°. Какое колесо левое, как проверять X и какое сцепление вы получаете при боковом движении.

Что это такое

Колесо mecanum — обычное колесо с кольцом свободно вращающихся роликов по ободу, причём ось каждого ролика установлена под 45° к оси колеса. Bengt Ilon запатентовал его в 1972 году в шведской компании Mecanum AB, откуда взялось название, и складские роботы с тех пор незаметно его используют.

Следствие наклона 45° составляет всю суть. Обычное колесо может создавать тягу только вдоль направления качения. Колесо mecanum — только вдоль оси ролика, поскольку ролик свободно вращается во всех остальных направлениях и просто отказывается передавать силу. Поэтому сила от одного колеса mecanum на земле постоянно направлена под 45° к шасси, независимо от команды двигателю.

Одно такое колесо бесполезно. Четыре колеса, два левых и два правых, дают четыре вектора сил под чередующимися углами 45°, и сумма четырёх векторов может направить робот в любую сторону пола и сообщить ему вращение. Это голономическая платформа: три управляемые степени свободы — движение вперёд, вбок и вращение — от четырёх обычных двигателей без рулевого управления.

Направление колеса

Колёса mecanum выпускаются в двух зеркальных исполнениях, обычно обозначаемых левое (A) и правое (B) либо просто метками L и R на ступице. Роботу нужны по два каждого, расположенных по диагонали:

Угол Направление Вектор силы при виде сверху
Передний левый Левое (A) При движении вперёд направлен вперёд-вправо
Передний правый Правое (B) Направлен вперёд-влево
Задний левый Правое (B) Направлен вперёд-влево
Задний правый Левое (A) Направлен вперёд-вправо

Диагональные углы имеют одинаковое направление. Покупка четырёх одинаковых колёс — реальная распространённая ошибка: «комплект из четырёх колёс mecanum» от надёжного продавца содержит по два каждого типа, но два одиночных заказа часто включают одинаковые.

Проверка X

Надёжная проверка вообще не требует меток.

  1. Поставьте робота на верстак колёсами вниз.
  2. Встаньте над ним и смотрите строго вниз.
  3. На каждом колесе проследите линию роликов, видимых сверху.
  4. Эти четыре линии должны быть направлены к центру робота и образовывать X.

Если образуется ромб, то есть конфигурация O, поменяйте местами два колеса по диагонали и проверьте снова.

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

Два вида сверху одного и того же четырёхколёсного робота с передней частью вверху. На верхней панели с заголовком «правильно, X: плечо поворота lx + ly равен 160 миллиметров» пунктирные голубые линии, продолженные от видимых роликов каждого колеса, пересекаются в центре робота и образуют X. На нижней панели с заголовком «неправильно, O: плечо поворота равен модулю lx − ly и составляет 10 миллиметров» те же линии от отмеченных красным колёс образуют вокруг робота ромб и не проходят через центр. Подпись предлагает встать над роботом и проследить видимые сверху ролики: четыре линии через центр, образующие X; всё остальное означает замену пары, а O в шестнадцать раз снижает поворотное плечо или полностью устраняет его при lx, равном ly.
Пятисекундная проверка сборки и стоящее за ней число. Компоновка X даёт каждому колесу поворотное плечо lx + ly; O даёт |lx − ly| — здесь в 16× меньше и полностью нулевое на квадратной платформе. Скачать SVG

Подключение четырёх колёс к Arduino

Mecanum — привод на четыре двигателя, поэтому одного L298N недостаточно. Нужны два двойных H-моста или одна четырёхканальная плата:

Колесо Драйвер Выводы направления Вывод PWM A/B энкодера
Переднее левое Драйвер 1, канал A 2, 4 3 18, 30
Переднее правое Драйвер 1, канал B 7, 8 5 19, 31
Заднее левое Драйвер 2, канал A 24, 26 6 20, 32
Заднее правое Драйвер 2, канал B 28, 22 11 21, 33

Две детали создают проблемы:

  • Четыре канала PWM с общим таймером не будут работать одновременно. На Uno шесть выводов PWM распределены по трём таймерам, а библиотека Servo или tone() займёт один. Mega или ESP32 снимают проблему; на Uno проверьте карту таймеров перед пайкой.
  • Четырём энкодерам нужны четыре вывода прерываний. У Uno их два. Это самая частая причина, по которой сборка mecanum переносится на Mega 2560 или ESP32.

Минимальный рабочий код

Обратная кинематика занимает четыре строки. Всё остальное — соединения и обмен данными.

// Mecanum inverse kinematics: a chassis command in, four wheel speeds out.
// x is forward, y is to the robot's LEFT, omega is counter-clockwise.
const float LX = 0.075;   // half the wheelbase, m
const float LY = 0.085;   // half the track, m
const float K  = LX + LY; // the only place geometry enters

void driveMecanum(float vx, float vy, float omega) {
  float fl = vx - vy - K * omega;
  float fr = vx + vy + K * omega;
  float rl = vx + vy - K * omega;
  float rr = vx - vy + K * omega;

  // Scale, do not clip. Clipping each wheel on its own keeps the speed and
  // throws the direction away, which is a bug you will chase for a week.
  float peak = max(max(fabs(fl), fabs(fr)), max(fabs(rl), fabs(rr)));
  if (peak > V_MAX) {
    float s = V_MAX / peak;
    fl *= s; fr *= s; rl *= s; rr *= s;
  }

  setWheel(FL, fl); setWheel(FR, fr);
  setWheel(RL, rl); setWheel(RR, rr);
}

setWheel() — место для контура скорости, если он есть. В разомкнутом режиме это просто запись PWM, но mecanum в разомкнутом контуре дрейфует; см. замыкание контура по скорости колёс.

Числа, которые имеют значение

Их три, и все три определяются геометрией, а не покупкой:

Величина Mecanum Обычные колёса Почему
Тяга по прямой 71% (1/√2) 100% Трение ограничивает весь вектор 45°; движение создаёт только его передняя составляющая
Предельное ускорение при μ = 0.85 5.9 m/s² 8.3 m/s² Одинаковое отношение; масса робота сокращается в обоих случаях
Максимальная диагональная скорость 71% максимальной скорости колеса н/д Команда 45° требует работы от двух колёс и ничего от двух других
Степени свободы 3 2 Ради этого колёса и покупают

Последняя строка — то, за что вы платите. Первые три — счёт.

Диагностика

Симптом Причина Исправление
Вперёд нормально, движение вбок поворачивает и вращает Колесо в неверном углу Выполнить проверку X; поменять два колеса по диагонали
Робот движется вбок в неверную сторону Все четыре колеса зеркально перевёрнуты — X вывернут наизнанку Поменять левую пару правой
При длинном движении по прямой слегка уходит в сторону Двигатели имеют разные характеристики под нагрузкой Замкнуть контур скорости для каждого колеса либо подобрать и откалибровать
Диагональное движение намного медленнее прямого Это неисправность, а нормальная работа Предел 1/√2; повысьте максимальную скорость или откажитесь от диагоналей
Робот дёргается и скрипит при боковом движении Ролики проскальзывают, а не катятся — слишком большое сцепление, малая нагрузка или заклинивший ролик Провернуть каждый ролик рукой; все должны вращаться свободно
Одометрия хороша вперёд и бесполезна вбок Ролики проскальзывают по конструкции, поэтому энкодер не измеряет пол Добавить IMU для курса и пассивные колёса для положения
Один угол звучит иначе Разрушился подшипник ролика Заменить ролик; заклинивший превращает угол в обычное колесо под 45°

Mecanum или альтернативы?

Вариант Движение вбок Тяга при толкании Местность Стоимость и сложность
Mecanum, 4 двигателя Да, в любом направлении и с любым курсом Плохая — 71% до учёта резины роликов Только ровные твёрдые полы 4 двигателя, 4 драйвера, 4 энкодера
Omni-колёса в схеме X, 4 двигателя Да — та же ромбовидная область, повёрнутая на 45° и выше в √2 раз Плохая, при той же скорости сила меньше в √2 раз Только ровные полы То же число двигателей, неудобная компоновка
Дифференциальный привод, 2 двигателя Нет — сначала нужно повернуться Лучшее на обычных колёсах Выдерживает значительно больше 2 двигателя, дешёвое, простое и надёжное решение
Swerve, 8 двигателей Да, при полном сцеплении Отличное Хорошее В четыре раза больше работы и стоимости

Честный итог: платформа mecanum — правильный ответ на ровном чистом полу, в тесном пространстве и когда робот должен сохранять курс во время движения: проход между стеллажами склада, соревновательная площадка, платформа камеры. Это неверный ответ, когда робот должен толкать, преодолевать подъёмы или определять своё точное положение только по колёсам.

Где применяется

Установите такие колёса под платформу — и получите всесторонне управляемого робота mecanum. Перед резкой металла проведите двадцать минут в симуляторе привода mecanum: неверная установка колеса там ничего не стоит, а именно такую ошибку вы с наибольшей вероятностью допустите.

Исследуйте граф

Используется в этих сборках

Проекты, учебные пути и симуляторы, в которых используется Комплект колёс Mecanum.

Сравнение

Альтернативы

Вопросы

Комплект колёс Mecanum: частые вопросы

Как определить, куда установить каждое колесо mecanum?

Поставьте робота на верстак, встаньте над ним и смотрите строго вниз. Проследите линию роликов, видимых сверху каждого колеса. На правильно собранной платформе эти четыре линии направлены к центру робота и вместе образуют X. Если они образуют ромб, то есть O, два колеса стоят не в тех углах. Проверка занимает пять секунд, не требует меток и выявляет самую частую ошибку сборки mecanum. Оттиски L и R на ступице помогают, но доверять следует проверке X, поскольку она проверяет действительно важные свойства.

Что произойдёт, если одно колесо mecanum установить наоборот?

Робот по-прежнему поедет, и именно это сбивает с толку. Движение вперёд и назад выглядит нормальным, поскольку боковые составляющие в основном компенсируются. Ломается движение вбок: неверно установленный угол создаёт силу поперёк команды, поэтому боковая команда превращается в медленную дугу с вращением. В симуляторе квадрат размером 17 mm для бокового движения при правильных четырёх колёсах с одним перевёрнутым колесом окажется более чем на метр от исходной точки и повернётся на десятки градусов. В коде ошибок нет, и никакая настройка ПИД-регулятора (PID) её не исправит. Признак на реальном роботе — невязка по данным энкодера: она меняется с нуля примерно на 0.28 и остаётся такой.

Нужны ли колёсам mecanum энкодеры?

Они нужны даже больше, чем роботу с дифференциальным приводом, но пользы от них меньше. Больше — потому, что четыре колеса должны сохранять соотношение скоростей, иначе робот поедет не туда, а двигатель, проседающий под нагрузкой, незаметно уводит его с траектории. Меньше — потому, что ролики проскальзывают по конструкции, поэтому энкодер колеса измеряет колесо, а не пол: боковая составляющая одометрии — наименее надёжное число робота. В серьёзных конструкциях mecanum энкодеры оставляют для контура скорости, а положение определяют по IMU или свободным omni-колёсам без привода.

Почему робот на колёсах mecanum так легко сдвигают?

Потому что колесо mecanum может передавать тягу только вдоль оси ролика, расположенной под 45° к направлению движения. Трение ограничивает весь вектор сил, но перемещать робот будет только составляющая вдоль направления качения, поэтому получается 1/√2, около 71% сцепления обычных колёс на том же роботе и полу. Сцепление резины роликов обычно выше, чем можно предположить, но геометрическая потеря реальна, и настройки для её устранения нет. Если толкание важно, не используйте колёса mecanum.

Можно ли использовать колёса mecanum на ковре или на улице?

Ковёр подходит, но снижает скорость и точность: ролики утопают вместо скольжения, поэтому боковое движение становится шумным, а одометрия ухудшается. На улице использовать нельзя. Гравий, трава и любой порог заклинивают ролик или полностью останавливают его, а заклинивший ролик превращает этот угол в обычное колесо, направленное на 45° в сторону, то есть снова приводит к отказу с перевёрнутым колесом, но периодически. Колёса mecanum предназначены для ровных, твёрдых и чистых полов — именно таких, как в складах и на соревновательных площадках.

Сколько двигателей нужно роботу mecanum?

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

Дополнительные материалы

Источники