人体运动数据实时捕捉系统的设计与实现
韩新功
摘 要: 应用微机电技术设计人体运动数据实时捕捉系统。系统在人体的重点运动部位安装16个传感器收集人体运动数据,通过卡尔曼滤波给出人体运动数据实时状态估计值,使用微机电技术优化估计结果。按顺序对估计结果进行解算,将解算结果输入人体重要运动关节模型,实时进行三维虚拟显示。最后对系统的接线方式和捕捉指令进行实现。实验验证结果表明设计的系统综合捕捉效果强。
关键词: 人体运动数据; 实时捕捉系统; 卡尔曼滤波; 微机电技术
中图分类号: TN929.5?34 文献标识码: A 文章编号: 1004?373X(2017)11?0095?04
Design and implementation of human?body movement data real?time capture system
HAN Xingong
(College of Physical Education, Yanshan University, Qinhuangdao 066004, China)
Abstract: The micro electro mechanical system (MEMS) technology is used to design the human?body movement data real?time capture system. 16 sensors are installed in the important movement parts of the human?body system to collect the human?body movement data. The real?time state estimation value of human?body data is given by means of Kalman filtering, and optimized with MEMS technology. The evaluation results are resolved according to the sequence. The resolved results are input into the human?body important movement joint model for real?time 3D virtual display. The connection mode and capture instruction of the system are implemented. The experimental verification results show that the designed system has perfect integrated capture effect.
Keywords: human?body movement data; real?time capture system; Kalman filtering; MEMS technology
0 引 言
运动捕捉是应用探测手段通过三维仿真设备精确反应人体运动状态的一门技术,需要借助勘探、定位、仿真与数据处理等多种理论的支持,其复杂程度可见一斑[1]。随着科技的高速发展,三维动画设计、人体工程学、体育、生物学等行业均要应用到运动捕捉,使运动捕捉不断向着人机交互的方向发展起来。实时性是运动捕捉目前需要考虑的重点内容,众所周知,现如今普及程度非常高的3D电影就是依靠人体运动数据实时捕捉系统建立起来的[2]。在不远的未来,这种系统将会得到更加广泛的应用。
人体运动数据实时捕捉系统在我国的自主知识产权中相对落后,最早是被应用在运动员训练中,根据系统捕捉的运动员运动数据制定训练方案,取得了较好的训练效果[3]。文献[4]介绍了我国第一款自主研发的人体运动数据实时捕捉系统,被应用于三维动画设计行业中,但系统的价格昂贵,不易操作,实时捕捉能力和有效性都不高。文献[5]介绍了光学捕捉系统,系统有效性强,但实时捕捉能力弱。此外,还有声学捕捉系统和电磁场捕捉系统,但综合捕捉效果都不高。
为了提高综合捕捉效果,应用微机电技术设计人体运动数据实时捕捉系统。微机电技术的体积小,实用性强,对人体运动数据的速度探测十分准确且高效,同时兼具初始化快、成本低、兼容性强等能力。
1 人体运动动作估计函数设计
人体结构复杂,在人体的各个运动部位安装传感器收集人体运动数据,对传感器数据进行汇总和滤波,然后使用微机电技术优化人体运动动作,上传于计算机进行处理和三维模拟显示,设计人体运动数据实时捕捉系统的工作原理。
滤波是避免噪音干扰最直接也是最有用的一项处理步骤,对人体运动数据的滤波操作使用的是卡尔曼滤波,这是一种线性函数,对传感器中所有的输入和输出数据均进行递推处理,以完成最优估计[6]。卡尔曼滤波的最大优点是:在滤波过程中无需进行数据格式转换和频率转换,也不用对历史滤波结果进行存储,节省了系统空间和捕捉时间。
在卡尔曼滤波中,如果想得到本次人体运动数据的实时状态估计值,需要取得两项重要数据,包括上一次的人体运动数据估计值和本次人体运动数据预测值。因此在初次滤波情况下,需要先对人体运动数据的滤波顺序进行排列。用代表第次人体运动数据实时状态估计值,的估计误差用符号替代,和的函数定义式为:
(1)
式中:是传感器采样间隔;是的转置矩阵;是的偏导;是传感器采样余量;是传感器采样余量的协方差。
微机电技术的基础是机械运动学,所能应用到的重要硬件设备有加速度计和磁场测量仪器,人体运动离不开机械运动学,因此使用微机电技术优化卡尔曼滤波估计值是符合情理的[7]。假设,理想状态下(即无重力和磁场干扰)人体的静止动作矩阵为其函数表达式为:
(2)
式中:和是人体的俯仰角度和横滚角度。
所设计的人体运动数据实时捕捉系统在人体安装加速度计和磁场测量仪器,人体在静止状态下的加速度坐标系和磁场坐标系是重合的,但在运动状态下,人体受到重力加速度和磁场的影响导致两个坐标系分离,此时人体静止动作矩阵在加速度坐标系和磁场坐标系的投射向量分别为:
(3)
(4)
式中:是重力加速度;是磁场坐标系与地平面之间的投射向量,是磁场坐标系垂直于地平面的投射分量,和的作用是修正人体运动的磁场偏差;。
利用式(3),式(4)优化式(1)中的值,优化过程就是将看作转换成矩阵形式,所得结果可用来描述最优人体运动数据实时估计值。
2 人体运动数据实时捕捉设计
人体共有206块可运动关节,而且不同人的关节运动角度也存在差异[8]。若想将206块关节都精准模拟出来是无法实现的,各行业对人体运动数据实时捕捉系统的要求也并未达到如此高的精度,因此只要对能够表现出人体运动动作的重要运动关节进行建模即可。如图1所示,白色正方形表示人体运动频繁的关节,由于在关节上直接安装传感器会影响到人体的正常运动,因此每两个白色正方形之间的空位才是安装传感器的最佳位置。
人体运动动作估计函数无法描述人体具体关节的运动情况,应对估计结果进行解算,获取关节运动角度,再输入到人体模型中才能实现实时捕捉[9]。由图1可知,设计的人体运动数据实时捕捉系统在人体上共安装了16个传感器,每个传感器中采集到的数据经人体运动动作估计函数处理后都会产生四元数。
选择一个采集数据不为空的传感器,设为传感器1,与传感器1相连的传感器必然会产生转动数据。以传感器1为静止点,取得相邻传感器(设为传感器2)相对于静止点的运动角度数据并标记在人体重要运动关节模型中。再以传感器2为静止点,重复以上步骤,直到将模型中的所有关节的运动数据均填制成功。设计的人体运动数据实时捕捉系统规定了人体运动动作估计结果的解算顺序,如图2所示。按照图2的顺序进行解算,可保证系统不遗失任何一点的人体运动数据,提高系统有效性。
当一次人体运动数据全部解算成功后,将人体重要运动关节模型输出,实时进行三维虚拟显示。为保证系统的实时捕捉能力,使用.bvh格式的文件进行三维虚拟显示。
3 人体运动数据实时捕捉系统的实现
下面对设计的人体运动数据实时捕捉系统的接线方式以及捕捉指令进行实现。
3.1 系统接线的实现
系统将16个传感器分为四个等级,头部和胳膊为第一等级,胸、腹、臀为第二等级,左、右腿为第三和第四等级,如图3所示。每个等级中的传感器均通过RS 485总线连接,并单独配备一个数据采集器。四个数据采集器使用局域网将数据传输到计算机进行处理。
数据采集器使用的芯片是ARM?NRF2403,芯片具有体积小、工作温度延展性强的优点,工作电压范围为1.8~3.7 V,功率和传输速率可调节,可实现多点通信,而且编程形式简单。这款芯片还有一个2.4 GHz的无线发射模块,模块中配置了频率调节器、模式控制器、晶振以及调制解调器,增强了ARM?NRF2403芯片的兼容性[10]。ARM?NRF2403芯片借助无线发射模块与系统计算机成功实现数据通信。在不存在局域网的条件下,芯片也能通过简单的I/O端口与计算机进行连接。
3.2 系统捕捉指令的实现
系统对人體运动数据进行实时捕捉操作的指令是由数据采集器下达给传感器的,分成发送指令与接收指令两个进行。
发送指令执行:使用数据采集器的COM1端口实现指令通信,指令的具体内容是要求传感器实时给出四元数人体运动数据。计算机成功接收到数据采集器传输来的数据后,将判断数据中的传感器标记数量是否为16个,数量不对的话将再次通过COM1端口发送指令。
接收指令执行:使用数据采集器的COM2端口实现指令通信,它的作用是对人体运动数据进行查错,查错成功后再将数据实时传输到计算机。
4 实验验证
人体运动数据实时捕捉系统的综合捕捉效果包括实时捕捉能力和有效性,下面通过实验进行验证。
4.1 实时捕捉能力验证
实验开始前需要将本文设计的人体运动数据实时捕捉系统安装在实验对象的衣服上,系统实物图如图4所示。
实时捕捉能力强的系统拥有更快的捕获速度,并且捕获到的数据也极其稳定。实验应在通信正常的情况下进行,利用C++语言编辑本文设计的人体运动数据实时捕捉系统的数据结构体系,提前设置好系统的通信串口和波特率。在以往设计的捕捉系统中,捕获速度达到150 f/s,捕获速度波动值不超过600 Kb的系统可视为实时捕捉能力强。
使用C++语言让本文系统循环进行10次人体运动数据实时捕捉操作,验证结果如表1所示,表1中,0表示捕获速度低于150 f/s或波动值超过600 Kb,1则表示成功通过验证。表1中的数据显示,本文系统在10次验证实验的20个项目中,仅有1项未通过,输出这项数据进行分析,仅超出标准波动值3 Kb,可忽略不计。整体来讲,本文系统的实时捕捉能力位于高水准地位。
4.2 有效性验证
为了合理验证本文系统的有效性,考虑到4.1节中实验对象的体力已被消耗,本节实验中更换了实验对象。先让实验对象不断改变人体运动动作,使系统的捕获工作不间断运行,实验进行到3~4 min和7~8 min时,停止运动,其余时间均处于运动状态,1~2 min运动强度最大,5~6 min最小(但强度不为0)。实验现场如图5所示。
使用Matlab 6.5软件监控系统传感器中的加速度数据,观察系统对传感器数据的处理情况。Matlab 6.5输出的传感器加速度数据曲线如图6所示,可明显看出图6中的曲线是随着实验对象的运动强度而产生变化的,并且三个坐标轴的变化趋势也近似一致,说明本文系统能够有效捕捉到人体运动动作。
5 结 论
本文旨在设计综合捕捉效果强的人体运动数据实时捕捉系统,系统的主要硬件设备有传感器和数据采集器,主要技术理论有卡尔曼滤波和微机电技术。综合捕捉效果包括实时捕捉能力和有效性,通过实验验证了本文系统的以上两项,均得到了优异的验证结果。
参考文献
[1] 孙功勋,俞志伟,沈丹妮,等.基于样条插值的仿壁虎机器人足端脱附轨迹规划[J].现代电子技术,2015,38(16):9?12.
[2] 梁丰,张志利,李向阳,等.基于光学运动捕捉数据的虚拟人下肢运动控制方法[J].系统仿真学报,2015,27(2):327?335.
[3] 马占武,吴志丽.一种适用于人体运动学数据处理的平滑技术探索[J].当代体育科技,2015,5(11):12.
[4] 陈鹏展,李杰,罗漫.网络化人体运动跟踪系统研究[J].计算机应用,2015,35(8):2316?2320.
[5] GOWLAND P, GLOVER P. Comment on ICNIRP guidelines for limiting exposure to electric fields induced by movement of the human body in a static magnetic field and by time?varying magnetic fields below 1 Hz [J]. Health physics, 2014, 106(3): 418?425.
[6] 陶庆,孙文磊,康金胜,等.一种基于光学动作捕捉技术的座椅舒适性评价方法[J].河北科技大学学报,2015,36(5):459?466.
[7] 范钧.五轴数控机床轨迹生成方法研究[J].现代电子技术,2015,38(17):158?159.
[8] 杨华,刘国东,潘琢金,等.基于Kinect和ODE的人体运动仿真平台[J].系统仿真学报,2014,26(9):1922?1926.
[9] 张衡,张泽宇.基于MEMS传感器和Unity3D的人体运动捕获系统[J].图学学报,2015,36(2):274?281.
[10] 屈涛,郑长征.基于Glaser偶合反应的铜离子探针的合成及性能[J].西安工程大学学报,2015,29(5):561?566.
摘 要: 应用微机电技术设计人体运动数据实时捕捉系统。系统在人体的重点运动部位安装16个传感器收集人体运动数据,通过卡尔曼滤波给出人体运动数据实时状态估计值,使用微机电技术优化估计结果。按顺序对估计结果进行解算,将解算结果输入人体重要运动关节模型,实时进行三维虚拟显示。最后对系统的接线方式和捕捉指令进行实现。实验验证结果表明设计的系统综合捕捉效果强。
关键词: 人体运动数据; 实时捕捉系统; 卡尔曼滤波; 微机电技术
中图分类号: TN929.5?34 文献标识码: A 文章编号: 1004?373X(2017)11?0095?04
Design and implementation of human?body movement data real?time capture system
HAN Xingong
(College of Physical Education, Yanshan University, Qinhuangdao 066004, China)
Abstract: The micro electro mechanical system (MEMS) technology is used to design the human?body movement data real?time capture system. 16 sensors are installed in the important movement parts of the human?body system to collect the human?body movement data. The real?time state estimation value of human?body data is given by means of Kalman filtering, and optimized with MEMS technology. The evaluation results are resolved according to the sequence. The resolved results are input into the human?body important movement joint model for real?time 3D virtual display. The connection mode and capture instruction of the system are implemented. The experimental verification results show that the designed system has perfect integrated capture effect.
Keywords: human?body movement data; real?time capture system; Kalman filtering; MEMS technology
0 引 言
运动捕捉是应用探测手段通过三维仿真设备精确反应人体运动状态的一门技术,需要借助勘探、定位、仿真与数据处理等多种理论的支持,其复杂程度可见一斑[1]。随着科技的高速发展,三维动画设计、人体工程学、体育、生物学等行业均要应用到运动捕捉,使运动捕捉不断向着人机交互的方向发展起来。实时性是运动捕捉目前需要考虑的重点内容,众所周知,现如今普及程度非常高的3D电影就是依靠人体运动数据实时捕捉系统建立起来的[2]。在不远的未来,这种系统将会得到更加广泛的应用。
人体运动数据实时捕捉系统在我国的自主知识产权中相对落后,最早是被应用在运动员训练中,根据系统捕捉的运动员运动数据制定训练方案,取得了较好的训练效果[3]。文献[4]介绍了我国第一款自主研发的人体运动数据实时捕捉系统,被应用于三维动画设计行业中,但系统的价格昂贵,不易操作,实时捕捉能力和有效性都不高。文献[5]介绍了光学捕捉系统,系统有效性强,但实时捕捉能力弱。此外,还有声学捕捉系统和电磁场捕捉系统,但综合捕捉效果都不高。
为了提高综合捕捉效果,应用微机电技术设计人体运动数据实时捕捉系统。微机电技术的体积小,实用性强,对人体运动数据的速度探测十分准确且高效,同时兼具初始化快、成本低、兼容性强等能力。
1 人体运动动作估计函数设计
人体结构复杂,在人体的各个运动部位安装传感器收集人体运动数据,对传感器数据进行汇总和滤波,然后使用微机电技术优化人体运动动作,上传于计算机进行处理和三维模拟显示,设计人体运动数据实时捕捉系统的工作原理。
滤波是避免噪音干扰最直接也是最有用的一项处理步骤,对人体运动数据的滤波操作使用的是卡尔曼滤波,这是一种线性函数,对传感器中所有的输入和输出数据均进行递推处理,以完成最优估计[6]。卡尔曼滤波的最大优点是:在滤波过程中无需进行数据格式转换和频率转换,也不用对历史滤波结果进行存储,节省了系统空间和捕捉时间。
在卡尔曼滤波中,如果想得到本次人体运动数据的实时状态估计值,需要取得两项重要数据,包括上一次的人体运动数据估计值和本次人体运动数据预测值。因此在初次滤波情况下,需要先对人体运动数据的滤波顺序进行排列。用代表第次人体运动数据实时状态估计值,的估计误差用符号替代,和的函数定义式为:
(1)
式中:是传感器采样间隔;是的转置矩阵;是的偏导;是传感器采样余量;是传感器采样余量的协方差。
微机电技术的基础是机械运动学,所能应用到的重要硬件设备有加速度计和磁场测量仪器,人体运动离不开机械运动学,因此使用微机电技术优化卡尔曼滤波估计值是符合情理的[7]。假设,理想状态下(即无重力和磁场干扰)人体的静止动作矩阵为其函数表达式为:
(2)
式中:和是人体的俯仰角度和横滚角度。
所设计的人体运动数据实时捕捉系统在人体安装加速度计和磁场测量仪器,人体在静止状态下的加速度坐标系和磁场坐标系是重合的,但在运动状态下,人体受到重力加速度和磁场的影响导致两个坐标系分离,此时人体静止动作矩阵在加速度坐标系和磁场坐标系的投射向量分别为:
(3)
(4)
式中:是重力加速度;是磁场坐标系与地平面之间的投射向量,是磁场坐标系垂直于地平面的投射分量,和的作用是修正人体运动的磁场偏差;。
利用式(3),式(4)优化式(1)中的值,优化过程就是将看作转换成矩阵形式,所得结果可用来描述最优人体运动数据实时估计值。
2 人体运动数据实时捕捉设计
人体共有206块可运动关节,而且不同人的关节运动角度也存在差异[8]。若想将206块关节都精准模拟出来是无法实现的,各行业对人体运动数据实时捕捉系统的要求也并未达到如此高的精度,因此只要对能够表现出人体运动动作的重要运动关节进行建模即可。如图1所示,白色正方形表示人体运动频繁的关节,由于在关节上直接安装传感器会影响到人体的正常运动,因此每两个白色正方形之间的空位才是安装传感器的最佳位置。
人体运动动作估计函数无法描述人体具体关节的运动情况,应对估计结果进行解算,获取关节运动角度,再输入到人体模型中才能实现实时捕捉[9]。由图1可知,设计的人体运动数据实时捕捉系统在人体上共安装了16个传感器,每个传感器中采集到的数据经人体运动动作估计函数处理后都会产生四元数。
选择一个采集数据不为空的传感器,设为传感器1,与传感器1相连的传感器必然会产生转动数据。以传感器1为静止点,取得相邻传感器(设为传感器2)相对于静止点的运动角度数据并标记在人体重要运动关节模型中。再以传感器2为静止点,重复以上步骤,直到将模型中的所有关节的运动数据均填制成功。设计的人体运动数据实时捕捉系统规定了人体运动动作估计结果的解算顺序,如图2所示。按照图2的顺序进行解算,可保证系统不遗失任何一点的人体运动数据,提高系统有效性。
当一次人体运动数据全部解算成功后,将人体重要运动关节模型输出,实时进行三维虚拟显示。为保证系统的实时捕捉能力,使用.bvh格式的文件进行三维虚拟显示。
3 人体运动数据实时捕捉系统的实现
下面对设计的人体运动数据实时捕捉系统的接线方式以及捕捉指令进行实现。
3.1 系统接线的实现
系统将16个传感器分为四个等级,头部和胳膊为第一等级,胸、腹、臀为第二等级,左、右腿为第三和第四等级,如图3所示。每个等级中的传感器均通过RS 485总线连接,并单独配备一个数据采集器。四个数据采集器使用局域网将数据传输到计算机进行处理。
数据采集器使用的芯片是ARM?NRF2403,芯片具有体积小、工作温度延展性强的优点,工作电压范围为1.8~3.7 V,功率和传输速率可调节,可实现多点通信,而且编程形式简单。这款芯片还有一个2.4 GHz的无线发射模块,模块中配置了频率调节器、模式控制器、晶振以及调制解调器,增强了ARM?NRF2403芯片的兼容性[10]。ARM?NRF2403芯片借助无线发射模块与系统计算机成功实现数据通信。在不存在局域网的条件下,芯片也能通过简单的I/O端口与计算机进行连接。
3.2 系统捕捉指令的实现
系统对人體运动数据进行实时捕捉操作的指令是由数据采集器下达给传感器的,分成发送指令与接收指令两个进行。
发送指令执行:使用数据采集器的COM1端口实现指令通信,指令的具体内容是要求传感器实时给出四元数人体运动数据。计算机成功接收到数据采集器传输来的数据后,将判断数据中的传感器标记数量是否为16个,数量不对的话将再次通过COM1端口发送指令。
接收指令执行:使用数据采集器的COM2端口实现指令通信,它的作用是对人体运动数据进行查错,查错成功后再将数据实时传输到计算机。
4 实验验证
人体运动数据实时捕捉系统的综合捕捉效果包括实时捕捉能力和有效性,下面通过实验进行验证。
4.1 实时捕捉能力验证
实验开始前需要将本文设计的人体运动数据实时捕捉系统安装在实验对象的衣服上,系统实物图如图4所示。
实时捕捉能力强的系统拥有更快的捕获速度,并且捕获到的数据也极其稳定。实验应在通信正常的情况下进行,利用C++语言编辑本文设计的人体运动数据实时捕捉系统的数据结构体系,提前设置好系统的通信串口和波特率。在以往设计的捕捉系统中,捕获速度达到150 f/s,捕获速度波动值不超过600 Kb的系统可视为实时捕捉能力强。
使用C++语言让本文系统循环进行10次人体运动数据实时捕捉操作,验证结果如表1所示,表1中,0表示捕获速度低于150 f/s或波动值超过600 Kb,1则表示成功通过验证。表1中的数据显示,本文系统在10次验证实验的20个项目中,仅有1项未通过,输出这项数据进行分析,仅超出标准波动值3 Kb,可忽略不计。整体来讲,本文系统的实时捕捉能力位于高水准地位。
4.2 有效性验证
为了合理验证本文系统的有效性,考虑到4.1节中实验对象的体力已被消耗,本节实验中更换了实验对象。先让实验对象不断改变人体运动动作,使系统的捕获工作不间断运行,实验进行到3~4 min和7~8 min时,停止运动,其余时间均处于运动状态,1~2 min运动强度最大,5~6 min最小(但强度不为0)。实验现场如图5所示。
使用Matlab 6.5软件监控系统传感器中的加速度数据,观察系统对传感器数据的处理情况。Matlab 6.5输出的传感器加速度数据曲线如图6所示,可明显看出图6中的曲线是随着实验对象的运动强度而产生变化的,并且三个坐标轴的变化趋势也近似一致,说明本文系统能够有效捕捉到人体运动动作。
5 结 论
本文旨在设计综合捕捉效果强的人体运动数据实时捕捉系统,系统的主要硬件设备有传感器和数据采集器,主要技术理论有卡尔曼滤波和微机电技术。综合捕捉效果包括实时捕捉能力和有效性,通过实验验证了本文系统的以上两项,均得到了优异的验证结果。
参考文献
[1] 孙功勋,俞志伟,沈丹妮,等.基于样条插值的仿壁虎机器人足端脱附轨迹规划[J].现代电子技术,2015,38(16):9?12.
[2] 梁丰,张志利,李向阳,等.基于光学运动捕捉数据的虚拟人下肢运动控制方法[J].系统仿真学报,2015,27(2):327?335.
[3] 马占武,吴志丽.一种适用于人体运动学数据处理的平滑技术探索[J].当代体育科技,2015,5(11):12.
[4] 陈鹏展,李杰,罗漫.网络化人体运动跟踪系统研究[J].计算机应用,2015,35(8):2316?2320.
[5] GOWLAND P, GLOVER P. Comment on ICNIRP guidelines for limiting exposure to electric fields induced by movement of the human body in a static magnetic field and by time?varying magnetic fields below 1 Hz [J]. Health physics, 2014, 106(3): 418?425.
[6] 陶庆,孙文磊,康金胜,等.一种基于光学动作捕捉技术的座椅舒适性评价方法[J].河北科技大学学报,2015,36(5):459?466.
[7] 范钧.五轴数控机床轨迹生成方法研究[J].现代电子技术,2015,38(17):158?159.
[8] 杨华,刘国东,潘琢金,等.基于Kinect和ODE的人体运动仿真平台[J].系统仿真学报,2014,26(9):1922?1926.
[9] 张衡,张泽宇.基于MEMS传感器和Unity3D的人体运动捕获系统[J].图学学报,2015,36(2):274?281.
[10] 屈涛,郑长征.基于Glaser偶合反应的铜离子探针的合成及性能[J].西安工程大学学报,2015,29(5):561?566.