Print

发布时间: 2016-11-25
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.20161114
2016 | Volumn 21 | Number 11




    计算机图形学    




  <<上一篇 




  下一篇>> 





面向多骨骼及多风格的行走运动控制器
expand article info 鲁明, 张迎凯, 刘晓平
合肥工业大学计算机与信息学院,合肥 230009

摘要

目的 基于控制器的运动生成方法存在一些局限性,对骨骼参数、运动风格变化的适应性较差。提出一种面向多骨骼及多风格的行走运动控制器及其生成方法。 方法 首先使用改进的比例微分控制器作为预处理,使仿真过程适应较大的比例微分增益,然后应用特定规则调整比例微分系数并使用旋转迭代算法进行优化,最后设置各种与稳定性和风格相关的目标函数,使用协方差矩阵自适应进化策略对控制器中的目标姿态进行优化。 结果 本文方法可以生成一系列对应不同骨架、不同运动风格的行走控制器,在效率、稳定性、鲁棒性和多样性方面相较其他方法有一定优势,其中稳定运行时间可提高一个数量级。 结论 本文方法生成的控制器运动稳定性好,风格多样可控,不需要大量手工调整,不要求用户具有较强专业背景,增强了控制器的适应性,扩展了控制器生成运动的应用范围。

关键词

物理动画; 运动控制器; 适应性; 稳定性; 优化

Multi-skeleton-oriented and multi-style-oriented locomotion controller
expand article info Lu Ming, Zhang Yingkai, Liu Xiaoping
College of Computer and Information, Hefei University of Technology, Hefei 230009, China
Supported by: National Natural Science Foundation of China (61370167, 61305093)

Abstract

Objective Motion generation methods based on motion controllers are widely investigated and cause difficulty in computer animation. These methods are limited by poor adaptabilities of bone parameters and style variations. Given these challenges, current motion controllers cannot rapidly adapt to various user demands. This paper proposes a multi-skeleton, multi-style-oriented locomotion controller, and describes the method for its generation. Method First, we use an improved proportional derivative controller for preprocessing, with the aid of heuristic method to adopt the high proportional and derivative gains during our simulation process. We then apply specific rules based on skeletal variations to tune the proportional and derivative parameters of all joints. Next, we apply the twiddle iteration algorithm to optimize the proportional and derivative parameters of hip joint for the purpose of improving motion stability. Finally, we set up several objective functions aimed at maintaining motion stability and expanding motion style diversity to optimize the target pose of the controllers, and we choose the covariance matrix adaption evolution strategy to process the optimization. Result Experimental results show that the proposed method can generate a series of walking controllers mapped to different skeletal parameters and styles. Furthermore, the method is efficient, stable, robust, and diverse in styles. Specifically, the stability of the method is an order of magnitude higher than that of other methods. Conclusion The proposed method can generate motions with good stability and changeable styles in certain degrees. The proportional derivative parameters and target poses are generated automatically through optimization, and only initial configuration sets are required. Our method can easily be learned by users with less professional skills. This study thus improves adaptability of motion generation methods based on motion controllers, and expands the application scope of motion controllers.

Key words

physical animation; locomotion controller; adaptability; stability; optimization

0 引言

角色动画是计算机图形学的研究热点,制作效果逼真的角色动画是游戏、电影、虚拟现实领域的热门需求。当前,骨骼动画是3维角色动画的主流制作方法,传统的骨骼动画主要由关键帧插值生成或从运动捕捉数据中生成,然而这两种生成方法都存在着数据难以重用、适应性差等问题。

研究者们为了解决这些问题,提出了众多运动生成和编辑方法,以更加有效地创作和修改运动数据。一些研究者借鉴机器人学等领域的相关研究,引入物理模型,提出了基于控制器的人体运动生成和仿真方法[1]。基于现实世界的物理定律,使用控制器生成的运动不仅在视觉上真实可靠,同时也有更强的适应性,例如当地面的摩擦系数、弹性系数和坡度等参数发生变化或对应的骨架参数发生变化时,关键帧动画和动捕数据可能会因约束被破坏变的不再适用,而基于物理的控制器生成运动可以适应这些环境,物理和动画之间的联系越来越紧密。Yin等人[2]提出了一种Simple Biped Controller (Simbicon),使用比例微分控制器(PD控制器)和有限状态自动机生成简单的周期性运动,简化了控制器运动的生成方式。Tan等人[3]使用基于神经演化的拓扑扩展方法对控制器进行离线优化,生成自行车骑行运动。Wei等人[4]通过对人体的103根骨骼和823块肌肉进行精密建模,生成了较为真实的游泳运动。Lesa等人[5]基于运动的高层次特性,使用优化算法和目标函数建立了多种运动控制器。Tan等人[6]提出了一种更加稳定的控制器,可以适应高增益、长仿真时间步的极端情况。Lee等人[7]提出了一种基于数据驱动的控制器生成方式,可以将多个独立的控制器聚合成一个单一的多功能控制器。

