Робототехника

Кинематика: прямая и обратная

Цели урока

  • Вычислять FK для 2-звенного манипулятора через матрицы однородных преобразований
  • Понимать, почему IK неоднозначна, и знать классификацию методов её решения
  • Записывать DH-таблицу для произвольного манипулятора
  • Использовать якобиан для связи скоростей суставов и end-effector, выявлять сингулярности

Предварительные знания

  • Введение в робототехнику

Da Vinci хирургический робот выполняет операцию: врач двигает джойстик, а манипулятор внутри пациента повторяет движение с точностью до 0.1 мм. Как компьютер за миллисекунды пересчитывает положение джойстика в углы 7 суставов робота? Ответ - кинематика, математический мост между пространством суставов и пространством задач.

  • **Промышленная сварка**: робот KUKA вычисляет углы 6 суставов 250 раз в секунду, чтобы вести сварочную горелку по шву с точностью 0.05 мм
  • **Компьютерная анимация**: персонажи Pixar двигаются естественно благодаря IK - аниматор задаёт позицию руки, а алгоритм находит позы всех суставов
  • **Космические манипуляторы**: Canadarm2 на МКС использует прямую и обратную кинематику для стыковки грузовых кораблей в условиях невесомости

От Вокансона до PUMA: формализация кинематики

В XVIII веке французский механик Жак де Вокансон создавал механических автоматонов - флейтиста (1738) и утку (1739), способную имитировать переваривание пищи. Это первые попытки формализовать движение звеньев. Настоящий математический фундамент заложен в 1955 году: Жак Денавит и Ричард Хартенберг опубликовали статью «A kinematic notation for lower-pair mechanisms based on matrices» - систематический метод через 4 параметра на сочленение. В 1978 году Unimate PUMA 560 стал первым промышленным роботом с DH-параметрами в документации, и этот стандарт используется до сих пор.

Прямая кинематика

**KUKA KR 210 R2700: 250 сварочных швов в час, точность 0.05 мм.** Контроллер в каждый момент времени знает угол каждого из 6 суставов - и из этих чисел вычисляет, где именно находится сварочная горелка. **Прямая кинематика** (forward kinematics, FK) - однозначная задача: один набор углов всегда даёт одну позицию в пространстве.

FK - это функция **f(q) = x**, где **q** - вектор углов суставов (joint angles), а **x** - положение и ориентация end-effector в декартовом пространстве. Для N-звенного манипулятора q имеет размерность N.

Простейший случай - **плоский 2-звенный манипулятор**. Два звена длиной L1 и L2, два вращательных сустава с углами theta1 и theta2. Положение конца вычисляется через тригонометрию:

Для 3D-манипуляторов с 6+ степенями свободы тригонометрия становится громоздкой. Поэтому используют **матрицы однородных преобразований** 4x4, которые комбинируют вращение и перемещение:

СуставыСтепени свободыРабочее пространствоПример
2 вращательных2 DOFПлоская областьSCARA (плоскость)
3 вращательных3 DOFСфера с вырезамиPalletizing robot
6 вращательных6 DOFПолная 3D свободаПромышленный манипулятор
7+ вращательныхИзбыточный6 DOF + маневренностьРука человека (7 DOF)

Прямая кинематика решает задачу:

Обратная кинематика

**Da Vinci хирургический робот: хирург перемещает джойстик на 2 см - инструмент внутри пациента повторяет движение с точностью 0.1 мм.** Система за миллисекунды пересчитывает желаемую позицию кончика инструмента в углы 7 суставов - это **обратная кинематика** (IK). Если FK однозначна, то IK математически куда сложнее.

IK может иметь **множество решений**, **единственное решение** или **не иметь решений вовсе**. Для 6-DOF манипулятора типичная точка в рабочем пространстве может быть достигнута 8 или даже 16 различными конфигурациями суставов.

Для простых манипуляторов (2-3 DOF) IK решается **аналитически** - через формулы тригонометрии. Но для 6-DOF и выше аналитическое решение существует только для определённых конфигураций (например, когда три последних оси пересекаются в одной точке - **сферическое запястье**).

Метод IKТипСкоростьТочностьПрименение
АналитическийClosed-formМгновенноТочныйПростые манипуляторы, сферическое запястье
Якобиан (итеративный)ЧисленныйБыстроПриближённыйОбщие манипуляторы, real-time
CCD (Cyclic Coordinate Descent)ЧисленныйСреднеПриближённыйАнимация, игры
FABRIKЭвристическийБыстроПриближённыйЦепи с ограничениями, humanoids

Когда у робота **больше 6 DOF** (избыточный манипулятор), IK имеет бесконечное множество решений. Это не проблема - наоборот, робот может выбирать наиболее удобную конфигурацию, обходить препятствия или минимизировать расход энергии.

Почему обратная кинематика сложнее прямой?

Параметры Денавита-Хартенберга

**PUMA 560, 1978: первый промышленный манипулятор с компьютерным управлением.** Его кинематика полностью описывается таблицей из 6 строк по 4 числа - DH-параметры. **Нотация Денавита-Хартенберга (DH)** - стандартный метод систематического описания кинематической цепи. Каждому звену соответствует ровно **4 параметра**, которые полностью определяют геометрию сочленения.

**4 параметра DH** для i-го звена: - **ti** (theta) - угол поворота вокруг оси Zi-1 (переменный для вращательного сустава) - **di** - смещение вдоль оси Zi-1 (переменный для призматического сустава) - **ai** (alpha) - длина звена, расстояние между осями Z - **ai** - угол скрутки, поворот оси Zi относительно Zi-1 вокруг оси X

