具有末端执行器方向的反向运动学?

Inverse kinematics with end effector orientation?

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

我了解到在这种情况下,您可以像这样构造雅可比矩阵,其中 w_i 是全局 i_th 旋转轴 space 并且 p_i 是从 i_th 轴到目标位置的向量。

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

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

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

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

因为 A*R=B

AInvAR=AInv*B

AInve*A = 身份

R=AInv*B

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

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

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