基于控制器的运动生成方法仍然存在一些局限性,一种控制器只能生成一段同样的运动,运动风格单一[8],想要得到不同风格的运动需手工调整控制器目标姿态或由其他动作捕捉数据生成新的控制器;控制器对应的骨骼是唯一的,一旦骨骼参数发生变化,当前控制器变得不再适用。以上这些局限性限制了控制器生成运动的广泛应用。一些研究者已经针对这些问题进行了讨论,试图扩展控制器的适应性。Yin等人[9]使用多种连续方法对控制器进行优化,实现控制器生成运动对环境参数变化的自适应。Liu等人[10]通过对动捕数据片段进行参数化来构造控制器,生成多种跑酷运动。潘志庚等人[11]将动作捕获数据与动力学方法结合,引入人工神经网络进行计算,产生既真实又能对外界施加的作用力作出反应的人体运动。Hodgins等人[12]提出将控制器生成运动转移到另一个角色的概念和方法,但未在其基础上进一步讨论风格化。Wang等人[13]基于动力学原理对Simbicon进行改进,并用优化算法对控制器进行调整,使其生成运动更符合视觉预期和人体运动规律,并在一定程度上适应角色骨骼参数的变化,但由于目标函数过于复杂,且从动力学角度对控制器进行修改,导致其生成运动稳定性不佳。Coros等人[14]综合应用动力学和运动学原理,提出一种通用的行走控制器生成框架,可生成多种步态和多种风格的运动,同时适应角色比例变化,但其方法需要大量手工调整。Argawal等人[15-16]基于运动差异和帕累托最优,使用优化的方法生成风格多样的运动,但未对骨骼变化做出讨论。由上可见,在增强控制器适应性的研究中,仍然存在方法复杂、稳定性差、风格和骨骼参数不能调整等缺陷。

针对以上问题,提出一种面向多骨骼及多风格的行走运动控制器及其生成方法,使用改进的PD控制器作为预处理,使仿真过程适应较大的比例微分增益,应用特定规则调整比例微分系数并用旋转迭代算法(Twiddle算法)进行优化,设置各种与稳定性和风格相关的目标函数,使用协方差矩阵自适应进化策略(CMA-ES)对控制器中的目标姿态进行优化,生成一系列对应不同骨架、不同运动风格的行走控制器。本文工作基于对参数的优化调整,虽在一定程度上增加了离线处理时间,但无需应用大量动力学原理,无需大量手工调整,不要求用户具有较强专业背景,扩展了控制器生成运动的应用范围。

1 总体思路

研究者们提出的控制器具有不同的形式[2, 5, 7],本文选取一种基础控制器,描述如何在其基础上进行优化扩展。

1.1 基础控制器

在不改变控制机制的前提下对基础控制器的参数进行优化调整,所选取的基础控制器需要具有原理简单,稳定性强,参数丰富等特性。在考察若干经典控制器后,选取Simbicon作为基础控制器平台,进行扩展和优化。Simbicon是Yin等人[2]于2007年提出的一种控制器,可应用于2D和3D角色,生成简单的周期性运动。

Simbicon的运动控制策略包含3方面:

1)有限状态自动机。将一段周期性运动建模成含有数个状态的有限状态自动机,如图 1所示,单个圆表示某种状态,每个状态中包含各关节的目标姿态$\boldsymbol{\theta }$;箭头表示一个目标姿态向另一个目标姿态的状态转换过程。通过周期性的状态转移机制,驱动仿真骨架不断运动。

图 1 Simbicon的有限状态自动机
Fig. 1 Finite state machine of Simbicon

2)PD控制器。用PD控制器计算关节内部力矩,具体形式为

$ \boldsymbol{\tau} {\rm{ = }}{k_p}(\boldsymbol{{\theta _d}}-\boldsymbol{\theta} )-{k_d}\boldsymbol{\dot \theta} $ (1)

式中,$\boldsymbol{\tau}$表示某关节的内部力矩,${k_p}$${k_d}$表示PD控制器中的比例系数和微分系数,$\boldsymbol{{\theta _d}}$是关节的目标姿态,$\boldsymbol{\theta }$是关节当前达到的姿态,$\boldsymbol{\dot \theta}$是关节当前的速度。

3)平衡反馈。Simbicon对摆动腿髋关节设置了反馈机制来增强仿真骨架在运动时的稳定性

$ {\theta _d} = {\theta _{d0}} + {C_d}d + {C_v}v $ (2)

式中,${\theta _d}$表示修正后的目标姿态,${\theta _{d0}}$表示未经修正的目标姿态,$d$表示支撑脚到重心的距离在地面上的投影,$v$表示重心的速度,${C_d}$${C_v}$为平衡反馈系数。平衡反馈机制使Simbicon生成的运动较为稳定。

此外,Simbicon对外公开了大部分源码,使得在其基础上进行优化调整较为方便,但是其所使用的Open Dynamics Engine(ODE)物理引擎代码已较为陈旧,不适应当今物理仿真的需求,本文将其移植到较新的PhysX3物理引擎上。

1.2 流程

本文的优化调整过程如图 2所示。首先引入改进的PD控制器作为预处理,使仿真过程适应较大比例微分增益;然后根据控制器对应骨骼变化,应用特定规则和Twiddle算法对比例微分系数进行优化调整,这两个参数对应Simbicon中PD控制器的${k_p}$${k_d}$;最后根据风格差异,使用CMA-ES对目标姿态和平衡系数进行优化,目标姿态对应Simbicon有限状态自动机中包含的目标姿态$\boldsymbol{\theta }$,而平衡反馈系数对应Simbicon平衡反馈机制中的${C_d}$${C_v}$。通过对Simbicon各部分的参数进行优化调整,达到扩展Simbicon适应性的目的。

图 2 本文的优化调整过程
Fig. 2 Optimization process of our methods

2 适应性优化

