3

我正在尝试实现逆运动学求解器,但这次即使使用末端执行器的方向。当末端执行器只需要该位置时,我成功了。

我了解到,在这种情况下,您可以像这样构造雅可比矩阵,其中 w_i 是全局空间中的第 i 个旋转轴,p_i 是从第 i 个轴到目标位置的向量。 在此处输入图像描述

问题是当我必须在下面的等式中计算 x_dot 时。

在此处输入图像描述

当 x_dot 只考虑位置并且没有方向时,这非常简单。但是现在当 x_dot 需要 6 个条目(位置、方向)时,我不知道应该为方向部分做什么。我一直在使用欧拉角来表示我的程序中的方向。

我现在的想法只是用目标的偏航、俯仰和滚动减去当前末端执行器的偏航、俯仰和滚动,然后将每个结果除以 100。但这似乎有点复杂。有没有更好的方法来解决这个问题?任何想法将不胜感激!

4

1 回答 1

2

您需要将末端执行器的方向表示为 3 x 3 旋转矩阵。您在当前关节向量 (Theta) 处计算末端执行器的方向,然后为关节向量中的每个元素添加一个小增量(在您的情况下为 6 个增量,因为六个关节)。在简单的情况下,您对每个小关节变化导致的尖端位置变化感兴趣,您计算了 X、Y 和 Z 位置的变化,这是在 theta 位置的简单矢量减法,并且对于每个扰动 theta。要对角度做同样的事情,您需要找到将 3x3@Theta (A) 带到 3x3@ThetaPrime(B) 的旋转矩阵 R。

因为 A*R=B

AInv A R=AInv*B

AInve*A = 身份

R=AInv*B

从 R 中,您可以提取 delta roll、pitch、yaw Euler 角。公式在这里

https://pdfs.semanticscholar.org/6681/37fa4b875d890f446e689eea1e334bcf6bf6.pdf

theta 值是由每个 theta 的变化引起的偏航、俯仰和滚动的变化。

于 2018-10-29T04:09:51.260 回答