【发布时间】:2019-04-01 08:49:04
【问题描述】:
我正在尝试实现逆运动学求解器,但这次即使使用末端执行器的方向。当末端执行器只需要位置时,我成功了。
我了解到,在这种情况下,您可以像这样构造雅可比矩阵,其中 w_i 是全局空间中的第 i_th 旋转轴,p_i 是从第 i_th 轴到目标位置的向量。
问题是我必须在下面的等式中计算 x_dot。
当 x_dot 只考虑位置并且没有方向时,这非常简单。 但是现在当 x_dot 需要 6 个条目(位置、方向)时,我不知道应该为方向部分做什么。我一直在使用欧拉角来表示我的程序中的方向。
我现在的想法只是用目标的偏航、俯仰和滚动减去当前末端执行器的偏航、俯仰和滚动,然后将每个结果除以 100。但这似乎有点复杂。有没有更好的方法来解决这个问题?任何想法将不胜感激!
【问题讨论】:
-
我正在通过迭代 CCD 进行 IK,它看起来像这样 Working of CCD algorithm for Inverse Kinematics。但是,如果您的运动学受到相当大的限制,那么您必须为执行器和轴添加优先级。是的,这对于 6 DOF 端点也是可行的
-
无论如何,如果您将欧拉角的方向转换为 3D 矢量,那么它更适合点积
-
好吧,你可以继续使用欧拉角。但这会使你的生活变得不必要的复杂。使用 Spektre 建议的向量。然后,找到前向规则,推导,你就有了雅可比的条目。
-
@Nich Schertler 老实说,我不明白 Spektre 先生的意思……你能更具体一点吗?找到代表目标的yaw、pitch、roll和当前末端执行器的两个向量后怎么办?
标签: opengl inverse-kinematics skeletal-animation