Рассмотрим конкретный пример. **PUMA 560** - классический 6-DOF манипулятор, ставший эталоном для обучения робототехнике. Его DH-таблица описывает всю кинематику в 6 строках:

Звено iti (переменный)di (мм)ai (мм)ai (°)
1t100-90
2t2149.09431.80
3t30-20.3290
4t4433.070-90
5t50090
6t656.2500

Существуют **две конвенции** DH-параметров: классическая (Denavit-Hartenberg, 1955) и модифицированная (Craig, 1986). Они отличаются порядком применения преобразований. При чтении статей и документации всегда проверяйте, какая конвенция используется - перепутать их означает получить неправильную кинематику.

Сколько параметров DH описывают каждое сочленение робота?

Якобиан манипулятора

**Canadarm2 на МКС стыкует грузовой корабль: конечный эффектор движется со скоростью 3 мм/с в невесомости.** FK говорит, где сейчас находится захват. Якобиан отвечает на следующий вопрос: если каждый сустав вращается с угловой скоростью dtheta/dt, с какой скоростью движется сам захват? **Якобиан** - матрица частных производных, связывающая скорости суставов и конца манипулятора.

**Якобиан** J - матрица размером 6xN (6 - линейная + угловая скорость, N - число суставов): **x_dot = J(q) * q_dot** где x_dot - вектор скорости end-effector (6D: vx, vy, vz, wx, wy, wz), q_dot - вектор скоростей суставов (ND). Якобиан зависит от текущей конфигурации q!

Якобиан - ключ к **итеративному IK**. Вместо аналитического решения используются итерации: вычисляется ошибка delta_x между текущей и желаемой позицией, затем находится нужная коррекция суставов delta_q = J_inv * delta_x. Повторяется, пока ошибка не станет малой.

Когда определитель якобиана det(J) = 0, робот находится в **сингулярности** - конфигурации, где теряется одна или несколько степеней свободы. В сингулярности робот не может двигаться в определённом направлении, а для IK требуются бесконечные скорости суставов. Промышленные контроллеры отслеживают близость к сингулярности и ограничивают скорость.

Применение якобианаФормулаОписание
Скоростиx_dot = J*q_dotСкорость end-effector через скорости суставов
Силыtau = J_T * FМоменты суставов через силу на end-effector
IK (итеративный)delta_q = J_inv * delta_xКоррекция суставов для приближения к цели
Манипулируемостьw = sqrt(det(J*J_T))Мера «ловкости» робота в текущей позе

Транспонированный якобиан **J_T** связывает силу на end-effector с моментами суставов: **tau = J_T * F**. Это принцип виртуальных работ: если робот держит груз, J_T позволяет рассчитать нагрузку на каждый мотор. Двойственность «скорости - силы» закодирована в одной матрице.

Обратная кинематика всегда имеет единственное решение

IK может иметь множество решений, единственное решение или не иметь решений вовсе. Для 6-DOF манипулятора одна точка часто достижима 8-16 конфигурациями.

FK - это функция «многие-к-одному»: разные наборы углов могут давать одну и ту же позицию end-effector (например, «локоть вверх» и «локоть вниз»). Поэтому обращение этой функции неоднозначно. А за пределами рабочего пространства решений нет совсем.

Что означает det(J) = 0 для манипулятора?

Ключевые идеи

  • **Прямая кинематика (FK)** - однозначная функция f(q)=x: углы суставов -> позиция end-effector. Реализуется перемножением матриц преобразований.
  • **Обратная кинематика (IK)** - может иметь 0, 1 или множество решений. Решается аналитически (для простых манипуляторов) или итеративно через якобиан.
  • **DH-параметры** - 4 числа на сочленение (theta, d, a, alpha), систематически описывающие любую кинематическую цепь.
  • **Якобиан** J связывает скорости суставов со скоростями end-effector (x_dot=J*q_dot) и силы с моментами (tau=J_T*F). При det(J)=0 - сингулярность.

Связанные темы

Кинематика - основа для всех остальных задач робототехники:

  • Основы робототехники — FK/IK позволяют управлять сенсорами и актуаторами из предыдущего урока в координатах задачи
  • ROS 2 — В ROS 2 библиотека MoveIt реализует IK и планирование движений, используя всё из этого урока
  • Линейная алгебра — Матрицы преобразований, якобианы и сингулярности - прямое применение линейной алгебры

Вопросы для размышления

  • Хирургический робот Da Vinci: почему для него критически важна проверка на сингулярности якобиана? Что может произойти, если манипулятор окажется в сингулярности во время операции?
  • Почему рука человека имеет 7 степеней свободы (избыточна), хотя 6 достаточно для достижения любой позиции? Какое преимущество даёт избыточность?
  • Для реализации IK для робота-пылесоса с простой рукой-хваталкой (3 DOF) - какой метод лучше выбрать: аналитический или итеративный? Почему?

Связанные уроки

  • rob-01 — Актуаторы и координатные системы вводятся в первом уроке
  • rob-03 — MoveIt в ROS 2 реализует IK на основе якобиана из этого урока
  • la-01-vectors-intro — Матрицы вращения и векторы - математическая основа DH-параметров
  • rob-05 — Планирование траекторий строится поверх FK/IK
  • opt-01 — Численная IK - это задача оптимизации с ограничениями
  • cg-03 — Скелетная анимация использует FK/IK для персонажей
  • rob-08 — Динамика манипулятора расширяет кинематику учётом масс и сил
  • la-06-transformations
Кинематика: прямая и обратная

0

1

Войти