计算逆运动学的雅可比矩阵


19

在计算雅可比矩阵以解析方式求解逆运动学时,我从很多地方读到可以使用此公式在雅可比矩阵中创建关节的每一列:

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

这样a是世界空间中的旋转轴,r是世界空间中的枢轴点,epos是末端执行器在世界空间中的位置。

但是,当关节具有多个自由度时,我不知道如何使用。以以下为例:

在此处输入图片说明

θ是旋转DOF,所述e是端部执行器,所述g是端部执行器的目标,P1P2P3是关节。

首先,如果我要根据上述图表的公式来计算雅可比矩阵,我将得到如下信息:

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]

推测这是所有的旋转轴是(0,0,1)和所有它们中的只有一个旋转DOF。所以,我相信每一列是一个自由度,在这种情况下,θ#

现在,问题来了:如果所有关节都具有完整的6个自由度会怎样?现在说,对于每个接头,我在所有轴,旋转自由度θxθyθz,并且还平移自由度在所有轴,txtytz

为了使我的问题更清楚,假设如果我要“强制性地”将以上公式应用于所有关节的所有自由度,那么我可能会得到一个雅可比矩阵,如下所示:

在此处输入图片说明

(点击查看大图)

但是,这很不可思议,因为每个关节的自由度的所有6列都在重复同一件事。

如何使用相同的公式构建所有自由度的雅可比矩阵?在这种情况下,雅可比矩阵会是什么样子?


实际上,我不确定我是否应该在数学,GamesDev或物理中发布此问题。我觉得我在错误的地方张贴了这个问题。
氙2012年

我认为您的错误是您没有为每个自由度更改a',这就是为什么它们看起来都一样的原因。

Answers:


11

我必须承认,我很少见过该特定公式,但是我猜想是,如果有一个以上的自由度,则可以对每一列中的每个关节进行评估,然后(也许?)将这些结果乘以每列。

但是,让我为任意多个自由度的情况下的Jacobian方法提供一个更简单的方法:基本上,Jacobian会告诉您,如果沿任意选择的方向移动末端执行器框架,则每个关节的运动距离为多远。让是正向运动学,其中θ = [ θ 1θ Ñ ]是关节,˚F POS是正运动学和的位置部分˚F Ĵ = ˚Ff(θ)θ=[θ1,...,θn]fposfrot旋转部分。然后你就可以得到雅可比区分正向运动学针对关节变量: 是你的手的雅可比。反转它会为您提供逆速度的逆运动学

J=fθ=[fposθ1,fposθ2...,fposθnfrotθ1,frotθ2...,frotθn]
。它仍然是有用的,如果你想知道每个关节有多远,如果你想通过一些移动的末端执行器移动在任何方向(因为位置的水平,这将有效地线性化): Δ θ = Ĵ - 1个 Δ XΔx
Δθ=J1Δx

希望这会有所帮助。


感谢回复!但这是否意味着我将不得不以数字方式计算值?实际上,我从幻灯片19中的graphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdf中看到了这个分析示例,并在幻灯片上的graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt中看到了这个分析示例。78.从幻灯片看,我似乎不必遍历数值方法。在没有实际功能可区分的情况下,可以使用此公式。但是问题是当我每个关节都有更多自由度时会发生什么。
氙气

如果我正确地理解了幻灯片,则可以通过确定每个关节的矢量来处理任意多个(旋转)自由度的情况,其中P i是关节的位置。因此,如果您有46个关节,则确实会得到一个具有46列和6行的Jacobian(如果忽略末端执行器的方向,则为3)。长话短说:您可以将该公式应用于任意数量的关节,而不必将其与其他关节“结合”。(eiPi)Pi
丹尼尔·埃伯茨

但是,会发生什么,如果一个联合有很多自由度像θ ÿθ ž和平移自由度一样牛逼X牛逼ÿ牛逼ž?现在,每个关节具有6个自由度。根据我对雅可比矩阵对IK的工作原理的理解,前6列将是相对于6种不同自由度的末端执行器的导数,而这前6列将描述第一个关节。接下来的接下来的6列将针对6个自由度描述第二个关节,依此类推。使用等式e iP iθxθyθztxtytz(eiPi),这是否意味着每个关节的6列会自动打包成一列?
氙2012年

