Трёхзвенный манипулятор

Добавляем третье звено и видим, как формулы FK обобщаются и зачем нужно «лишнее» звено.

Трёхзвенный плоский манипулятор (3R) имеет три DOF: он может привести схват в точку $(x, y)$ и задать его ориентацию $\phi$ — три параметра, три сустава.

Формулы FK просто наращивают слагаемые: каждое звено добавляет вектор под суммой всех предыдущих углов.

$$ x = L_1 \cos\theta_1 + L_2 \cos(\theta_1 + \theta_2) + L_3 \cos(\theta_1 + \theta_2 + \theta_3) $$

$$ y = L_1 \sin\theta_1 + L_2 \sin(\theta_1 + \theta_2) + L_3 \sin(\theta_1 + \theta_2 + \theta_3) $$

$$ \phi = \theta_1 + \theta_2 + \theta_3 $$

Зачем третье звено

Двухзвенник дотягивается до точки, но ориентацию схвата выбрать не может — она жёстко определена позицией. Третье звено даёт независимое управление углом $\phi$: можно подвести инструмент к точке под нужным наклоном (например, держать паяльник вертикально). Это и есть смысл «полного» плоского робота: 3 DOF на 3 параметра задачи.

Считаем

$\theta = (20^\circ, 30^\circ, 40^\circ)$, $L = (1.0, 0.7, 0.4)$.

import math

def fk3(thetas, lengths):
    x = y = 0.0
    acc = 0.0
    for th, L in zip(thetas, lengths):
        acc += th
        x += L * math.cos(acc)
        y += L * math.sin(acc)
    return x, y, acc

thetas = [math.radians(d) for d in (20, 30, 40)]
lengths = [1.0, 0.7, 0.4]
x, y, phi = fk3(thetas, lengths)
print("x =", round(x, 4))
print("y =", round(y, 4))
print("ориентация, град =", round(math.degrees(phi), 2))

Вывод:

x = 1.3896
y = 1.2783
ориентация, град = 90.0

Как работает под капотом

Цикл повторяет ту же векторную сумму, что и в двухзвеннике, накапливая суммарный угол acc. Этот код работает для любого числа звеньев — добавьте элементы в списки thetas и lengths. Так FK масштабируется от учебного 2R до промышленного 6R: меняется лишь длина списков.

Частые ошибки

  • Сбрасывать накопленный угол между звеньями — тогда теряется «прокрутка» поворотов.
  • Думать, что третье звено добавляет дальность: оно в первую очередь добавляет управление ориентацией.
  • Считать, что 3 DOF позволяют достать любую точку под любым углом — ограничения углов суставов всё равно сужают зону.

Итог

  • Трёхзвенник имеет 3 DOF: позиция $(x,y)$ плюс ориентация $\phi$.
  • FK обобщается циклом с накоплением суммарного угла.
  • Третье звено даёт независимое управление наклоном инструмента.
  • Тот же алгоритм масштабируется на любое число звеньев.
Проверьте себя
1. Что главным образом даёт третье звено плоскому манипулятору?
AБольше дальности
BНезависимое управление ориентацией схвата
CМеньше массы
DБольшую скорость
2. Как меняется формула FK при добавлении звена?
AПолностью переписывается
BДобавляется слагаемое L·cos/sin суммы всех предыдущих углов
CУглы перемножаются
DНичего не меняется