IK 运动动力学逆运算的快速,简单迭代算法FABRIK

IK (Inverse kinematics) 运动动力学逆运算是机器人,游戏,动画中必须面对的运算问题。 本文介绍一种快速,简单的迭代方法FABRIK。 这种方法的英文全称是 Forward And  Backward  
Reaching  Inverse  Kinematics,也就是 前进和后退实现动力学逆运算。

python代码实现无约束单链请见:fabrik 算法的python 实现

因为是用图来表达,先说一下图中的意思:

每个图表示一个链条,p1,p2,p3,p4 表示节点位置, p1' 等表示第一次运算的节点位置,p1'' 等表示第二次运算的节点位置。

d1,d2,d3表示节点间的距离长度,认为是刚性的。

a图表示开始状态,其中t 点表示终端节点需要到达的目标位置。

b,c,d 图表示后退运算过程

e, f 图表示前进运算过程。

单个链条的计算 

首先,针对一条从首端到尾端的bone chain,以及一个对应的Target point,先计算整条chain的长度,从而判断这个Target point是否可到达。
1.1 如果不可到达,则要求根链条进行移动。通常的情境类似于一个人如果伸直了手或者一只长颈鹿伸长了

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值