CN111583366A - 一种快速的反向动力学角度硬约束方法 - Google Patents
一种快速的反向动力学角度硬约束方法 Download PDFInfo
- Publication number
- CN111583366A CN111583366A CN202010379167.9A CN202010379167A CN111583366A CN 111583366 A CN111583366 A CN 111583366A CN 202010379167 A CN202010379167 A CN 202010379167A CN 111583366 A CN111583366 A CN 111583366A
- Authority
- CN
- China
- Prior art keywords
- joint
- angular velocity
- matrix
- constraint
- numerical solution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种快速的反向动力学角度硬约束方法,包括以下步骤,S1、通过反向运动学数值解法计算出各关节的角速度;S2、使用各关节当前的旋转角度以及各关节的角度限制求得各关节的角速度上下限;S3、比较并判断各关节的角速度是否处于各关节的角速度上下限之间,S4、判断各关节的约束是否满足反向动力学数值解法的终止条件,S5、使用更新后的各关节执行S1‑S3,同时将此时S3中所有超过角速度上限的关节的角速度对应的算法矩阵的行或列向量的所有元素置零;S6、返回S1继续循环,最终获得各个关节的反向动力学数值解法结果;达到约束目的,保证了计算的速度。
Description
技术领域
本发明属于动画制作技术领域,具体涉及一种快速的反向动力学角度硬约束方法。
背景技术
三维动画制作或者动作捕捉技术中,为了动画生成难免使用反向动力学系统(简称IK,通过单个控制手柄,变换一条骨骼链的姿态)。但是在传统反向动力学系统中,并没有对操作的骨骼链有运动的方面的限制,也就是说,只要存在一条骨骼链,设置好控制手柄,就一定可以在任何位置得到骨骼链的反向动力学计算结果。但是,在某些特殊情况下,比如动作捕捉。这种情况下对骨骼层级和联动效果有严格的要求,不可能使用任意的骨骼链。并且在这些情况下,每段骨骼间的运动根据严格的运动原理,是具有严格的运动限制的。所以如何快速的添加以及计算这种反向动力学中的运动限制尤为重要。
反向动力学角度限制问题由来已久,最初属于机器人领域。后来当反向动力学应用到CG动画制作中,该问题也引入到了电影行业。目前比较常用的JLA求解主要是属于机器人领域的牛顿拟合法,拉格朗日法以及后来出现的专用于CG领域的软约束以及惩罚算法。牛顿拟合以及拉格朗日法属于数值计算领域,虽然结果精度很高,但是计算消耗非常的高,在动画制作中并不好用。软约束和惩罚算法在计算约束时,在控制器超出可控范围过多后,又会出现约束失效的问题。实际在使用过程中依旧有诸多限制。
发明内容
本发明的目的是提供一种快速的反向动力学角度硬约束方法,以解决在动画制作过程中,采用现有的机器人领域的牛顿拟合法、拉格朗日法等手段,虽然精度高,但是计算消耗高,在动画制作中并不实用的问题。
本发明提供了如下的技术方案:
一种快速的反向动力学角度硬约束方法,包括以下步骤:
S1、通过反向运动学数值解法计算出各关节的角速度;
S2、使用各关节当前的旋转角度以及各关节的角度限制求得各关节的角速度上下限;
S3、比较并判断各关节的角速度是否处于各关节的角速度上下限之间,若是,则使用上述各关节的角速度更新各个关节的约束;若否,比较并判断各关节的角速度是否大于各关节的角速度上限,若是,则将超过角速度上限的关节的角速度设置成该关节的角速度上限,其余关节角速度上限保持不变,然后更新各个关节的约束,并进入S5;若否,则进入S1;
S4、判断各关节的约束是否满足反向动力学数值解法的终止条件,若是,则获得的各关节的约束为反向动力学数值解法的结果;若否,则返回S1;
S5、使用更新后的各关节执行S1-S3,同时将此时S3中所有超过角速度上限的关节的角速度对应的算法矩阵的行或列向量的所有元素置零;
S6、返回S1继续循环,最终获得各个关节的反向动力学数值解法结果。
优选的,所述S1中通过反向运动学数值解法计算出各关节的角速度,包括以下步骤:
S11、确定一个或者几个目标位置,让各个骨骼链做旋转变换,从而得到末端子骨骼所处的实际位置;
S12、比较末端子骨骼的目标位置与实际位置,算出速度修正量;
S13、利用角速度转换矩阵算出末端子骨骼的预期速度,加入速度修正量后得到末端子骨骼速度;
S14、通过反向动力学数值解法利用算法矩阵将得到的末端子骨骼速度转换为各关节的角速度。
优选的,所述S5和所述S14中算法矩阵相同,其包括雅克比矩阵、伪逆矩阵和黑塞矩阵。
优选的,所述S5中算法矩阵的行或列向量包括:当算法矩阵为行主序时为列向量,当算法矩阵为列主序时候为行向量。
本发明的有益效果是:
本发明一种快速的反向动力学角度硬约束方法,直接将计算过程插入反向动力学循环中,可以适用于多种反向动力学算法,保证角度硬约束的效果,并且,硬约束保证在任何条件下的反向动力学结果不会超过约束范围。同时在约束计算过程中,也是靠直接修改计算条件,而非增长约束条件来达到约束目的,保证了计算的速度。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明方法流程示意图;
图2是通过反向运动学数值解法计算出各关节的角速度的方法流程示意图。
具体实施方式
如图1所示,一种快速的反向动力学角度硬约束方法,包括以下步骤:
S1、通过反向运动学数值解法计算出各关节的角速度;
S2、使用各关节当前的旋转角度以及各关节的角度限制求得各关节的角速度上下限;
S3、比较并判断各关节的角速度是否处于各关节的角速度上下限之间,
若是,则使用上述各关节的角速度更新各个关节的约束;
若否,比较并判断各关节的角速度是否大于各关节的角速度上限,
若是,则将超过角速度上限的关节的角速度设置成该关节的角速度上限,其余关节角速度上限保持不变,然后更新各个关节的约束,并进入S5;
若否,则进入S1;
S4、判断各关节的约束是否满足反向动力学数值解法的终止条件,
若是,则获得的各关节的约束为反向动力学数值解法的结果;
若否,则返回S1;
S5、使用更新后的各关节执行S1-S3,同时将此时S3中所有超过角速度上限的关节的角速度对应的算法矩阵的行或列向量的所有元素置零;
S6、返回S1继续循环,最终获得各个关节的反向动力学数值解法结果。
如图2所示,通过反向运动学数值解法计算出各关节的角速度,包括以下步骤:
S11、确定一个或者几个目标位置,让各个骨骼链做旋转变换,从而得到末端子骨骼所处的实际位置;
S12、比较末端子骨骼的目标位置与实际位置,算出速度修正量;
S13、利用角速度转换矩阵算出末端子骨骼的预期速度,加入速度修正量后得到末端子骨骼速度;
S14、通过反向动力学数值解法利用算法矩阵将得到的末端子骨骼速度转换为各关节的角速度。
具体的,S5和S14中算法矩阵相同,其包括雅克比矩阵、伪逆矩阵和黑塞矩阵,S5中算法矩阵的行或列向量包括:当算法矩阵为行主序时为列向量,当算法矩阵为列主序时候为行向量。
实施例1:
(1)、构建雅克比矩阵、以及末端运动矩阵,使用反向动力学数值解法求解出各关节的旋转速度。
(2)、使用各关节当前的旋转角以及各关节的角度限制求得各关节的旋转速度上下限。
(3)、比照求得的旋转速度和各关节的旋转速度上下限,当所有关节的旋转速度均在范围内时,使用计算的旋转速度更新关节,同时判断是否满足反向动力学数值解法的终止条件。如果满足,该结果既是反向动力学结果,如果不满足终止条件,跳到步骤1继续计算。如果有关节的旋转速度超过了旋转速度限制,仅将超过的关节旋转设置成速度限制值,其余的关节旋转保持原值不变,更新所有关节的旋转。
(4)、使用更新过的关节构建雅克比矩阵以及末端运动矩阵,同时将步骤3中所有运动超限的关节旋转对应的雅克比矩阵的列向量(行主序时是列向量,如果列主序时候是行向量)的所有元素置零。再使用反向动力学数值解法求解出各关节的旋转速度。跳到步骤2继续循环。
将计算过程插入反向动力学循环中的具体代码:
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种快速的反向动力学角度硬约束方法,其特征在于,包括以下步骤:
S1、通过反向运动学数值解法计算出各关节的角速度;
S2、使用各关节当前的旋转角度以及各关节的角度限制求得各关节的角速度上下限;
S3、比较并判断各关节的角速度是否处于各关节的角速度上下限之间,
若是,则使用上述各关节的角速度更新各个关节的约束;
若否,比较并判断各关节的角速度是否大于各关节的角速度上限,
若是,则将超过角速度上限的关节的角速度设置成该关节的角速度上限,其余关节角速度上限保持不变,然后更新各个关节的约束,并进入S5;
若否,则进入S1;
S4、判断各关节的约束是否满足反向动力学数值解法的终止条件,
若是,则获得的各关节的约束为反向动力学数值解法的结果;
若否,则返回S1;
S5、使用更新后的各关节执行S1-S3,同时将此时S3中所有超过角速度上限的关节的角速度对应的算法矩阵的行或列向量的所有元素置零;
S6、返回S1继续循环,最终获得各个关节的反向动力学数值解法结果。
2.根据权利要求1所述的一种快速的反向动力学角度硬约束方法,其特征在于,所述S1中通过反向运动学数值解法计算出各关节的角速度,包括以下步骤:
S11、确定一个或者几个目标位置,让各个骨骼链做旋转变换,从而得到末端子骨骼所处的实际位置;
S12、比较末端子骨骼的目标位置与实际位置,算出速度修正量;
S13、利用角速度转换矩阵算出末端子骨骼的预期速度,加入速度修正量后得到末端子骨骼速度;
S14、通过反向动力学数值解法利用算法矩阵将得到的末端子骨骼速度转换为各关节的角速度。
3.根据权利要求2所述的一种快速的反向动力学角度硬约束方法,其特征在于,所述S5和所述S14中算法矩阵相同,其包括雅克比矩阵、伪逆矩阵和黑塞矩阵。
4.根据权利要求1所述的一种快速的反向动力学角度硬约束方法,其特征在于,所述S5中算法矩阵的行或列向量包括:当算法矩阵为行主序时为列向量,当算法矩阵为列主序时候为行向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010379167.9A CN111583366B (zh) | 2020-05-07 | 2020-05-07 | 一种快速的反向动力学角度硬约束方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010379167.9A CN111583366B (zh) | 2020-05-07 | 2020-05-07 | 一种快速的反向动力学角度硬约束方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111583366A true CN111583366A (zh) | 2020-08-25 |
CN111583366B CN111583366B (zh) | 2020-12-29 |
Family
ID=72113946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010379167.9A Active CN111583366B (zh) | 2020-05-07 | 2020-05-07 | 一种快速的反向动力学角度硬约束方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111583366B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000262767A (ja) * | 1999-03-12 | 2000-09-26 | Fujitsu Ltd | 玩具ロボット |
CN104517310A (zh) * | 2014-10-21 | 2015-04-15 | 无锡梵天信息技术股份有限公司 | 利用反向动力学仿真的机器人动画方法 |
CN107391940A (zh) * | 2017-07-25 | 2017-11-24 | 天津大学 | 基于肌骨模型的电刺激仿真优化方法 |
CN110531866A (zh) * | 2019-10-29 | 2019-12-03 | 深圳市瑞立视多媒体科技有限公司 | 基于改进的反向运动学进行姿态解算的方法及相关设备 |
CN111079071A (zh) * | 2016-08-16 | 2020-04-28 | 完美鲲鹏(北京)动漫科技有限公司 | 一种应用于类人形骨架的反向动力学解算方法及装置 |
-
2020
- 2020-05-07 CN CN202010379167.9A patent/CN111583366B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000262767A (ja) * | 1999-03-12 | 2000-09-26 | Fujitsu Ltd | 玩具ロボット |
CN104517310A (zh) * | 2014-10-21 | 2015-04-15 | 无锡梵天信息技术股份有限公司 | 利用反向动力学仿真的机器人动画方法 |
CN111079071A (zh) * | 2016-08-16 | 2020-04-28 | 完美鲲鹏(北京)动漫科技有限公司 | 一种应用于类人形骨架的反向动力学解算方法及装置 |
CN107391940A (zh) * | 2017-07-25 | 2017-11-24 | 天津大学 | 基于肌骨模型的电刺激仿真优化方法 |
CN110531866A (zh) * | 2019-10-29 | 2019-12-03 | 深圳市瑞立视多媒体科技有限公司 | 基于改进的反向运动学进行姿态解算的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111583366B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108568817B (zh) | 一种基于贝塞尔曲线的Delta机器人轨迹连接控制方法 | |
CN107662211B (zh) | 一种基于量子粒子群算法的空间机器人预测控制方法 | |
WO2018133439A1 (zh) | 一种考虑末端运动误差的六自由度机器人轨迹规划方法 | |
CN112757306B (zh) | 一种机械臂逆解多解选择和时间最优轨迹规划算法 | |
CN107505947B (zh) | 一种空间机器人捕获目标后消旋及协调控制方法 | |
CN109676610B (zh) | 一种断路器装配机器人及其实现工作轨迹优化的方法 | |
CN105138000A (zh) | 最优化基座位姿扰动的七自由度空间机械臂轨迹规划方法 | |
CN110253574B (zh) | 一种多任务机械臂位姿检测和误差补偿方法 | |
CN111590567B (zh) | 一种基于Omega手柄的空间机械臂遥操作规划方法 | |
CN105856231B (zh) | 一种特定构型六轴工业机器人的运动控制方法 | |
CN111679579A (zh) | 针对传感器和执行器故障系统的滑模预测容错控制方法 | |
CN114523477A (zh) | 关节位姿的校准方法、系统及存储介质 | |
CN112947430B (zh) | 一种移动机器人的智能轨迹跟踪控制方法 | |
CN111583366B (zh) | 一种快速的反向动力学角度硬约束方法 | |
CN111309002A (zh) | 一种基于矢量的轮式移动机器人避障方法及系统 | |
CN112882485A (zh) | 一种双足机器人逆运动学的几何计算方法 | |
Samy et al. | QP-based adaptive-gains compliance control in humanoid falls | |
CN116856944A (zh) | 基于力矩补偿的盾构机智能掘进油压均衡分配方法 | |
CN116494250A (zh) | 基于速度补偿的机械臂控制方法、控制器、介质及系统 | |
Liu et al. | An adaptive controller for image-based visual servoing of robot manipulators | |
CN111571586B (zh) | 一种反向动力学自由度的动态约束方法 | |
CN107967241B (zh) | 一种空间自由漂浮机器人的基座扰动计算方法 | |
Meng et al. | Kinematics modeling method of continuum space manipulator based on virtual discrete-jointed manipulator models | |
CN116893627B (zh) | 基于迭代步长的运动平台位姿控制方法、装置与存储介质 | |
Wang et al. | Smooth trajectory planning for manipulator of cotton harvesting machinery based on quaternion and b-spline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |