Этот вопрос старый, но я все равно отвечу, потому что я думал о нем, но так и не смог его реализовать.
Вращающиеся соединения без ограничений называются шаровыми или сферическими соединениями; у них есть 3 степени свободы. Вы также можете использовать формулу в руководстве для сферических соединений, если вы параметризуете каждое сферическое соединение с точки зрения 3 вращательных (вращающихся) соединений с одной степенью свободы каждое.
Например: пусть N
будет количеством сферических соединений. Предположим, что каждое соединение имеет локальную трансформацию T_local[i]
и трансформацию мира
T_world[i] = T_local[0] * ... * T_local[i]
Пусть R_world[i][k]
, k = 0, 1, 2
, будет столбец k- th матрицы вращения T_world[i]
. Определите 3 * N
объединенные оси как
v[3 * j + 0] = R_world[i][0]
v[3 * j + 1] = R_world[i][1]
v[3 * j + 2] = R_world[i][2]
Вычислить якобиан J
для некоторого конечного эффектора s[i]
, используя формулу учебника. Все координаты в мире.
Использование, например, псевдообратного метода дает смещение dq
, которое перемещает конечный эффектор в заданном направлении dx
.
Длина dq
равна 3 * N
. Определение
R_dq[j] =
R_x[dq[3 * j + 0]] *
R_y[dq[3 * j + 1]] *
R_z[dq[3 * j + 2]]
для j = 0, 1, ..., N-1
, где R_x
, R_y
, R_z
- матрицы преобразования для вращения вокруг осей x-
, y-
и z
.
Обновление локальных преобразований:
T_local[j] := T_local[j] * R_dq[j]
и повторите с вершины, чтобы переместить конечный эффектор в других направлениях dx
.