[发明专利]一种反向动力学自由度的动态约束方法有效
申请号: | 202010379166.4 | 申请日: | 2020-05-07 |
公开(公告)号: | CN111571586B | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 赵锐;侯志迎;李学 | 申请(专利权)人: | 江苏原力数字科技股份有限公司 |
主分类号: | B25J9/16 | 分类号: | B25J9/16 |
代理公司: | 南京常青藤知识产权代理有限公司 32286 | 代理人: | 黄胡生 |
地址: | 210000 江苏省南京市建邺区*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 反向 动力学 自由度 动态 约束 方法 | ||
本发明提供一种反向动力学自由度的动态约束方法,包括S1、设置各个关节的自由度约束;S2、通过各个关节构建骨骼层级的雅克比矩阵,当一个关节的一个自由度被约束时,抹去该自由度在雅克比矩阵对应列上的元素,并使后续的元素往前收缩;S3、设置各个关节的反向动力学的位置矩阵;S4、将位置矩阵和雅克比矩阵带入反向动力学数值解法,获取角度旋转结果;S5、通过各个关节的自由度约束来从角度旋转结果中选择角度值更新所有关节的自由度约束;S6、判断当前各个关节的自由度约束是否满足反向动力学计算迭代终止条件;综上,在计算自由度约束的时候不仅不会增加运算量,反而会加快运算,并且可以在计算过程中更改自由度约束设置。
技术领域
本发明属于自由度约束技术领域,具体涉及一种反向动力学自由度的动态约束方法。
背景技术
在使用反向动力学的过程中,经常会出现仅需要沿特定轴旋转的关节(比如手肘)的情况。按照常理来讲,这种情况可以使用角度硬约束解法来处理这种问题。但是角度硬约束的代价十分高,会严重拉低计算速度。特别是在特定的骨骼结构下,过多的硬约束可能增加十倍以上的计算消耗。
例如,多数时候反向动力学仅仅需要计算一个轴、机械臂、人的手臂或者腿部反向动力学计算等。如果对自由度约束再增添动态构建,比如当旋转到达某个位置时,改变骨骼旋转轴,这个时候约束方案更为吃力。所以需要有一种更为快捷方便的方式来处理单纯的可动态增长的轴自由度的约束问题。
发明内容
本发明的目的是提供一种反向动力学自由度的动态约束方法,以解决采用传统的增加硬约束来处理动态约束造成计算消耗巨大的问题。
本发明提供了如下的技术方案:
一种反向动力学自由度的动态约束方法,包括以下步骤:
S1、设置各个关节的自由度约束,进而确定各个关节需要计算的自由度;
S2、通过各个关节构建骨骼层级的雅克比矩阵,当一个关节的一个自由度被约束时,抹去该自由度在雅克比矩阵对应列上的元素,并使后续的元素往前收缩;
S3、设置各个关节的反向动力学的位置矩阵;
S4、将位置矩阵和雅克比矩阵带入反向动力学数值解法,获取角度旋转结果;
S5、通过各个关节的自由度约束来从角度旋转结果中选择角度值更新所有关节的自由度约束;
S6、判断当前各个关节的自由度约束是否满足反向动力学计算迭代终止条件,
若是,则更新后的所有关节的自由度约束为计算结果;
若否,则返回S1。
优选的,当需要修改一个关节的自由度约束时,可以在S6跳转S1时进行自由度约束的修改。
优选的,在所述S2中雅克比矩阵中元素往前收缩,使得S4中角度旋转结果也会相应的收缩,并最终使得收缩的元素与自由度约束一一对应。
优选的,所述设置各个关节的反向动力学的位置矩阵包括确定一个或者几个目标位置,让各个骨骼链做旋转变换,从而得到末端子骨骼所处的目标位置,并根据所处的目标位置构建位置矩阵。
本发明的有益效果是:
本发明一种反向动力学自由度的动态约束方法,依靠修改反向动力学矩阵设置达成,和具体的反向动力学算法无关,不需要特定的反向动力学算法配合,其是发生在运算矩阵构建阶段,所以可以在多种情况下使用。同时该动态约束方法是靠收缩运算矩阵来达到约束的目的的,所以当自由度约束越多时,需要计算的矩阵反而越小,计算速度大幅度提升。当需要满足特殊的运算操作,例如当骨骼运动到一定的位置,修改自由度约束或者变更约束的自由度时。该工具无需修改计算条件和增加大量的矩阵约束设置,可以动态的修改自由度约束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏原力数字科技股份有限公司,未经江苏原力数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010379166.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种红外测温传感器模组及测温方法、测温设备
- 下一篇:一种环保水利过滤机