Вычисление матрицы Якоби для обратной кинематики


19

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

Ji=eϕi=[[ai×(eposri)]T[ai]T]

Так что - это ось вращения в мировом пространстве, - это точка поворота в мировом пространстве, а - это положение конечного эффектора в мировом пространстве.arepos

Тем не менее, я не понимаю, как это может работать, когда суставы имеют более одного DOF. Возьмите следующее в качестве примера:

введите описание изображения здесь

являются DOF вращения, то является концевой эффектор, то является целью концевого эффектора, в , и являются суставы.θegP1P2P3

Во-первых, если бы я вычислил матрицу Якоби на основе приведенной выше формулы для диаграммы, я получу что-то вроде этого:

J=[((0,0,1)×e)x((0,0,1)×(eP1))x((0,0,1)×(eP2))x((0,0,1)×e)y((0,0,1)×(eP1))y((0,0,1)×(eP2))y((0,0,1)×e)z((0,0,1)×(eP1))z((0,0,1)×(eP2))z000000111]

Предполагается, что все оси вращения равны и все они имеют только одну DOF вращения. Итак, я считаю, что каждый столбец для одного DOF, в данном случае, .(0,0,1)θ#

Теперь вот проблема: что если все суставы имеют полные 6 степеней свободы? Скажем, теперь для каждого соединения у меня есть вращательные DOF по всем осям, , и , а также поступательные DOF по всем осям, , и .θxθyθztxtytz

Чтобы прояснить мой вопрос, предположим, что если бы я «принудительно» применил приведенную выше формулу ко всем степеням свободы всех соединений, то я, вероятно, получу якобианскую матрицу, подобную этой:

введите описание изображения здесь

(нажмите для увеличения)

Но это невероятно странно, потому что все 6 столбцов DOF для каждого сустава повторяют одно и то же.

Как я могу использовать одну и ту же формулу для построения матрицы Якоби со всеми степенями свободы? Как будет выглядеть матрица Якоби в этом случае?


На самом деле, я не уверен, должен ли я публиковать этот вопрос здесь, в математике, в GamesDev или в физике. У меня такое ощущение, что я разместил этот вопрос не в том месте.
ксенон

Я думаю, что ваша ошибка в том, что вы не меняли a 'для каждого DOF, поэтому они выглядят одинаково.

Ответы:


11

Я должен признать, что я не видел эту конкретную формулу очень часто, но я предполагаю, что в случае более чем одного DOF, вы оцените ее для каждого соединения в каждом столбце, а затем (возможно?) Умножите эти результаты на каждый столбец.

Но позвольте мне предложить более простое подход к якобианам в контексте произвольного множества степеней свободы: по сути, якобиан говорит вам, как далеко перемещается каждое соединение, если вы перемещаете конечную эффекторную рамку в каком-то произвольно выбранном направлении. Пусть быть прямая кинематика, где θ = [ & thetas ; 1 , . , , , θ n ] - шарниры, f pos - позиционная часть прямой кинематики и f rot вращательной части. Тогда вы можете получить якобиан, дифференцируя прямую кинематику по объединенным переменным: f(θ)θ=[θ1,...,θn]fposfrot является якобиан вашего манипулятора. Инвертирование дало бы вам обратную кинематику с учетомскоростей. Онпрежнему может быть полезнымхотя, если вы хотите знатьнасколько каждое соединение должно двигатьсяесли вы хотитечтобы переместить конец эффектор некоторымнебольшимколичествомΔхв любом направлении (такна уровне позиции, это будет фактически линеаризацию): Δθ=J-1Δx

J=fθ=[fposθ1,fposθ2...,fposθnfrotθ1,frotθ2...,frotθn]
Δx
Δθ=J1Δx

Надеюсь, что это поможет.


Спасибо за ответ! Но это будет означать, что мне придется вычислять значения численно? На самом деле, я увидел этот аналитический пример из graphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdf из слайда 19 и graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt на слайде 78. Из слайдов кажется, что мне, возможно, не придется проходить численные методы. В ситуациях, когда у меня нет реальных функций для дифференциации, я могу использовать эту формулу. Но проблема в том, что происходит, когда у меня больше DOF для каждого соединения.
ксенон

Если я правильно понимаю слайды, вы бы обработали случай произвольного количества (вращательных) степеней свободы, определив векторы для каждого из этих соединений, где P i - это положение соединения. Итак, если у вас есть, скажем, 46 суставов, вы действительно получите якобиан с 46 столбцами и 6 рядами (или 3, если пренебрегаете ориентацией конечного эффектора). Короче говоря: вы можете применять эту формулу для любого количества суставов, и вам не нужно «комбинировать» ее с другими суставами. (eiPi)Pi
Даниэль Эбертс

