Руководство · Начальный · 25 min

Омни-приводы: Omni, Mecanum и Swerve

Что означает омни-привод, почему робот с дифференциальным приводом не может ехать боком и как сравнить omni, mecanum и swerve по сцеплению и цене.

Слово и его цена

У робота на плоском полу есть три степени свободы: он может иметь координаты x и y и быть направлен под углом θ. Именно это означает положение на полу.

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

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

У робота с дифференциальным приводом та же проблема проявляется мягче. Он может вращаться на месте, что автомобиль не может, поэтому у него всего две управляемые скорости — движение вперёд и вращение — на три степени свободы. Бокового движения нет. Чтобы переместиться на 20 cm влево, ему нужно повернуться, проехать и повернуться обратно; это занимает время, которого у него может не быть, и стоит точности курса, которой он не всегда может пожертвовать.

Омни-привод просто едет влево.

Почему это важнее, чем кажется

Фраза «может ехать боком» звучит как фокус. На самом деле это окупается так:

  • Тесные пространства. Роботу, которому никогда не нужно место для разворота, достаточно прохода ровно по своей ширине. Складские AGV используют mecanum именно по этой причине и никакой другой.
  • Удержание курса во время движения. Камера, стойка датчиков или захват должны сохранять направление, пока основание меняет положение. Неголономные приводы вообще так не умеют.
  • Независимое следование по пути. Регулятор pure pursuit на дифференциальном основании должен выбирать между ошибкой положения и ошибкой курса, потому что они используют один исполнительный механизм. Омни-основание управляет каждой осью отдельно.
  • Коррекции, не стоящие курса. Сместились на 3 cm от линии — омни-робот делает шаг на 3 cm назад. Дифференциальному роботу нужно выйти дугой и вернуться дугой, и на скользком полу именно эти две лишние дуги создают ошибку. В симуляторе квадрат, движущийся боком по жирному полу, заканчивается с курсом ровно 0.0°, потому что поворот ни разу не запрашивался; тот же квадрат, движущийся поворотами на углах, заканчивается на десятки градусов и затем едет каждое следующее звено в неправильном направлении. Каждый разворот — ещё один шанс потерять курс, а омни-робот его не использует.

Там, где это не окупается: всё, что должно толкать, взбираться или пересекать порог. Каждое омни-колесо жертвует сцеплением ради свободы.

Четыре варианта

Дифференциальный привод — базовый вариант

Два приводных колеса и один опорный каток. Это не омни-привод, но для большинства роботов он по-прежнему является правильным ответом: всё сцепление обычного колеса, два двигателя и тридцать лет библиотек, предполагающих именно такую геометрию.

Колёса omni в схеме X («X-drive»)

Четыре колеса omni — ролики под углом 90° к колесу, а не 45° — установлены по четырём углам и каждое повёрнуто на 45° так, чтобы направление качения было вдоль диагонали к соответствующему углу. Каждое колесо толкает по диагонали; четыре диагонали складываются в любой вектор.

  • Это диаграмма скоростей mecanum, повёрнутая на 45° и увеличенная в √2 раза. Оба привода могут достигать ромбовидного множества скоростей: у mecanum быстрые направления — прямо вперёд и прямо вбок, у X-drive — диагонали шасси. При одинаковой скорости обода X-drive едет вперёд в 1.41× быстрее — и создаёт в √2 раза меньше силы. Это передаточное число, а не бесплатный обед.
  • Компоновка неудобна. Колёса стоят под 45° к шасси, что расходует место по углам и обычно вынуждает использовать прямой привод.
  • Сцепление слабое, а колёса хрупкие: маленькие ролики и маленькое пятно контакта.

Mecanum — ролики под 45°

Четыре колеса, похожие на обычные, установлены обычным образом, а 45° скрыты внутри колеса. Два левых и два правых, расположенные по схеме X.

  • Имеет компоновку обычного привода. Именно поэтому на практике mecanum выигрывает у X-drive.
  • Вперёд и вбок одинаково быстры; скорость по диагонали составляет 1/√2. Команда под 45° требует от двух колёс всего, а от двух — ничего, поэтому максимальная скорость робота составляет 71% его прямолинейной скорости. (У X-drive такое же ограничение 71%, только для другой пары направлений.)
  • За сцепление приходится платить 1/√2. Направление результирующей силы на полу фиксировано под 45°, трение ограничивает весь вектор, и полезна только составляющая вдоль направления качения.
  • Толкающая способность плохая. База mecanum проигрывает соревнование на толкание роботу с обычными колёсами той же массы каждый раз.

Swerve — рулится каждое колесо

