Руководство · Начальный · 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.
Как выбрать
Короткий путь решения, который чаще всего даёт правильный результат:
- Нужно ли ему двигаться боком или удерживать курс во время движения? Нет → дифференциальный привод. Остановитесь здесь; вы только что сэкономили два двигателя, четыре провода и месяц.
- Пол всегда плоское, твёрдое и чистое? Нет → дифференциальный привод или swerve, если бюджет позволяет.
- Нужно ли ему толкать, буксировать или сдвигать что-либо? Да → не mecanum. Ограничение 71% действует ещё до учёта резины роликов, а реальные базы mecanum плохо выигрывают в соревнованиях на толкание.
- Компоновка тесная или робот должен выглядеть обычным? Да → mecanum. Нет → omni X-drive проще рассуждать, и на тех же двигателях его конструкция имеет более крупные габариты (1.41×).
- Это соревнование, где кто-то намеренно будет вас толкать? → swerve или примите, что вас будут толкать.
Чего омни-привод не даёт
Три вещи, которые люди ожидают, но не получают:
Он не улучшает одометрию. Он делает её хуже. Ролик, который проскальзывает, выполняет свою работу, поэтому колёсные энкодеры омни-основания измеряют колесо, а не пол ещё сильнее обычного. С самого начала заложите IMU или пассивные колёса без привода.
Он не отменяет необходимость планирования. Омни-робот всё равно должен обходить препятствия; у него просто больше способов это сделать. A* на сетке занятости и планирование покрытия работают так же, а путь становится легче проходить, а не искать.
Он не делает управление роботом интуитивным. Наоборот: человек, управляющий роботом, движущимся боком, примерно за десять секунд теряет представление о том, куда тот направлен. Решение — управление с ориентацией по полю, небольшой кусок математики и обязательный.
Далее
Математика, благодаря которой складываются все четыре вектора сил: кинематика колёс mecanum. Затем возьмите такой привод и попытайтесь сломать его в симуляторе привода mecanum — предустановка с жирным полом быстрее всего даёт почувствовать, насколько дорог омни-привод.
Исследуйте граф
Входит в эти сборки
Проекты и учебные пути, в которые входит это руководство.
Дополнительные материалы