[source] Eurographics
[year] 2001
对基于物理的人体动画中人物的动态控制技术
Tracking input motion specified by a user
Dynamic Response
Comfort and balance control to compute the angular acceleration of joints
Assumes input motion is already realistic and is aimed at dynamically changing the input motion in real-time only when unexpected physical input is applied to the figure.
2 相关工作
分别回顾了 时空约束方法、 Dynamic Simulation (PDS) 、Motion Control Using Dynamics
3.系统描述
3.1 人体模型
骨架模型, 肌肉:设置力矩上下限(可由limit及角速度估计)
3.2运动表示
角速度轨迹
3.3 动力学模拟
Euler integration
ZMP & MMP
4 跟踪
4.1Agular Acceleration of Each Joint
这里就比较奇怪了…
文中讲用的是PDS的思想,但产生的不是力矩,而是对角度直接作用…
这点很淫荡,相当于直接曲线编辑了…那还叫什么动力学跟踪…
编辑时,Ferguson curve,( time, value, derivative) at knot points
1.确定target point: 最近的extremity point
2.曲线:q(s) = (2s^3 –3s^2+1)\theta + (-2s^3+3s^2)\theta_t + (s^3 – 2s^2+s)\dot \theta + (s^3-2s^2+s)\dot \theta_t
T = target_time –current_time, s= \frac{t – current_time}{T} (\theta_t, \dot \theta_t)目标
求二次导,且令s=0,可求出\DDot \theta
[这边 extremity points怎么求的啊?? Tell Me]
4.2Angular Acceleration of Limb Joints
腿跟手臂可能受到约束
5 Dynamic Motion Control
为了产生反应性动作。
新的角加速度由之前跟踪得到的加速度与一个加速度增量构成
5.1control foundation
5.1.1 comfort control
\tao = H(\theta) \ddot\theta + C(\theta,\ddot \theta) + G(\theta) + F(\theta)
H: moment of inertia
C:coriolis and centrifugal force
G:gravity
F:external force
\tao_{stress},I = {1,2,3种情况
目标,最小化上\tao_{stress}
5.1.2 Balance Control
5.2Control Strategy
f(\Delta \ddot \theta) = || + || + ||
即除了原始的增量外还要考虑 comfort 和 平衡
使之最小化,得到最优增量
对身体分三部分控制
5.3 Control Algorithm
几个部分之间相互作用,导致难以计算,因此按重要程度依次计算。 【有点扯啊,虽然见过类似处理,但这个也太粗暴了】
文中给出了伪代码,参考原文.
总得说来,还是通过对各关节角度的精巧控制来实现的。这种精巧的东西应该不是理解的方案。