为了从基本的行走控制器生成面向不同风格、不同骨架的新控制器,需要对控制器的各项参数进行优化调整。为了适应优化调整过程中较大的比例微分增益,用改进的比例微分控制器(SPD控制器)代替基本的PD控制器作为预处理。对控制器的优化调整分为两步,首先判断控制器对应骨架是否发生变化,对原控制器的比例系数和微分系数进行优化调整;然后根据所需的运动风格,设置目标函数,对原控制器定义的目标姿态进行优化,最终得到新的控制器。

2.1 预处理

当控制器对应的骨架形态和物理参数发生变化,或仿真的环境参数发生变化时,导致当前姿态与目标姿态差异增大,需要在控制器中使用更大的比例微分系数,使得生成力矩在数值上不稳定,进而影响整个仿真过程的稳定性。Tan等人[6]认为想要获得更好的稳定性,必须使用一种启发式的方法,对PD控制器计算出的力矩进行预测并补偿。本文引入这种SPD控制器作为预处理,使仿真过程适应高增益。

基本的PD控制器如式(1)所示。在SPD控制器中,使用下一时间片的目标姿态和速度计算力矩的

$ \boldsymbol{\tau} {\rm{ = }}{k_p}(\boldsymbol{\theta _d^{n + 1}} - \boldsymbol{{\theta ^{n + 1}}}) - {k_d}\boldsymbol{{{\dot \theta }^{n + 1}}} $ (3)

式中,$\boldsymbol{\theta _d^{n + 1}}$表示下个时间片的关节目标姿态;$\boldsymbol{{\theta ^{n + 1}}}$$\boldsymbol{{{\dot \theta }^{n + 1}}}$表示下个时间片的预测姿态和预测速度,可由当前时间片的姿态和速度进行积分计算得到

$ \boldsymbol{{\theta ^{n + 1}}} = \boldsymbol{{{\theta }^n}} + \Delta t\boldsymbol{{{\dot \theta }^n}} $ (4)

$ \boldsymbol{{{\dot \theta }^{n + 1}}} = \boldsymbol{{{\dot \theta }^n}} + \Delta t\boldsymbol{{{\ddot \theta }^n}} $ (5)

式中,$\boldsymbol{{{\dot \theta }^n}}$$\boldsymbol{{{\ddot \theta }^n}}$分别表示当前时间片下关节的速度和加速度,可直接从物理引擎中获取。

2.2 比例系数和微分系数优化策略

若新控制器对应的骨架与原有控制器相比在形态和物理参数上有一定程度的差异,则原有控制器的比例微分系数不再适用,需要进行优化调整。

控制器提供外部力矩模拟人体运动时的内部力矩,使骨骼旋转,继而产生可信的运动。当骨骼的几何和物理参数发生变化时,为了达到与之前相似的运动效果,关节的内部力矩会发生改变。为了模拟这种变化,需要对PD控制器的比例微分系数进行相应的调整。

对于某根骨骼,某时刻瞬时加速度为$\boldsymbol{\ddot{\theta }}$,对应内部力矩为

$ \boldsymbol{\tau} = I\boldsymbol{\ddot \theta} $ (6)

$I$表示这根骨骼绕转轴的转动惯量。

由式(3)和式(6),PD控制器提供的外部力矩和人体的内部力矩相等,可得比例关系

$ {K_{{p_{{\rm{new}}}}}} = {K_p}\left( {\frac{{{I_{{\rm{new}}}}}}{I}} \right) $ (7)

$ {K_{{d_{{\rm{new}}}}}} = {K_d}\left( {\frac{{{I_{{\rm{new}}}}}}{I}} \right) $ (8)

${K_{{p_{{\rm{new}}}}}}$${K_{{d_{{\rm{new}}}}}}$表示改变后的骨骼对应的比例微分系数,${{I_{{\rm{new}}}}}$表示改变后骨骼的转动惯量。式(7)和式(8)反映了骨骼参数改变时调整控制器比例和微分系数需要遵循的规则。

在实际进行调整时,需要根据经验判断关节力矩与哪些骨骼的运动存在较大耦合,再应用规则进行调整。Hodgins等人[12]认为对于行走运动,当小腿的长度和质量发生变化时,不仅对膝盖关节的力矩要求会发生较大变化,对大腿髋关节的力矩要求也会发生较大变化,但是对于上身的肩部、颈部和手臂关节,力矩变化相对较小,只需根据规则对膝盖关节和大腿髋关节的比例微分系数作出调整。此外由于耦合的不确定性,经上述方法调整后,生成运动的稳定性会受到影响,需要对调整造成的扰动进行补偿。运动中,大腿髋关节提供的力矩对稳定性至关重要,很多调整控制器运动稳定性的方法都会单独对大腿髋关节力矩进行调整,例如在Simbicon中,为了解耦摆动腿姿态与躯干俯仰角以维持稳定,大腿髋关节的力矩计算是独立于其他关节,在世界坐标系下完成的。为了提高控制器生成运动的稳定性,需要对大腿髋关节的比例系数和微分系数进行优化。

本文基于Twiddle算法对大腿髋关节的比例微分系数进行优化。Twiddle算法的思想来源于组合数学中一种遍历n物体m排列的方法,后演变成一种通用性的迭代求解参数最优值的算法[17],广泛应用于二次规划问题求解等领域[18],可针对特定问题领域的背景做相应的调整,适用于PD控制器的参数求解。使用该方法对大腿髋关节处的比例微分系数进行调整后可增强运动的稳定性。该算法的输入输出及流程如下:

