郭瑾,高伟,刘德山,徐本强
随着虚拟现实技术和机器人技术的日益成熟,音视频相结合的虚拟人模拟实现仿真机器人舞蹈动画作为一种崭新的艺术形式受到越来越广泛的关注,在包括计算机游戏在内的各种娱乐应用领域有着广泛的应用前景。虚拟人舞蹈借助计算机动画技术,通过虚拟角色模型的表演,演绎了音乐与舞蹈的内在联系。
由于仿人机器人在运动过程中本身动作的复杂性,以及各关节自由度的灵活性,仿人机器人高难度动作的种种控制效果都不理想,因此研究其运动控制方法显得特别重要。当前对仿人机器人控制方法的研究主要集中在双足运动与双手协作两个方面。双足运动的常用控制方法是先进行姿态规划,再按稳定性最大的要求进行优化,以求出最稳定的步态[1-3];而双手协作也需要先对双手的运动路径与姿态进行规划,然后考虑其他约束条件对其运动轨迹进行优化。由此可知,运动姿态与轨迹规划对于仿人机器人双足运动与双手协作控制至关重要。为了获得仿人机器人运动姿态预规划所需要的数据,一般是在某个表演者(真人)的主要关节上安装特制的标记点,然后由该表演者做出各种所需的动作,再采用动作捕捉器快速和连续地记录下这些标记点的空间坐标,从而获取人体的运动数据[4-5]。采用动作捕捉器虽然能够得到控制仿人机器人所需的运动数据,但需要特定的场地和昂贵的动作捕捉设备,阻碍了仿人机器人运动控制的研究;此外,仿人机器人的关节数量和安装位置与真人也可能存在很大的差异,这就使得通过采集真人运动得到的关节运动数据与实际仿人机器人的关节运动数据可能存在较大的误差。
机器人的动作是表现在一定时间序列上的窒间位姿(位置和姿态)的集合。机器人的动作设计与实现是相当复杂的过程,它具有很大的主观性、模糊性,而且随着关节和自由度的增多,关节之间的相互影响程度的增大,动作设计和实现的工作量大大增加。
机器人的关节自由度数量和分布情况与机器人舞蹈动作的性能有直接的关系,自由度的多少决定了机器人的潜在应用能力。本文对机器人关节数量和分布与机器人的舞蹈动作之间的关系作了详细的分析。自由度设置过少,机器人的动作不灵活甚至无法实现。要实现机器人的各种舞蹈动作,关节自由度数目不能太少。但是基于能满足基本动作的情况下,尽量减少关节自由度,所以关节自由度也不能太多。
通过对NOBODY机器人视频动画的分析,如图1所示:
图1 仿人机器人二维模型
结合考虑仿人机器人的本身结构构造情况。为了更好的利用虚拟人模拟实现仿人机器人的舞蹈动画,本文中采用三维虚拟人最小骨骼模型是由全身的所有关节和骨骼段组成。三维虚拟人骨架模型包括54个关节(包括一个重心位置)和53块骨骼段,如图2所示:
图2 最小人体骨骼模型
每个部位体可以分别绕着各自的关节在不同的自由度方向上作旋转运动,产生虚拟人的运动。虚拟人模型的每个上肢有18个关节共32个自由度。其中肩关节有3个自由度,肘关节有2个自由度,腕关节有2个自由度,共7个自由度。为了表达复杂的舞蹈动作,每个手指定义了3个关节,其自由度分别是1,1,3,一共25个自由度[6-8]。
三维虚拟人最小骨骼模型不仅解决了仿人机器人的舞蹈动作复杂性的问题,又保证了仿人机器人舞蹈动作的完整性,从而基于三维虚拟人最小骨骼模型实现了仿人机器人的舞蹈动画。
为了更好的实现三维虚拟人仿真实现机器人舞蹈动画,本文特别设计了一个虚拟舞蹈动作关键帧数据库,存于专门的数组中。由于本论文中的舞蹈动画关键帧繁多,一一列出略显繁杂,故而仅以一段舞蹈视频中的关键帧为例,简单介绍一下本论文中的三维虚拟人舞蹈动画的虚拟数据库表的设计思想。是以8个关键帧代表的虚拟数据库表的简单举例,如表1所示:
表1 三维虚拟人实现仿人机器人舞蹈动画的虚拟数据库
本文中为了使关键手势之间更好的过渡,而设计了过渡函数。
void Rotation::RMiddle(GLfloat array[])
{
for(int i=0;i { if(array[i]!=RMemberAngle[i]) { RFreeN[i]=array[i]-RMemberAngle[i]; if(RFreeN[i]>=0.0f &&RFreeN[i]<0.1f||RFreeN[i]<0.0f &&RFreeN[i]>-0.1f) { RMemberAngle[i]=array[i]; if(ifcontinue=1)rcontinuous=1; } RMemberAngle[i]+=RFreeN[i]/160.0f; } } } 在这个函数中array数组是新的关键舞蹈动作数组中的数据,MINSIZE是经过宏定义的列坐标的总数,即各个关节需要控制的总数。RmemberAngle数组是用于记录上一次变换后的数组,RfreeN数组负责记录新数据和记忆数据之差,然后用这个差数据去除以一个特定的阈值,在本文设计中,定义该阈值为160.0f,该阈值的大小决定了舞蹈关键动作之间过渡的速度,阈值越小速度越快,反之则越大。在过渡函数被调用的过程中,判断新数组和记忆数组的差值是否已经足够小,如果足够小,则直接将新数组中的数据赋值给记忆数组,以免产生无限循环的状况。 三维虚拟人舞蹈动作的平滑度直接影响到舞蹈运动的可懂性。虚拟人舞蹈动作的特殊性在于它是有一些关键动作合成的动画序列,相邻的两个舞蹈动作之间存在着很大的动作差异,如果不进行平滑处理,将导致舞蹈动作在相邻关键动作的衔接处产生大幅度变化,这样将产生跳帧现象,给人失真的感觉。加入设计的过渡函数后,动作平缓过渡,动作衔接流畅,比较符合真实状态下机器人的舞蹈动画。 NOBODY机器人舞蹈视频的二维关键帧截图,如图3所示: 图3 NOBODY机器人舞蹈二维关键帧截图 三维虚拟人骨骼模型读取表1虚拟数据库的关键帧舞蹈动作实现NOBODY机器人舞蹈动画的仿真结果,如图4所示: 图4 三维虚拟人实现机器人舞蹈动画的仿真结果 本文基于三维虚拟人的骨骼模型仿真实现了仿人机器人的舞蹈动画。论文中通过分析机器人舞蹈动作运动的基本规律和实现动作的基本方法,基于此建立了三维虚拟人实现机器人舞蹈动作的关键帧数据库,在此基础上利用中间帧的过渡函数实现了虚拟人骨骼模型仿真实现了机器人的舞蹈动画。进一步的工作将研究实现自动提取二维视频的关键帧算法以及二维关键帧转换为三维关键帧的方法,这样就可以实现二维视频自动驱动三维虚拟人实现机器人的舞蹈动画。 [1]Kim J Y,Park I W.Walking control algorithm of biped humanoid robot on uneven and inclined floor[J].Journal of Intelligent &Robotic Systems,2007,48(4):457-484. [2]Harada K,Kajita S.Real-time planning of humanoid robot's gait for force-controlled manipulation[J].IEEE-ASME Transactions on Mechatronics,2007,12(1):53-62. [3]Yang H S,Yong-Ho Seo,Yeong-Nam Chae,et al .Design and development of biped humanoid robot,AM12,for social interaction with humans[C]// Proc of the 6th IEEE RAS International Conference on Humanoid Robots.Princeton:IEEE,2006:352-357. [4]Hirose M,Ogawa K.Honda humanoid robots development[J].Philosophical Transactions of the Royal Society A:Mathematical Physical and Engineering Sciences,2007,365(1850):ll-19. [5]Nakaoka S,Nakazawa A.Task model of lower body motion for a biped humanoid robot to imitate human dances[C]//Proc of 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.Edmonton:IEEE,2005:3157-3162 [6]Herda L,Fua P,Plaenkers R,et al.Using skeleton-based tracking to increase the reliability of optical motion capture[J].Human Movement Science Journal,2001,20(3):313-341. [7]Herda L,Fua P,Plaenkers R,et al.Skeleton-based motion capture for robust reconstruction of human motion[A].In:Proceedings of Computer Animation 2000,Philadelphia,Pennsylvania,2000,77-85. [8]Raunhardt,D.Boulic.R.Motion Constraint.The Visual Computer 2009(25):509-518.4 结束语