Интерактивный симуляторПродвинутый

Симулятор манипулятора: кинематика и планирование ROS

Исследуйте пределы суставов, прямую и обратную кинематику и безопасное планирование движения в браузерном симуляторе манипулятора.

Категория
ROS
Время
3–6 hours
Платформа
Браузер · ROS 2
Техническая схема: Симулятор манипулятора: кинематика и планирование ROSREACHABLE WORKSPACE

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.

Browser native
A planar robot arm kinematics simulator. Use the controls below to move the joints, drag a target, or run a pick-and-place task, or read the full theory and algorithm after this lab.

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.

Run

Forward mode. Drag the joint sliders to pose the arm.

Joints
Geometry & target
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) позволяет задать точку захвата и место назначения, а затем проводит манипулятор через всю задачу: он подходит к объекту, захватывает его, переносит и отпускает в зоне размещения — типовая задача, для которой создан каждый настоящий манипулятор.

Теория

Каждый сустав добавляет преобразование между системами координат. Перемножение этих преобразований от основания к инструменту даёт позу прямой кинематики. Обратная кинематика работает назад и может не иметь решения, иметь одно или несколько решений.

Достижимый рабочий объём плоской руки с двумя звеньями. Затенённое кольцо между внутренней и внешней пунктирными окружностями показывает все точки, которых может достичь инструмент. Одна цель внутри кольца достигается двумя конфигурациями руки: «локоть вверх» и «локоть вниз» из одной точки основания.
Цель внутри достижимого кольца обычно имеет два решения — локоть вверх и локоть вниз, — а точки за внешним радиусом или внутри внутреннего радиуса недостижимы. Скачать SVG

Близко к сингулярности небольшое движение инструмента может потребовать очень большого движения суставов. Планировщик также должен соблюдать ограничения на положение, скорость, ускорение, момент и столкновения. Одной геометрической достижимости недостаточно для безопасной траектории.

Алгоритм

  1. Определите длины звеньев, оси суставов, начальные преобразования и пределы суставов.
  2. Вычислите прямую кинематику для текущего состояния суставов.
  3. Сравните текущую позу инструмента с запрошенной целью.
  4. Используйте аналитический или численный решатель, чтобы уменьшить ошибку позы в пределах ограничений.
  5. Отбрасывайте кандидатов со столкновениями или сингулярностями и выбирайте непрерывное решение.
  6. Параметризуйте траекторию по времени и отправляйте синхронизированные уставки регуляторам суставов.

Исходный код

Плоская рука с двумя звеньями имеет компактную модель прямой кинематики:

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 осями вдобавок управляет ориентацией, сингулярностями и работой около пределов суставов. Эта лаборатория позволяет понять, почему цель внутри кольца может иметь два решения и почему цель на его границе сингулярна, прежде чем добавить динамику, которая делает такие позы трудными для удержания.

Схема соединений

Разделяйте питание силовых исполнительных механизмов и вычислительных устройств, сохраняя общую опорную схему и сигналы безопасности, необходимые выбранному оборудованию.

Блок-схема архитектуры управления роботизированной рукой. Планировщик или стек ROS 2 отправляет цели суставов контроллеру, который управляет интеллектуальными сервоприводами по шине. Обратная связь положения суставов возвращается от сервоприводов контроллеру, а аварийный останов независимо от программного пути снимает питание исполнительных механизмов.
Регулятор замыкает контур с обратной связью суставов, а аварийный останов снимает питание исполнительных механизмов по отдельному пути — независимо от программного обеспечения. Скачать SVG

Управляемые эксперименты

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

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 звеньями два решения (локоть вверх и локоть вниз)?

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

Как выбрать между локтем вверх и локтем вниз?

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

Что такое сингулярность роботизированной руки?

Сингулярность — конфигурация, в которой рука теряет способность перемещать инструмент в некотором направлении, обычно когда она полностью вытянута или полностью сложена. Близко к сингулярности небольшое движение инструмента может потребовать очень большого движения суставов, поэтому планировщики замедляются или обходят эти позы. Здесь же решения «локоть вверх» и «локоть вниз» сливаются в одно.

Когда у обратной кинематики нет решения?

Целевая точка плоской двухзвенной задачи достижима только внутри кольца между наименьшим вытяжением (разностью длин звеньев) и наибольшим (их суммой). Точка за пределами этого кольца недостижима при любых углах суставов. Поза также может быть недостижимой из-за запрещённого угла сустава, ориентации, которую доступные суставы не могут обеспечить, или столкновения руки с самой собой.

Зачем использовать аналитическую обратную кинематику вместо численного решателя?

Для плоской руки с двумя или тремя звеньями геометрия имеет замкнутое (аналитическое) решение, поэтому точные углы суставов можно вычислить напрямую, детерминированно и быстро — идеально для обучения и проверки. Численные решатели нужны для избыточных или пространственных рук, где нет замкнутой формы, но они итерируют, могут пропускать решения и труднее поддаются анализу.

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

Источники

Авторитетные источники, чтобы пойти глубже ограниченной учебной модели этого симулятора.