3
知道了 不,在那种情况下,该公式将不起作用,因为它是为具有一个旋转轴的旋转接头设计的。如果要处理例如球形关节,则可能需要使用不同的公式来处理特定的关节类型,或者需要封闭形式的机器人正向运动学。如果有的话,可以通过关节对其进行微分并获得雅可比行列式。θ
丹尼尔·埃伯茨

谢谢!:)虽然很好奇,但是graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt中的幻灯片58是否暗示可以对具有3个自由度的旋转关节使用公式?这意味着如果关节不具有平移自由度,而仅具有3个旋转自由度,仍然可行吗?虽然我不知道为什么它正在采取与各种旋转来乘,以获得不同的自由度。(1,0,0,0)
氙2012年

2

您要6式自由度关节假定所有6个关节具有轴线(0,0,1)在世界坐标系,而所有接缝是旋转。由于这6个关节是相同的,因此它们在雅可比行列中的列也是相同的。

重新开始,假设一个关节的轴线穿过点r。设e为末端执行器的位置。are的坐标都在世界框架中给出,并且随着机器人的移动而更新。轴a的长度为1arearea1

如果关节旋转,则关节的雅可比行列为

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

如果关节是棱柱形的,则列为

Jp(a)=[a0]

假设我们有一个6 自由度的关节,它不仅是球形的,而且还可以在空间中平移。假设接头的轴线是一个ÿ,和一个Ž并且每个旋转和棱柱关节股的轴线,从而使雅可比为联合变得axayaz

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

一个ÿ,和一个Ž取决于机器人的正向运动学。为了说明这一点,让世界框架中的第k个关节的变换为axayazk

Fk=i=1kLiTi

其中变换是常数,而变换T i取决于联合变量。令R cq P cq 为围绕名为c的坐标轴旋转q并平移q的变换(或者xLiTiRc(q)Pc(q)qcxz)。yz

是位移,由雅可比的帮助来计算,为个关节。让Δ Ť = P XΔ p XP ÝΔ p ÝP ŽΔ pΔq=(Δpx,Δpy,Δpz,Δθx,Δθy,Δθz)iΔT=Px(Δpx)Py(Δpy)Pz(Δpz)Rx(Δθx)Ry(Δθy)Rz(Δθz)

TiTiΔT

axay一种ž 关节 一世 正是旋转矩阵的列 F一世。还有这个位置[R 是的翻译向量 F一世


0

据我了解您的问题,您想要6自由度关节的Jacobian矩阵。

让我从最基本的机器人技术开始。您正处于机器人学习的不同初始阶段。您需要了解,每个关节代表一个自由度,要么是旋转关节,要么是棱柱形关节。

就球形接头而言,它可以转换为具有三个相互垂直的轴的3个旋转接头。因此,现在您简化了球形接头。

前进到雅可比矩阵。它包含6行。前3行代表方向,后3行代表相对于特定坐标系的位置。矩阵中的每一列表示一个关节。因此,关节数/自由度数与Jacobian矩阵中的列数相同。

这是您的问题的更清晰的观点:单个关节永远不能满足一个以上的自由度,因为它会使关节变得复杂,而精确的控制将永远无法实现。即使我们假设一个关节具有多个自由度,您也需要将该关节转换为每个具有1个自由度的多个关节,以简化数学和求解。

理想情况下,具有6个旋转关节的6自由度机器人可以解决大多数实际问题。但是根据您的问题,您考虑了6个关节机器人,每个关节具有3个自由度,这使18个自由度机器人成为可能。这将提供冗余的自由度(即18-6 = 12冗余的自由度)。因此,要使机器人末端执行器以任何方向到达任何位置,您将拥有无限不同的解决方案(解决方案表示每个关节的旋转)。因此,要解决此类逆运动学问题,您将需要迭代的逆运动学方法。

希望我已经清楚地回答了您的问题。要学习基本的机器人技术,您可以参考John J. Craig-机器人力学与控制简介-培生教育有限公司。

问候,Manan Kalasariya

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.