logo好方法网

一种快速的反向动力学角度硬约束方法


技术摘要:
本发明提供一种快速的反向动力学角度硬约束方法,包括以下步骤,S1、通过反向运动学数值解法计算出各关节的角速度;S2、使用各关节当前的旋转角度以及各关节的角度限制求得各关节的角速度上下限;S3、比较并判断各关节的角速度是否处于各关节的角速度上下限之间,S4、  全部
背景技术:
三维动画制作或者动作捕捉技术中,为了动画生成难免使用反向动力学系统(简 称IK,通过单个控制手柄,变换一条骨骼链的姿态)。但是在传统反向动力学系统中,并没有 对操作的骨骼链有运动的方面的限制,也就是说,只要存在一条骨骼链,设置好控制手柄, 就一定可以在任何位置得到骨骼链的反向动力学计算结果。但是,在某些特殊情况下,比如 动作捕捉。这种情况下对骨骼层级和联动效果有严格的要求,不可能使用任意的骨骼链。并 且在这些情况下,每段骨骼间的运动根据严格的运动原理,是具有严格的运动限制的。所以 如何快速的添加以及计算这种反向动力学中的运动限制尤为重要。 反向动力学角度限制问题由来已久,最初属于机器人领域。后来当反向动力学应 用到CG动画制作中,该问题也引入到了电影行业。目前比较常用的JLA求解主要是属于机器 人领域的牛顿拟合法,拉格朗日法以及后来出现的专用于CG领域的软约束以及惩罚算法。 牛顿拟合以及拉格朗日法属于数值计算领域,虽然结果精度很高,但是计算消耗非常的高, 在动画制作中并不好用。软约束和惩罚算法在计算约束时,在控制器超出可控范围过多后, 又会出现约束失效的问题。实际在使用过程中依旧有诸多限制。
技术实现要素:
本发明的目的是提供一种快速的反向动力学角度硬约束方法,以解决在动画制作 过程中,采用现有的机器人领域的牛顿拟合法、拉格朗日法等手段,虽然精度高,但是计算 消耗高,在动画制作中并不实用的问题。 本发明提供了如下的技术方案: 一种快速的反向动力学角度硬约束方法,包括以下步骤: S1、通过反向运动学数值解法计算出各关节的角速度; S2、使用各关节当前的旋转角度以及各关节的角度限制求得各关节的角速度上下 限; S3、比较并判断各关节的角速度是否处于各关节的角速度上下限之间,若是,则使 用上述各关节的角速度更新各个关节的约束;若否,比较并判断各关节的角速度是否大于 各关节的角速度上限,若是,则将超过角速度上限的关节的角速度设置成该关节的角速度 上限,其余关节角速度上限保持不变,然后更新各个关节的约束,并进入S5;若否,则进入 S1; S4、判断各关节的约束是否满足反向动力学数值解法的终止条件,若是,则获得的 各关节的约束为反向动力学数值解法的结果;若否,则返回S1; S5、使用更新后的各关节执行S1-S3,同时将此时S3中所有超过角速度上限的关节 3 CN 111583366 A 说 明 书 2/4 页 的角速度对应的算法矩阵的行或列向量的所有元素置零; S6、返回S1继续循环,最终获得各个关节的反向动力学数值解法结果。 优选的,所述S1中通过反向运动学数值解法计算出各关节的角速度,包括以下步 骤: S11、确定一个或者几个目标位置,让各个骨骼链做旋转变换,从而得到末端子骨 骼所处的实际位置; S12、比较末端子骨骼的目标位置与实际位置,算出速度修正量; S13、利用角速度转换矩阵算出末端子骨骼的预期速度,加入速度修正量后得到末 端子骨骼速度; S14、通过反向动力学数值解法利用算法矩阵将得到的末端子骨骼速度转换为各 关节的角速度。 优选的,所述S5和所述S14中算法矩阵相同,其包括雅克比矩阵、伪逆矩阵和黑塞 矩阵。 优选的,所述S5中算法矩阵的行或列向量包括:当算法矩阵为行主序时为列向量, 当算法矩阵为列主序时候为行向量。 本发明的有益效果是: 本发明一种快速的反向动力学角度硬约束方法,直接将计算过程插入反向动力学 循环中,可以适用于多种反向动力学算法,保证角度硬约束的效果,并且,硬约束保证在任 何条件下的反向动力学结果不会超过约束范围。同时在约束计算过程中,也是靠直接修改 计算条件,而非增长约束条件来达到约束目的,保证了计算的速度。 附图说明 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中: 图1是本发明方法流程示意图; 图2是通过反向运动学数值解法计算出各关节的角速度的方法流程示意图。
下载此资料需消耗2积分,
分享到:
收藏