Четыре модуля, у каждого есть приводной двигатель и рулевой двигатель. Направьте все четыре как угодно и двигайтесь.

  • Омни-привод с полным сцеплением. Никаких роликов, угла 45° или потерь. Это единственный вариант в списке, который не меняет сцепление на свободу.
  • Восемь двигателей, восемь энкодеров, скользящие контакты или прокладка кабелей и система управления с настоящими сингулярностями. Примерно в четыре раза больше работы, чем mecanum, для робота, который делает те же три вещи быстрее и сложнее.

Честное сравнение

Скорости указаны относительно собственной максимальной прямолинейной скорости каждого привода, кроме строки «скорость относительно скорости колеса», где все сравниваются на одинаковых двигателях и колёсах.

Дифференциальный Omni X-drive Mecanum Swerve
Голономный Нет Да Да Да
Двигатели 2 4 4 8
Скорость вбок — 100% 100% 100%
Скорость по диагонали — 71% 71% 100%
Скорость вперёд от скорости колеса 100% 141% 100% 100%
Сцепление по сравнению с обычными колёсами 100% 71%, и хуже из-за резины 71% до учёта резины роликов ~100%
Местность Хорошая Только плоская Только плоская Хорошая
Одометрия по приводным колёсам Приемлемая Плохая Плохая Приемлемая
Компоновка Простая Неудобная Простая Сложная
Стоимость и время сборки ★ ★★ ★★ ★★★★★

Только swerve выходит за пределы ромба: поскольку он может направить все колёса одинаково, достижимые скорости образуют полный круг, поэтому ни одно направление не стоит ничего. Каждый привод с роликами покупает боковое движение вектором силы под 45° и дважды платит за это √2.

График боковой скорости в зависимости от передней скорости в метрах в секунду, показывающий все скорости, доступные роботу mecanum с колёсами 0.60 метра в секунду. Достижимое множество — закрашенный голубой ромб с вершинами на плюс и минус 0.60 по каждой оси. Для сравнения нарисована пунктирная серая окружность радиусом 0.60 с подписью «без потери на направление». Янтарные маркеры находятся на 0.60 метров в секунду вперёд и 0.60 метров в секунду вбок в вершинах ромба, а красный маркер на диагональной грани подписан 0.424 метра в секунду на диагонали.
Почему у каждого привода с роликами есть быстрые и медленные направления. Ромб mecanum имеет вершины на осях шасси; у X-drive та же форма повёрнута на 45° и увеличена в √2 раза. Только swerve получает круг. Скачать SVG

Как выбрать

Короткий путь решения, который чаще всего даёт правильный результат:

  1. Нужно ли ему двигаться боком или удерживать курс во время движения? Нет → дифференциальный привод. Остановитесь здесь; вы только что сэкономили два двигателя, четыре провода и месяц.
  2. Пол всегда плоское, твёрдое и чистое? Нет → дифференциальный привод или swerve, если бюджет позволяет.
  3. Нужно ли ему толкать, буксировать или сдвигать что-либо? Да → не mecanum. Ограничение 71% действует ещё до учёта резины роликов, а реальные базы mecanum плохо выигрывают в соревнованиях на толкание.
  4. Компоновка тесная или робот должен выглядеть обычным? Да → mecanum. Нет → omni X-drive проще рассуждать, и на тех же двигателях его конструкция имеет более крупные габариты (1.41×).
  5. Это соревнование, где кто-то намеренно будет вас толкать? → swerve или примите, что вас будут толкать.

Чего омни-привод не даёт

Три вещи, которые люди ожидают, но не получают:

Он не улучшает одометрию. Он делает её хуже. Ролик, который проскальзывает, выполняет свою работу, поэтому колёсные энкодеры омни-основания измеряют колесо, а не пол ещё сильнее обычного. С самого начала заложите IMU или пассивные колёса без привода.

Он не отменяет необходимость планирования. Омни-робот всё равно должен обходить препятствия; у него просто больше способов это сделать. A* на сетке занятости и планирование покрытия работают так же, а путь становится легче проходить, а не искать.

Он не делает управление роботом интуитивным. Наоборот: человек, управляющий роботом, движущимся боком, примерно за десять секунд теряет представление о том, куда тот направлен. Решение — управление с ориентацией по полю, небольшой кусок математики и обязательный.

Далее

Математика, благодаря которой складываются все четыре вектора сил: кинематика колёс mecanum. Затем возьмите такой привод и попытайтесь сломать его в симуляторе привода mecanum — предустановка с жирным полом быстрее всего даёт почувствовать, насколько дорог омни-привод.

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

Входит в эти сборки

Проекты и учебные пути, в которые входит это руководство.

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

Источники