Но что произойдет, если в соединении будет много степеней свободы, таких как , θ y , θ z , и поступательных степеней свободы, таких как t x , t y , t z ? Теперь у каждого сустава есть 6 степеней свободы. Из моего понимания того, как работает матрица Якобиана для IK, первые 6 столбцов будут производными от конечного эффектора по отношению к 6 различным степеням свободы, и эти первые 6 столбцов должны описывать первое соединение. Последующие 6 следующих столбцов будут описывать второе соединение в отношении 6 степеней свободы и так далее. Используя уравнение ( e i - P i )θxθyθztxtytz(eiPi)Означает ли это, что 6 столбцов каждого соединения автоматически упаковываются в один столбец?
ксенон

3
Ах я вижу. Нет, в этом случае формула не будет работать, потому что она была разработана для вращающихся соединений с одной осью вращения. Если вы хотите обработать, например, сферические соединения, вам понадобится другая формула, которая относится к этому конкретному типу соединения, или вам нужна закрытая форма прямой кинематики робота. Если у вас есть , что вы можете отличить его WRT суставы ; и получить якобиан. θ
Даниэль Эбертс

Благодарность! :) Просто любопытно, намекает ли слайд 58 в graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt, что можно использовать формулу для вращательных соединений с 3 степенями свободы? Что означает, что если соединение не имеет поступательных степеней свободы и имеет только три вращательных степени свободы, это все еще возможно? Хотя я не уверен, почему требуется умножаться на различные повороты, чтобы получить разные степени свободы. (1,0,0,0)
ксенон

2

Ваша формула для соединения с 6 степенями свободы предполагает, что все 6 соединений имеют ось в мировой системе координат и что все соединения являются вращательными. Поскольку 6 суставов, таким образом, идентичны, их столбцы в якобиане также идентичны.(0,0,1)

Начиная более, предположим, что соединение имеет ось проходит через точку г . Пусть е будет положением конечного эффектора. Все координаты a , r и e задаются в рамке мира и обновляются по мере перемещения робота. Ось имеет длину 1 .arearea1

Если сустав является вращающимся, столбец якобиана для сустава

Jθ(a,r)=[a×(er)a]

Если соединение призматическое, столбец

Jp(a)=[a0]

Предположим, у нас есть шарнир 6 градусов, который не только сферический, но и может перемещаться в пространстве. Предположим, что оси соединения - , a y и a z, и что каждое вращающееся и призматическое соединение разделяет ось, так что якобиан для соединения становитсяaxayaz

J=[Jp(ax)Jp(ay)Jp(az)Jθ(ax,r)Jθ(ay,r)Jθ(az,r)]

axayazk

Fk=i=1kLiTi

LiTiRc(q)Pc(q)qcxyz

Δq=(Δpx,Δpy,Δpz,Δθx,Δθy,Δθz)iΔT=Px(Δpx)Py(Δpy)Pz(Δpz)Rx(Δθx)Ry(Δθy)Rz(Δθz)

TiTiΔT

axayaziFirFi


0

Насколько я понимаю твой вопрос, что ты хочешь матрицу Якоби для соединения 6 степеней свободы.

Позвольте мне начать с самых основ робототехники. Вы находитесь на начальном этапе обучения робототехнике. Вы должны понимать, что каждый сустав представляет собой один DOF, будь то поворотный или призматический сустав.

Что касается сферического соединения, оно может быть преобразовано в 3 вращающихся соединения с тремя взаимно перпендикулярными осями. Итак, теперь вы упростили свой сферический сустав.

Двигаясь вперед к якобианской матрице. Он содержит 6 строк. Первые 3 строки представляют ориентацию, а последние 3 строки указывают положение со ссылкой на конкретную систему координат. Каждый столбец в матрице указывает на одно соединение. Таким образом, число соединений / DOF у вас есть тот же номер столбца, который у вас есть в матрице Якоби.

Вот более ясный взгляд на ваш вопрос: один сустав никогда не выполняет более одного DOF, потому что это усложняет сустав, и точный контроль никогда не будет достигнут. Даже если мы гипотетически рассмотрим соединение с более чем одним DOF, вам нужно преобразовать это соединение в несколько соединений с 1 DOF каждый, чтобы упростить математику и решение.

В идеале робот с 6 степенями свободы с 6 поворотными шарнирами работает для большинства на реальных проблемах. Но по вашему вопросу вы рассматривали 6 совместных роботов, каждый из которых имеет 3 степеней свободы, что составляет 18 степеней свободы. Это даст избыточный DOF (т.е. 18-6 = 12 резервных DOF). Таким образом, для достижения конечного эффектора робота в любом месте с любой ориентацией у вас будет бесконечно много разных решений (решение означает вращение каждого соединения). Так что для решения этой проблемы обратной кинематики вам потребуется итерационный метод обратной кинематики.

Надеюсь, я ответил на ваш вопрос более четко. Чтобы изучить основы робототехники, вы можете обратиться к Джону Крейгу - Введение в робототехнику и управление робототехникой -Pearson Education, Inc.

С уважением, Манан Каласария

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.