输入:设置为初始状态的仿真骨架;根据骨骼长度和质量变化预先调整的参数${k_p}$${k_d}$;骨骼可适应的最大比例微分系数${K_{{p_{_{{\rm{max}}}}}}}$${K_{{d_{_{{\rm{max}}}}}}}$;迭代过程中PD参数的偏移值${d_p}$${d_d}$;迭代停止用的阈值$ \propto $

输出:优化后的${k_p}$${k_d}$

流程:

$ \begin{array}{l} P = [{K_p}, {K_d}], dP = [{d_p}, {d_d}], {P_{{\rm{max}}}} = [{K_{{p_{_{{\rm{max}}}}}}}, {K_{{d_{_{{\rm{max}}}}}}}]\\ \;\;\;\;\;\;best\_res = run(P)\\ \;\;\;\;\;\;{\rm{while}}\;sun(dP) > \propto \\ \;\;\;\;\;\;\;\;\;{\rm{for}}\;i\;{\rm{in}}\;{\rm{0}}..{\rm{2}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{if}}\;P[\;i\;] + dP[\;i\;] > {P_{{\rm{max}}}}[\;i\;]\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;dP[\;i\;] = \left| {\;{P_{{\rm{max}}}}[\;i\;] - P[\;i\;]\;} \right|/2\\ \;\;\;\;\;\;\;\;\;\;\;\;\;P[\;i\;] + = dP[\;i\;]\\ \;\;\;\;\;\;\;\;\;\;\;\;\;res = run(P)\\ \;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{if}}\;res < best\_res\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;best\_res = res\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;dP[\;i\;]\; * \; = 1.1\\ \;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{else}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{if}}\;P[\;i\;] + dP[\;i\;] < 0\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;dP[\;i\;] = P[\;i\;]/2\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;P[\;i\;]\; - \; = 2\; * \;dP[\;i\;]\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;res = run(P)\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{if}}\;res < best\_res\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;best\_res\;\; = \;\;res\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;dP[\;i\;]\; * \; = 1.05\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{else}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;P[\;i\;]\; + \; = dP[\;i\;]\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;dP[\;i\;]\; * \; = 0.95 \end{array} $

其中,$run(\;)$返回运动过程中的跟踪误差;$sum(\;)$对数组中的元素进行求和。

2.3 目标姿态优化策略

若骨架发生改变,对比例微分系数进行调整可以生成稳定的行走运动,但由于控制器中的目标姿态未发生变化,生成运动风格不符合骨架改变后的视觉预期,所以仍需对控制器中的目标姿态进行优化调整;若骨架未发生改变,可通过对目标姿态进行优化来改变原控制器的运动风格,扩展行走控制器的应用范围。

目标姿态优化过程中,涉及的参数包括全身各关节的目标姿态${\boldsymbol{\theta} _d}$及大腿髋关节的平衡反馈系数${C_d}$${C_v}$,数量较多,需要考虑优化算法的选取和目标函数的形式。

对于优化算法的选取,需要考虑如下问题:

1)优化参数向量维度高,且整个优化过程集成在物理仿真过程中,为了不让优化计算妨碍物理仿真的实时计算,所选取的优化算法时间复杂度需要尽可能的低,优化过程中对目标函数进行评估的次数需要尽可能的少;

2)之前的工作提高了生成运动的稳定性,所以优化过程中存在大量可行解区域,选取的优化算法应当能够避免优化过程陷入某一局部最优区域中。

本文选取CMA-ES对目标姿态进行优化。CMA-ES是一种迭代进化算法,广泛适用于各种非线性或非凸问题的优化求解。该方法的过程是维护一个参数向量的高斯分布,该分布由参数群的均值和协方差矩阵初始化而成,协方差矩阵的对角元素为$\sigma $,这是一个表示迭代步长的参数;迭代时从高斯分布中随机选组$M$组样本对目标函数进行评估,选出最佳的$N$组样本构成新的高斯分布,直至收敛[19]。该方法寻优效率高,对目标函数评估次数少,全局搜索能力强,满足本文工作对优化算法的要求。对于CMA-ES的3个参数$\sigma $$M$$N$,经过多次实验,选取$\sigma $=0.025,$M$=10,$N$=5。

图 3展示了使用CMA-ES方法进行一次扩展步长优化实验的过程,其中横坐标表示优化迭代的周期,纵坐标表示迭代周期中的步长平均值。优化进行的方向符合预期,未陷入局部最优,经过大约370个迭代周期后步长收敛于0.45 m,生成的运动运行1 000 s后仍未出现摔倒等异常情况,稳定性较好。

图 3 一次CMA-ES优化过程中的步长变化
Fig. 3 Step size curve duringone CMA-ES optimization

目标函数可以引导优化过程的进行方向本文目标函数由多个特征项加权而成,形式为

$ f(\boldsymbol{\theta }) = {\omega _1}g(\boldsymbol{\theta }) + {\omega _2}b(\boldsymbol{\theta }) + {\omega _3}s(\boldsymbol{\theta }) $ (9)

式中,${\omega _i}$表示各个特征项的权重系数,而$g(\boldsymbol{\theta })$$b(\boldsymbol{\theta })$$s(\boldsymbol{\theta })$分别表示姿态距离特征项、运动平衡特征项和运动风格特征项,每个特征项的含义如下:

1)姿态距离特征项。姿态距离特征项表达形式为

