Симулятор манипулятора: кинематика и планирование ROS
Исследуйте пределы суставов, прямую и обратную кинематику и безопасное планирование движения в браузерном симуляторе манипулятора.
- Категория
- ROS
- Время
- 3–6 hours
- Платформа
- Браузер · ROS 2
01 / Начните здесь
Введение
Манипуляторы превращают команды суставов в точное движение инструмента с помощью геометрии, обратной связи и планирования. Этот симулятор знакомит с этой цепочкой, не скрывая сложные части. Он показывает системы координат, достижимые позы, пределы суставов и сингулярности, чтобы пользователи ROS и студенты робототехники поняли, почему запрошенное движение выполняется или не выполняется.
Live lab / Forward & inverse kinematics · pick-and-place
Robot arm simulator
Pose the joints, drag a target and watch inverse kinematics solve it live, or set a pick-and-place task and run it — with honest reach, singularity, and limit reporting on a full 360° workspace.
The filled dot is the base at the centre; segments are links with round joints; the tool shows a small x/y frame. The shaded ring is the reachable workspace (between the two dashed circles). In inverse mode the cross-marker is the draggable target and the faint arm is the other elbow solution. In pick-and-place mode, drag the box (pick) and the dashed square (place), then press Run.
- Tool X
- 0 px
- Tool Y
- 0 px
- Tool angle
- 0°
- Status
- Reachable
- Reach
- 0 / 240 px
Keyboard: focus the workspace, then use Space to run a pick-and-place, R to reset, B to switch elbow, and F for full screen.
Управление
Симулятор предоставляет ползунки суставов, перетаскиваемую целевую точку инструмента, отображение систем координат и элементы управления размерами звеньев; основание расположено по центру, поэтому виден весь достижимый рабочий объём на 360°. Прямой режим вычисляет позу инструмента по заданным углам суставов. Обратный режим отслеживает перетаскиваемую целевую точку, находя углы суставов в реальном времени и сообщая о недостижимых или неоднозначных целях вместо самопроизвольной подстановки результата. Третий режим захвата и перемещения (pick-and-place) позволяет задать точку захвата и место назначения, а затем проводит манипулятор через всю задачу: он подходит к объекту, захватывает его, переносит и отпускает в зоне размещения — типовая задача, для которой создан каждый настоящий манипулятор.
Теория
Каждый сустав добавляет преобразование между системами координат. Перемножение этих преобразований от основания к инструменту даёт позу прямой кинематики. Обратная кинематика работает назад и может не иметь решения, иметь одно или несколько решений.
Близко к сингулярности небольшое движение инструмента может потребовать очень большого движения суставов. Планировщик также должен соблюдать ограничения на положение, скорость, ускорение, момент и столкновения. Одной геометрической достижимости недостаточно для безопасной траектории.
Алгоритм
- Определите длины звеньев, оси суставов, начальные преобразования и пределы суставов.
- Вычислите прямую кинематику для текущего состояния суставов.
- Сравните текущую позу инструмента с запрошенной целью.
- Используйте аналитический или численный решатель, чтобы уменьшить ошибку позы в пределах ограничений.
- Отбрасывайте кандидатов со столкновениями или сингулярностями и выбирайте непрерывное решение.
- Параметризуйте траекторию по времени и отправляйте синхронизированные уставки регуляторам суставов.
Исходный код
Плоская рука с двумя звеньями имеет компактную модель прямой кинематики:
from math import cos, sin
def forward_kinematics(theta_1, theta_2, link_1, link_2):
elbow = (link_1 * cos(theta_1), link_1 * sin(theta_1))
tool = (
elbow[0] + link_2 * cos(theta_1 + theta_2),
elbow[1] + link_2 * sin(theta_1 + theta_2),
)
return elbow, tool
Для физических рук проверяйте каждую запланированную траекторию в ограниченной среде с учётом столкновений до включения питания исполнительных механизмов.
Допущения и отличия от реального оборудования
Рука плоская, с двумя или тремя вращающимися суставами, абсолютно жёсткими звеньями, мгновенной реакцией по скорости и без гравитации, динамики или столкновений — вы можете переходить от локтя вверх к локтю вниз без ограничения момента. У настоящих сервоприводов есть пределы положения и скорости, люфт редуктора, момент с ограничением тока и провисание, зависящее от нагрузки, а рука с 6 осями вдобавок управляет ориентацией, сингулярностями и работой около пределов суставов. Эта лаборатория позволяет понять, почему цель внутри кольца может иметь два решения и почему цель на его границе сингулярна, прежде чем добавить динамику, которая делает такие позы трудными для удержания.
Схема соединений
Разделяйте питание силовых исполнительных механизмов и вычислительных устройств, сохраняя общую опорную схему и сигналы безопасности, необходимые выбранному оборудованию.
Управляемые эксперименты
Перетаскивание цели — самый быстрый способ развить интуицию о вещах, которые утомительно доказывать на бумаге и дорого обнаруживать на реальном оборудовании.
1. Определите форму рабочего объёма
Медленно перетаскивайте цель наружу, пока решатель не сообщит, что цель недостижима, затем обойдите всю границу. Теперь перетащите цель внутрь к основанию.
При разных длинах звеньев обнаружатся две границы: внешняя окружность на L1 + L2 и внутренняя на |L1 − L2|. Рабочий объём — кольцо, а не диск, и в его середине есть отверстие, которого рука физически не может достичь.
| Звенья | Внешний вылет | Внутреннее отверстие | Форма |
|---|---|---|---|
| 100 + 90 | 190 | 10 | Кольцо с малым отверстием |
| 100 + 50 | 150 | 50 | Кольцо с большим отверстием |
| 100 + 100 | 200 | 0 | Полный диск — равные звенья могут складываться друг на друга |
Последняя строка — действительно полезный проектный факт: равные длины звеньев полностью устраняют мёртвую зону. Если руке нужно работать рядом с основанием, это причина выбрать именно их.
2. Посмотрите, как два решения сливаются
Переключайтесь между ветвями «локоть вверх» и «локоть вниз» у цели около середины рабочего объёма: это две явно разные позы руки, достигающие одной точки.
Теперь перетащите цель наружу к границе. Позы сближаются, а при полном вытяжении становятся одинаковыми. Это сингулярность, место, где рука теряет способность перемещать инструмент в одном направлении независимо от действий суставов.
3. Почувствуйте цену сингулярности
Медленно и равномерно перетаскивайте цель по прямой, проходящей рядом с полным вытяжением. Следите за углами суставов, а не за рукой.
Инструмент движется с постоянной скоростью, а суставы — нет. Близко к границе небольшое движение инструмента требует огромного движения суставов, поэтому гладкая декартова траектория превращается в резкое движение суставов. На реальном оборудовании это сервопривод, ускоряющийся до предела.
Держите запланированные траектории примерно в пределах 95% максимального вылета, и симптом перестанет быть заметным.
4. Пересеките границу ветви и посмотрите на переключение
Настройте решатель всегда выбирать «локоть вверх», затем перетащите цель через область, где эта ветвь упирается в предел сустава и решатель переключается. Рука сделает большое, быстрое и совершенно незапланированное движение.
Поэтому правильный режим по умолчанию — минимальное движение: выбирайте ветвь, ближайшую к текущей позе, а не фиксированную ветвь. Тихая смена ветви в середине пути на настоящем оборудовании пугает и может быть разрушительной.
Что следует наблюдать
| Действие | Ожидаемый результат | Если видите другое |
|---|---|---|
Цель за L1 + L2 |
Аккуратное сообщение «недостижимо» | NaN или поза с резким скачком означает, что решатель слишком поздно проверяет достижимость |
Цель внутри |L1 − L2| |
Также недостижимо | Верно — это отверстие, а не ошибка |
| Цель за основанием | Достигается правильно | Если отражается, вместо atan используется atan2 |
| Переключение ветви локтя | Та же позиция инструмента, другие суставы | Оба решения допустимы; выбор за вами |
| Перетаскивание к границе | Скорости суставов резко растут | Это сингулярность |
| Туда и обратно через FK, затем IK | Исходные углы возвращаются | Несовпадение означает несогласованность знака или начальной системы отсчёта |
Переход к реальному оборудованию
Геометрия переносится точно. Больше ничего не переносится, и именно в этом промежутке проходит время первой сборки руки:
| Эта лаборатория | Настоящая сервоприводная рука |
|---|---|
| Суставы точно идут в заданные положения | Нулевое положение сервопривода определяется установкой рычага; некоторые вращаются не в ту сторону |
| Нет гравитации | Плечо провисает при вытяжении, хуже всего там, где точность наиболее важна |
| Нет люфта | Несколько градусов хода, проявляющиеся при каждом изменении направления |
| Мгновенное движение | Заданный скачок выполняется на полной скорости со всплеском тока |
| Идеальные длины звеньев | Измеряйте между осями суставов, а не краями кронштейнов |
| Бесконечный момент | SG90 при 58% предельного момента не удержит положение точно |
Два числа показывают суть. Четыре градуса хода в плече при вылете 190 mm дают более 13 mm люфта на захвате — больше любой ошибки, вносимой математикой. А длина звена, измеренная на 10 mm больше для звена 95 mm, даёт систематическую ошибку 10%, которую не устранит никакая настройка.
Практическое следствие: точность оборудования обеспечивается калибровкой и постоянным направлением подхода, а не более сложной кинематикой. Всегда подходите к цели с одного направления, и люфт станет повторяемым смещением, которое можно вычесть. Полный решатель с обработкой всех случаев отказа приведён в обратной кинематике руки с двумя звеньями.
Список оборудования
Компоненты
- Роботизированная рука с тремя или большим числом осей
- Контроллер, способный синхронно обновлять суставы
- Обратная связь суставов или интеллектуальные сервоприводы
- Жёсткое основание и определённая центральная точка инструмента
- Аварийный останов и источник питания с ограничением тока
Исследуйте граф
Где используется этот симулятор
Проекты, учебные пути и руководства, которые опираются на эту лабораторию.
Продолжайте сборку
Материалы для загрузки
Пользуйтесь этими справочными материалами на странице, пока работаете над проектом. Загружаемые пакеты проекта появятся только после публикации их исходников и версии.
Частые вопросы
Часто задаваемые вопросы
Чем прямая кинематика отличается от обратной?
Прямая кинематика вычисляет позу инструмента по известным значениям суставов. Обратная кинематика начинает с желаемой позы инструмента и ищет одну или несколько конфигураций суставов, которые её обеспечивают.
Почему у руки с 2 звеньями два решения (локоть вверх и локоть вниз)?
Для большинства достижимых целей локоть может согнуться в любую сторону и всё же поставить инструмент в ту же точку, давая конфигурации «локоть вверх» и «локоть вниз». Два решения возникают из знака «плюс-минус» в формуле теоремы косинусов для второго сустава. Они совпадают только в сингулярности, когда рука полностью вытянута или полностью сложена.
Как выбрать между локтем вверх и локтем вниз?
Выберите конфигурацию, безопасную и эффективную для задачи: чтобы суставы оставались подальше от пределов, движение от текущей позы было минимальным или препятствия обходились. Этот симулятор позволяет переключаться между ветвями и показывает альтернативное решение полупрозрачным силуэтом, чтобы компромисс был виден.
Что такое сингулярность роботизированной руки?
Сингулярность — конфигурация, в которой рука теряет способность перемещать инструмент в некотором направлении, обычно когда она полностью вытянута или полностью сложена. Близко к сингулярности небольшое движение инструмента может потребовать очень большого движения суставов, поэтому планировщики замедляются или обходят эти позы. Здесь же решения «локоть вверх» и «локоть вниз» сливаются в одно.
Когда у обратной кинематики нет решения?
Целевая точка плоской двухзвенной задачи достижима только внутри кольца между наименьшим вытяжением (разностью длин звеньев) и наибольшим (их суммой). Точка за пределами этого кольца недостижима при любых углах суставов. Поза также может быть недостижимой из-за запрещённого угла сустава, ориентации, которую доступные суставы не могут обеспечить, или столкновения руки с самой собой.
Зачем использовать аналитическую обратную кинематику вместо численного решателя?
Для плоской руки с двумя или тремя звеньями геометрия имеет замкнутое (аналитическое) решение, поэтому точные углы суставов можно вычислить напрямую, детерминированно и быстро — идеально для обучения и проверки. Численные решатели нужны для избыточных или пространственных рук, где нет замкнутой формы, но они итерируют, могут пропускать решения и труднее поддаются анализу.
Дополнительные материалы
Источники
Авторитетные источники, чтобы пойти глубже ограниченной учебной модели этого симулятора.