$ g(\boldsymbol{\theta }) = \sum\limits_{i = 0}^n {\left| {\boldsymbol{\theta {'_i}}-\boldsymbol{{\theta _i}}} \right|} $ (10)

式中,${\boldsymbol{\theta _i}}$表示每个关节的目标姿态初始值,而$\boldsymbol{\theta {'_i}}$表示经优化过程改变后的目标姿态当前值。$g(\boldsymbol{\theta })$计算了改变后目标姿态与初始姿态的欧氏距离。

$g(\boldsymbol{\theta })$实际上是一个惩罚项,其意义在于惩罚目标姿态改变对物理仿真造成的不稳定,以及惩罚目标姿态改变对于原有运动风格的不恰当修改。

2)运动稳定特征项。在本文工作中,通过迭代优化的方法,在逐步改变运动风格前提下,维持控制器生成运动的稳定性。因此,需要在优化的目标函数中设定用于维持运动稳定性的特征项,其表达形式为

$ \begin{array}{l} \;\;b(\boldsymbol{\theta }) = {k_1}\left| {n' - n} \right| + \\ {k_2}\left| {a' - a} \right| + {k_3}\left| {r' - r} \right| \end{array} $ (11)

该特征项是由多个子项组成的,${k_i}$表示权重系数。$\left| {n'-n} \right|$$n'$表示仿真过程中最多有多少根骨骼与地面接触,而$n$表示正常运动时最多应有多少骨骼与地面接触。在正常行走运动过程中,最多应该只有两脚的骨骼可以与地面接触,而其他有任意多根骨骼与地面接触的情况都可认为发生了摔倒等特殊情况,且与地面接触的骨骼数目越多,则可认为该运动的稳定性越差。$\left| {a'-a} \right|$$a'$表示仿真过程中上身躯干骨骼与地面的最大倾角,而$a$表示正常运动时上身躯干骨骼与地面的最大倾角。显然,若上身驱赶骨骼发生了较大的倾斜,则表明当前运动陷入了不稳定的状态,目标函数需要对这种情形进行惩罚。$\left| {r'-r} \right|$$r'$表示仿真过程中最小支撑面积,而$r$表示正常运动时至少应有的最小支撑面积。支撑面积对稳定性的影响也是不言而喻的,过小的支撑面积会导致运动的不稳定。

3)运动风格特征项。$s(\boldsymbol{\theta })$是运动风格特征项,其与运动稳定特征项$b(\boldsymbol{\theta })$有相同的形式,都是由多个子项加权而成的,即

$ s(\boldsymbol{\theta }) = \sum\limits_{i = 0}^n {{w_i}\left| {m{'_i} - {m_i}} \right|} $ (12)

${m{'_i}}$表示某个风格参数的预定值,而${{m_i}}$表示该风格参数的当前值,${{w_i}}$是权重系数。与$b(\boldsymbol{\theta })$不同的是,$s(\boldsymbol{\theta })$是一个框架,在不同的运动中具有不同的形式,因为各种不同的运动关注的风格可能是不同的,需要根据运动的特点,以及想要改变的风格特性,加入各种不同的子项对运动的风格进行调整。

如需要改变步态,生成不同步伐长度和宽度的运动,可将运动风格特征项$s(\boldsymbol{\theta })$设置为

$ s(\boldsymbol{\theta }) = {w_1}\left| {l'-l} \right| + {w_2}\left| {d'-d} \right| $ (13)

式中,$l$表示当前步态下步伐的长度,${l'}$表示目标步态下步伐长度,$d$表示当前步伐的宽度,${d'}$表示目标步伐宽度。

如需改变摆动脚的抬脚高度和抬脚速度,生成一种类似高抬腿的行走风格,可将运动风格特征项$s(\boldsymbol{\theta })$设置为

$ s(\boldsymbol{\theta }) = {w_1}\left| {v' - v} \right| + {w_2}\left| {h' - h} \right| $ (14)

式中,$v$${v'}$分别表示当前状态的抬脚速度和目标抬脚速度,$h$${h'}$分别表示当前状态的抬脚高度和目标抬脚高度。

如想生成其他种类风格的运动,还可在风格项$s(\boldsymbol{\theta })$中加入更多表示风格的子项,例如加入控制手臂摆动速度和幅度的风格子项,或者参考生物力学中的理论,加入控制运动过程中能量效率和力矩比例的风格子项。根据需求加入不同的风格子项,可在一定程度上控制和定义生成运动的风格。

3 实验与分析

本文实验环境处理器为Core i7 3770K,内存为8 GB,显卡为GTX660,使用OpenGL 4.3作为图形渲染底层,使用PhysX 3.3.1作为物理仿真底层。本文中仅给出实验结果图片,感兴趣的读者可以到http://v.youku.com/v_show/id_XMTQ1MTQ1OTk3Mg==.html观看本文实验结果视频。

实验使用的骨架如图 4所示,下文实验结果图中的角色在此骨架基础上渲染了蒙皮。

图 4 实验中使用的骨架
Fig. 4 The skeleton used in experiments

该骨架中包含13块刚体,表示人体的多根骨骼,各段骨骼之间通过关节连接起来。为了进行物理仿真,需要设置骨骼和关节的几何物理参数,包括骨骼长宽,骨骼质量,摩擦系数和恢复系数等。实验中的初始骨骼和关节参数与Simbicon中的参数相同。

3.1 稳定性修正

由于ODE的代码较旧,已不再适应当今物理仿真的需求,本文将Simbicon移植到PhysX3引擎上。Giovanni等人[20]指出,在ODE、PhysX3、Bullet和Vortex这4种物理引擎中,PhysX3与Bullet的仿真稳定性最好;ODE的仿真结果与Vortex的仿真结果最为接近,但其结果之间也有3%的误差,而PhysX3与ODE的仿真结果差距较大,部分运动之间的误差可达80%,这是由两个引擎的物理仿真步长和动力学积分运算方式存在的差异所导致的,部分在ODE环境下可稳定进行的运动在PhysX3中无法保持稳定,所以首先使用Twiddle算法对大腿髋关节的比例微分参数进行优化,以获得可接受的稳定性。图 5是实验结果对比。

图 5 稳定性修正效果对比
Fig. 5 Comparison between Simbicon motion and T-Simbicon motion( (a)motion generated by Simbicon; (b)motion generated by T-Simbicon)

图 5(a)是Simbicon生成的行走运动,可以发现运动基本无法进行,仿真骨架行走两步走后即摔倒在地;而使用Twiddle算法对稳定性进行修正后得到的T-Simbicon(twiddled simbicon)可生成如图 5(b)所示的结果,此时仿真骨架可以保持稳定运动,持续行走1 000 s后仍未出现摔倒等异常状态。

3.2 控制器效果对比

实验中分别使用PD控制器和SPD控制器,对大腿髋关节选择不同的比例系数进行仿真,生成几段行走运动。目标姿态和当前姿态用四元数$\boldsymbol{{\theta _d}}$$\boldsymbol{\theta }$表示,追踪误差定义为

$ \delta = {\rm{co}}{{\rm{s}}^{ - 1}}(2 < \boldsymbol{{\theta _d}}, \boldsymbol{\theta} { > ^2} - 1) $ (15)

$ < \boldsymbol{{\theta _d}}, \boldsymbol{\theta} > $表示将$\boldsymbol{{\theta _d}}$$\boldsymbol{\theta }$看做向量进行向量点积。

为了对比PD控制器SPD控制器的效果,实验追踪了运动过程中左腿髋关节的误差变化情况,结果如图 6所示。

图 6 PD控制器与SPD控制器左腿髋关节跟踪误差对比
Fig. 6 Tracking error comparison between PD controllerand SPD controller

实验统计分析了了5 000个物理仿真步的运动片段。对于PD控制器,只有在${k_p}$=400的情况下可以维持稳定运动,且追踪误差峰值和方差较大,震荡明显,其余情况骨架会因扰动和过驱动而倒下;而对于SPD控制器,当${k_p}$分别为400、4 000、40 000时都可以维持稳定运动,且当增益较大时震荡较小,适合于精确追踪目标姿态、抗外界扰动能力强的仿真情况。

3.3 参数优化

实验选取T-Simbicon(可以生成如图 5(b)的行走运动)的参数作为优化起点,生成面向各种骨骼形态和各种步态风格的MSMSO(Multi-Skeleton and Multi-Style Oriented)控制器。

通过改变目标函数步态项,可以生成各种步伐大小的MSMSO控制器。基本的行走运动步长为0.25 m左右,将目标函数中的步长设置为0.45 m,进行优化后生成如图 7(a)所示的运动。

图 7 生成的各类MSMSO控制器
Fig. 7 Various kinds of MSMSO controllers generated ((a)regular walking of basic character; (b)high knee walking of basiccharacter; (c)regular walking of leggy character; (d)stride of leggy character; (e)regular walking of heavy arm character; (f)breast lifted walking of heavy arm character; (g)regular walking of heavy arm leggy character)

对行走步伐还可以进行许多类似的优化调整,图 8展示的是对步伐宽度进行不同优化调整的结果对比。

图 8 不同步伐宽度的MSMSO控制器
Fig. 8 MSMSO controllers with different step widths

在目标函数中设置抬脚高度,抬脚速度,手臂摆动幅度等,可生成如图 7(b)展示的一种手臂后伸的高抬腿行走运动。

MSMSO控制器所对应的骨架与T-Simbicon对应的骨架在某些骨骼参数上可以有所区别,如图 7(c)(d)中MSMSO控制器对应骨架的小腿长度为T-Simbicon中的两倍,半径不变,此时小腿骨骼的质量为原来的2倍,转动惯量也随之发生改变。而图 7(e)(f)中MSMSO控制器对应骨架的手臂半径变为T-Simbicon的两倍,长度不变,此时手臂骨骼的质量为原来的4倍,转动惯量也随之发生改变。

对应骨架改变时,需要对控制器中的比例微分参数进行优化调整。对于小腿变长为原来2倍的情况,对比例微分系数进行优化后生成的MSMSO控制器可以产生如图 7(c)中的行走运动,但是由于未优化控制器中的目标姿态,运动步伐较小,视觉上不自然;调整目标函数风格项中的步态参数,设置较大的步伐长度,使用CMA-ES对目标姿态进行优化得到的运动如图 7(d)所示,此时步伐的长度增加,整体上产生一种摇摆的风格,符合腿部变长重心升高后的视觉预期。对手臂半径增加为原来4倍的情况,进行比例微分参数的优化调整,除大腿髋关节外,还需对肩部关节的比例微分系数进行优化,才能抵抗上半身质量大幅增加后重心上移产生的扰动,优化后可得如图 7(e)所示的行走运动,此时人体上半身自然下垂,重心前移,有明显滞重感,符合对粗壮手臂角色运动的视觉预期。设定目标函数中控制手臂摆动幅度和躯干倾斜角度的风格项,使用CMA-ES优化对目标姿态进行优化后得到如图 7(f)所示的行走运动,与正常情况下的行走运动视觉效果相近。若腿部和手臂部分骨骼参数同时发生变化,仍可按相同流程对比例微分系数和目标姿态进行优化,生成如图 7(g)所示的运动。

MSMSO控制器也可以适应骨骼参数变化非对称的情况,如图 9中右手手臂半径变为原来的2倍,左手手臂半径不变,经过优化后能保持稳定运行,运行过程中上身自然右倾,符合视觉预期。

图 9 骨骼参数非对称变化的MSMSO控制器
Fig. 9 MSMSO controller with asymmetry bone variation

由于比例微分系数的优化调整过程和目标姿态的优化调整过程是分开进行的,可通过调整目标函数中风格特征项的参数,对不同骨骼生成风格相近的运动。图 10展示了一种风格化的控制器生成运动,对应了4种不同骨骼。

图 10 对应不同骨骼的风格化MSMSO控制器
Fig. 10 Stylized MSMSO controllers with different skeletons

3.4 实验结果分析

下面将从多个方面对实验结果进行分析,并进行对比。

1)效率。Coros等人[14]的工作需要510 min的手工调整时间,而本文对比例微分系数和目标姿态的优化调整由两个自动化流程组成;Wang等人[13]在目标姿态优化过程中使用了184个参数,其CMA-ES优化迭代次数大于3 000次,而本文在进行比例微分系数优化时的迭代次数为数百次,在目标姿态优化过程中使用了全身各关节(部分关节包括矢状和冠状两个方向的自由度)各个状态的目标姿态以及大腿髋关节的平衡反馈系数,参数数量不超过40个,CMA-ES优化迭代所需的次数仅为数百次,总体时间效率好于Wang等人[13]的工作,与Agrawal等人[15-16]的工作相近。

2)稳定性。由于本文引入SPD控制器,对比例微分系数进行了优化,同时在目标姿态优化过程中将运动稳定性作为重要特征项,因此本文方法生成的控制器运动稳定性较好。Wang等人[13]的工作注重于生成视觉真实的运动,其运动稳定运行时间在数十至数百秒之间;Coros等人[14]的工作中经常出现两腿骨骼相交的情况;本文工作生成的运动稳定运行时间在数百至数千秒,且由于将运动时的最小支撑面积作为目标函数项进行考虑,较少出现两腿骨骼相交的情况。

3)鲁棒性。引入SPD控制器并对比例微分系数进行优化,使得本文工作生成运动的鲁棒性较好。Wang等人[13]的工作中使用的骨架总质量最大为86 kg,且未尝试过作手臂负重行走;Coros等人[14]的工作中使用的骨架总质量为70 kg,可以在手臂处的负重为525 kg。在本文工作的实验中,曾尝试将4根手臂骨骼质量设置为原来的16倍(上部手臂骨骼质量40.8 kg,下部手臂骨骼质量60.6 kg,相当于在手臂处负重超过200 kg),其余部分保持不变,角色仍可正常行走一段时间,可见本文工作的鲁棒性较好。

4)多样性。本文工作将目标函数中风格特征项作为框架,可由用户根据需求自行设定风格参数,使得本文生成的运动风格可控且多样,图 11展示了通过设置矢状和冠状方向上的手臂摆动高度生成的两种运动。Wang等人[13]工作中着重于生成视觉真实和能量效率好的运动,缺乏生成更多风格运动的能力;Coros等人[14]工作中的运动风格通过手工调整得到,对于一些对于能量和效率要求较高的运动适应性较差,而本文可以通过在风格特征项中加入能量子项予以解决。

图 11 不同手臂摆动方向的运动
Fig. 11 Motions with different arm swinging directions

通过一些特殊的参数配置,本文工作可以生成一些超自然的运动,如图 12(a)行走时手臂向后摆动,而图 12(b)抬腿动作极为夸张。本文可生成的超自然运动效果与Agrawal等人[15-16]的工作接近,但是Agrawal等人[15-16]使用的人体角色骨架是唯一的,其方法缺少对骨骼参数变化的适应能力,而本文方法可以对不同骨骼参数进行适应,结果更为多样化。如图 12(b)中的角色手臂较为粗壮,以及图 10中4种不同骨架可以对应同种风格强烈的运动。

图 12 由特殊参数配置生成的超自然运动
Fig. 12 Supernatural motions generated by specialparameter configuration

4 结论

提出一种面向多骨骼及风格的行走运动控制器及其生成方法,该方法对行走控制器的各种参数进行优化,生成一系列新的行走控制器。本文方法增强了控制器生成运动方法的适应性和多样性,扩展了控制器的应用范围,同时易于理解,无需大量手动调整,不要求用户具有较强的专业背景,在效率、稳定性、鲁棒性、多样性上都有一定优势,其中稳定运行时间可提高一个数量级。

Simbicon只能处理简单运动,所以本文的讨论仅限于周期性的行走运动;在对目标姿态进行优化时,本文提出了多个目标函数,通过对参数的优化改变原有运动的风格,但是并未对目标函数单个特征项的作用进行详细实验分析,也没有分析多个特征项之间可能存在的冲突;本文对骨骼参数适应性优化工作并未考虑诸如拓扑结构变化等更为复杂的情况。未来工作会探索如何将现有工作推广到其他控制器,生成对应更多形态骨架的非周期性复杂运动,并对目标函数中的特征项进行探索和改进。

参考文献

  • [1] Xiang Y J, Arora J S, Abdel-Malek K. Physics-based modeling and simulation of human walking: a review of optimization-based and other approaches[J]. Structural and Multidisciplinary Optimization , 2010, 42 (1) : 1–23. DOI:10.1007/s00158-010-0496-8
  • [2] Yin K K, Loken K, van de Panne M. Simbicon: simple biped locomotion control[J]. ACM Transactions on Graphics (TOG) , 2007, 26 (3) : #105. DOI:10.1145/1276377.1276509
  • [3] Tan J, Gu Y T, Liu C K, et al. Learning bicycle stunts[J]. ACM Transactions on Graphics (TOG) , 2014, 33 (4) : #50. DOI:10.1145/2601097.2601121
  • [4] Si W G, Lee S H, Sifakis E, et al. Realistic biomechanical simulation and control of human swimming[J]. ACM Transactions on Graphics (TOG) , 2014, 34 (1) : #10. DOI:10.1145/2626346
  • [5] de Lasa M, Mordatch I, Hertzmann A. Feature-based locomotion controllers[J]. ACM Transactions on Graphics (TOG) , 2010, 29 (4) : #131. DOI:10.1145/1778765.1781157
  • [6] Tan J, Liu K R, Turk G. Stable proportional-derivative controllers[J]. IEEE Computer Graphics and Applications , 2011, 31 (4) : 34–44. DOI:10.1109/MCG.2011.30
  • [7] Lee Y, Lee S J, Popović Z. Compact character controllers[J]. ACM Transactions on Graphics (TOG) , 2009, 28 (5) : #169. DOI:10.1145/1618452.1618515
  • [8] Wang X, Sun S Q, Chai C L. An overview of 3D human motion editing and synthesis[J]. Journal of Image and Graphics , 2009, 14 (2) : 233–242. [ 王鑫, 孙守迁, 柴春雷. 3维人体运动编辑与合成技术综述[J]. 中国图象图形学报 , 2009, 14 (2) : 233–242. DOI:10.11834/jig.20090208 ]
  • [9] Yin K K, Coros S, Beaudoin P, et al. Continuation methods for adapting simulated skills[J]. ACM Transactions on Graphics (TOG) , 2008, 27 (3) : #81. DOI:10.1145/1360612.1360680
  • [10] Liu L B, Yin K K, van de Panne M, et al. Terrain runner: control, parameterization, composition, and planning for highly dynamic motions[J]. ACM Transactions on Graphics (TOG) , 2012, 31 (6) : #154. DOI:10.1145/2366145.2366173
  • [11] Pan Z G, Cheng X, Tang B. A real-time algorithm for character reactive animation generation[J]. Journal of Computer Research and Development , 2009, 46 (1) : 151–158. [ 潘志庚, 程熙, 唐冰. 一种实时虚拟人反应式动画生成算法[J]. 计算机研究与发展 , 2009, 46 (1) : 151–158. ]
  • [12] Hodgins J K, Pollard N S. Adapting simulated behaviors for new characters[C]//Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques. Los Angeles, CA, USA: ACM, 1997: 153-162.[DOI: 10.1145/258734.258822]
  • [13] Wang J M, Fleet D J, Hertzmann A. Optimizing walking controllers[J]. ACM Transactions on Graphics (TOG) , 2009, 28 (5) : #168. DOI:10.1145/1618452.1618514
  • [14] Coros S, Beaudoin P, van de Panne M. Generalized biped walking control[J]. ACM Transactions on Graphics (TOG) , 2010, 29 (4) : #130. DOI:10.1145/1778765.1781156
  • [15] Agrawal S, Shen S, van de Panne M. Diverse motion variations for physics-based character animation[C]//Proceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation. Lausanne, Switzerland: ACM, 2013: 37-44.[DOI: 10.1145/2485895.2485907]
  • [16] Agrawal S, van de Panne M. Pareto optimal control for natural and supernatural motions[C]//Proceedings of Motion on Games. Dublin, Ireland: ACM, 2013: 29-38.[DOI: 10.1145/2522628.2522902]
  • [17] Chase P J. Algorithm 382: combinations of M out of N objects[G6][J]. Communications of the ACM , 1970, 13 (6) : #368. DOI:10.1145/362384.362502
  • [18] Zou Z D. Twiddle iteration algorithm for multiple objective linear programming compromising solutions[J]. Operations Research and Management Science , 2004, 13 (1) : 68–72. [ 邹自德. 求多目标线性规划妥协解的旋转迭代算法[J]. 运筹与管理 , 2004, 13 (1) : 68–72. DOI:10.3969/j.issn.1007-3221.2004.01.014 ]
  • [19] Hansen N, Müller S D, Koumoutsakos P. Reducing the time complexity of the derandomized evolution strategy with covariance matrix adaptation (CMA-ES)[J]. Evolutionary Computation , 2003, 11 (1) : 1–18. DOI:10.1162/106365603321828970
  • [20] Giovanni S, Yin K K. LocoTest: deploying and evaluating physics-based locomotion on multiple simulation platforms[M]//Proceedings of the 4th International Conference on Motion in Games. Berlin Heidelberg, Germany: Springer, 2011: 227-241.[DOI: 10.1007/978-3-642-25090-3_20]