一种可穿戴式人体运动捕捉系统的设计与实现
2013-10-16王科俊
王科俊,陈 玮
(哈尔滨工程大学 自动化学院,哈尔滨 150001)
0 引言
人体运动捕捉系统是一种测量并重构人体在三维空间运动状况的技术装备,被广泛应用在医疗、游戏、虚拟现实和其它人机交互领域[1-2]。目前,国内外比较成熟的人体运动捕捉方案有光学式和惯性式两种。
光学式人体运动捕捉系统大多是基于计算机视觉,通过对人身体上特定光点的监视和跟踪来完成人体运动捕捉的任务,捕捉数据准确、标记点的位置和数量没有限制,但是成本高昂、数据处理复杂、容易造成标记点的闭塞。惯性式人体运动捕捉系统则是基于惯性导航的原理,通过MEMS惯性器件捕捉人体主要骨骼实时姿态角来完成人体运动捕捉的任务,该系统具有体积小、成本低、速度快、定标简单、实时性好等优点,同时还避免了光学式运动捕捉中视野受限、光学标记被遮挡等局限性[3]。因此,本文设计了一套基于惯性技术的可穿戴式人体运动捕捉系统,可以很好地满足系统对小型化、低功耗和低成本的要求。
1 运动捕捉硬件平台设计
根据惯性式运动捕捉设备原理和目前的技术,通常情况下,对于单人的运动捕捉,可以用图1所示的模型来描述[4]。
图1 系统模型Fig.1 System model
对于该模型,用户身上穿戴了11个惯性运动传感器,分布在左大臂、左小臂、右大臂、右小臂、左大腿、左小腿、右大腿、右小腿、头、胸和腰,每个运动传感器输出加速度、磁场强度、角速度惯性参数。传感器之间采用CAN 总线连接,在拥有较高数据率和可靠性的同时对传感器进行有线供电。在传感器和计算机之间作为桥梁的则是集中器,传感节点先将数据发送到集中器,再由其转发给接收器,接收器通过USB 口传给计算机。集中器与传感器之间采用有线连接,与计算机之间采用无线通信方式。
1.1 运动传感器
运动传感器需要实现的功能包括对3种不同类型惯性器件传感数据的采集、姿态角结算和有线通信。其硬件系统框图见图2。由图2可见,运动传感器主要包括5 个部分:MCU、加速度传感器、陀螺仪传感器、磁力计和CAN 接口。MCU 包括同步串行通信总线(I2C)、异步接收发送器(UART)、按键等模块,它控制节点的一系列操作。节点由有线供电,MCU 控制3种传感器的数据采集、姿态角解算和CAN 收发。
图2 运动传感器系统框图Fig.2 Motion sensor system diagram
运动传感器用到的主要芯片包括ST 的STM32F103(MCU)、Invensense 的 MPU6050(3轴加速度计和3轴陀螺仪)、Honeywell 的HMC5883L(3轴磁力计)和TI的SN65HVD230(CAN 收发)。各芯片参数见表1。
表1 芯片参数Table 1 Chip parameters
1.2 集中器
集中器,顾名思义,就是在系统中集中处理和转发传感数据的关键节点。主要包括4 部分:电源、MCU、CAN 收发器和无线收发模块。电源采用3.3V 恒压电源,MCU、CAN 收发器和运动传感器的MCU、CAN 收发器一致,无线收发模块采用透传Bluetooth模块。其要求实现的功能并不是很多,在初始化以后即申请加入CAN 网络,设定运行周期。在一个运行周期内,对每个运动传感器进行轮询和接收轮询过程。为了不影响同一个周期内的数据轮询过程,一次组网最多只允许一个运动传感器的加入。接着,轮询每一个已加入网络的传感节点,取得最新的传感数据,打包数据,并将其通过Bluetooth 模块传给计算机。轮询的同时,也将来自计算机的命令转发给运动传感器。
1.3 接收器
接收器作为整个数据采集系统与计算机的接口,其任务是管理集中器、转发命令的转发数据。由于所有的传感器数据都汇聚到接收器,从数据量的角度来看,它的负担是最重的,对数据的处理已经由各传感器和集中器分别承担,因此接收器的设计要点便是保证数据通道的可靠和足够的数据传输速率。
USB 接口的方便、灵活、高数据率,使得USB接口成为接收器与计算机之间通信的最合适方式。与集中器通信采用Bluetooth透传协议,这种方式的好处是整个系统加入和退出非常容易,系统扩容也相对简单。
2 运动传感器姿态角解算
通常将运动传感器作为一个惯性测量单元(inertial measurement unit,IMU),对于惯性测量单元中陀螺仪,加速度计和磁力计的测量数据定义到一个坐标系,一般称为载体坐标系b,取载体的重心为载体坐标系原点,3个轴分别与载体的纵轴、横轴和竖轴相重合,与之对应的绝对坐标系通常称为导航坐标系n。载体坐标系向导航坐标系的转换可以通过四元数法或欧拉角法实现,四元数法由于可以避免欧拉角的奇异问题而应用得更加广泛[5-6]。完成坐标系转换后,设计一个扩展Kalman滤波器,引入传感器偏差补偿和自适应的测量噪声协方差矩阵构造方法来提高姿态测量精度,减小载体线性加速度和周围局部磁场的干扰,实现3个自由度姿态角解算。
2.1 四元数坐标转换
载体坐标系和导航坐标系之间转换关系可以表示为:
其中旋转四元数和旋转矩阵分别为:
当旋转四元数确定后,由式(3)可以唯一确定(q)中的各元素。旋转四元数可以通过四元数微分方程来求取,四元数微分方程可表示为:
其中ω表示载体坐标系相对于导航坐标系角速度在载体坐标系上分量的四元数。可表示为:
通常假设在时间间隔(t,t+T)内,角速度ω是一个固定值,其中T是旋转四元数更新时间间隔。因此可以获得式(4)对应的离散时间模型:
利用陀螺仪输出的角速度数据,结合式(6)和旋转四元数qk,可获得更新后的四元数qk+1,进而计算获得旋转矩阵。
2.2 扩展Kalman滤波器设计
本文采用的传感器,具有相互正交的敏感轴,因此传感器输出为三维矢量。通过分析影响传感器测量精度的主要因素,建立如式(7)所示的加速度计、陀螺仪和磁力计传感器模型[7],然后利用传感器模型建立Kalman滤波的观测方程:
其中:a、ω、m分别表示加速度计、陀螺仪和磁力计的测量值;aK、ωK、mK为刻度系数矩阵(理想情况下为3×3的单位阵);ab、ωb、mb为偏移误差矩阵;av、ωv、mv为测量噪声矩阵,其为零均值的Gauss白噪声;abody为载体的线性加速度矩阵。
根据上述传感器模型设计的Kalman滤波器采用如下所示系统:
其中,状态矢量xk+1由旋转四元数、加速度计和磁力计的偏移误差矩阵构成;A为状态转移矩阵;ωk是协方差阵为Qk的过程噪声矢量;测量矢量yk+1由加速度计和磁力计的测量矢量组成;C为系统观测矩阵;bk是偏移误差矩阵;vk是协方差为Rk的测量噪声矢量。可获得Kalman滤波器的状态方程如下:
其中qwk、awk、mwk是不相关零均值Gauss白噪声。
滤波器的观测方程构建如下:
其中g为在地球上某一点的重力加速度;h为地球磁场在地球表面某一点的磁场强度。
在静止状态下,加速度计通过测量由重力引起的加速度,可以准确地计算出载体相对于水平面的倾斜角,但是当载体存在线性加速度时,利用加速度计输出值计算载体姿态角,将会出现较大的误差。为了解决这个问题,采用自适应的方法构造协方差:
其中ka为设定的权重因子。可以看到当载体线性加速度越大,协方差越大。
航向角的确定严重依赖于磁力计的输出,任何影响地磁接收的因素都会导致磁力计测量误差。利用磁倾角和磁力计的输出,采用自适应的方法构造协方差:
其中k1和k2为设定的权重因子;θ为这一点地球磁场强度方向和地球表面的夹角;可以通过式(13)求出:
由于式(10)的非线性,需要求取其Jacobian矩阵来进行线性化处理。设计的扩展Kalman滤波算法主要步骤包括计算增益、测量更新、自适应构造协方差矩阵和事件传播等。
3 人体模型的建立
人体是一个非常复杂的系统,由209块骨骼组成。为了实时测量并且重构人体在三维空间中的运动状况,需建立精确的人体运动学模型[8]。在人体运动捕捉系统中,人体模型的建立分为模型分离和模型重构两步。模型分离主要作用是分离出人体模型基本骨骼,模型重构则是根据骨骼旋转角度和位置重新组合人体模型。
3.1 模型分离
按照一般人体结构,人体运动学模型可以分离出最基本的11 块骨骼,分别为左大臂、左小臂、右大臂、右小臂、左大腿、左小腿、右大腿、右小腿、头、胸和腰,各部分关系见图3[9]。
图3 骨骼关系图Fig.3 Skeletal diagram
分离出的骨骼清楚地表示了与其它骨骼的从属关系,如右小腿为右大腿的子骨骼,而腰又为右大腿的父骨骼。子骨骼会跟着它的父骨骼转动,而父骨骼的平移和转动也会带着它所有子骨骼进行平移和转动。在简化的骨骼运动模型中,只有根骨骼(腰)做平移运动,其它所有骨骼只能做旋转运动。
3.2 模型重构
在光学式人体运动捕捉系统中,摄像头能够捕捉人身体上特定光点的空间坐标值,但在惯性式系统中,传感器只能获得各骨骼的旋转角度,须通过旋转角度和关节长度来计算出该骨骼在三维空间中的位置。在实际的模型控制中可以采用D-H 变换来解决这个问题[10-11]。例如,对于右下肢关节,可以建立右下肢运动坐标系见图4。把腰部作为根节点,建立人体右下肢5自由度运动坐标系,坐标系0、坐标系1和坐标系2的共同原点在髋关节,坐标系3的原点建立在膝关节中心。
图4 右下肢运动坐标系Fig.4 Coordinate system of the right lower limb
右下肢运动坐标系中,从i-1 坐标系到第i坐标系的D-H 变换矩阵如公式(5)所示:
其中θi表示从xi-1轴到xi轴沿zi-1旋转的角度;di表示节点i-1到节点i的距离;ai表示从zi-1轴和xi轴交点到节点i的距离;αi表示从zi-1轴到zi轴沿xi轴的偏移角度。
对于图4所示坐标系,其D-H 变换矩阵的变量值见表2。
表2 D-H 变换矩阵参数Table 2 D-H Transformation matrix parameters
因此,对于任意运动学模型,只要D-H 变换矩阵参数已知,则由式(6)可得任意关节的相对位置坐标:
4 实验结果
为了验证人体运动捕捉系统的性能和有效性,实验对象穿戴运动捕捉系统并连好线后做各种规定动作,摄像机记录人体运动情况的同时与运动捕捉结果进行比较,实验情况见图5。
实验过程中,实验对象先直立进行姿态初始化,初始姿势为立正姿势:两臂自然下垂,两眼平视前方,双腿微分放松站立。运动传感器获得初始姿态角并发送给集中器,集中器再将其传给计算机,计算机对使用VC++和OpenGL 建立的虚拟人体进行角度初始化。初始化完毕后实验对象执行图5所示的举手、抬腿、坐下、下蹲动作,虚拟人体模型则会实时还原实验人员的动作。将人体模型的动画和拍摄的视频进行比较,可见,三维人体模型在前端采集数据的驱动下,生动地还原了实验对象的运动情况。实验结果说明,运动传感器数据驱动的人体模型能够实时精确地再现真实人体运动,验证了系统的有效性。
5 结论
为了实时捕捉和还原人体运动,本文设计了一套基于惯性式的可穿戴式人体运动捕捉系统,从系统的前端数据采集、姿态角解算到人体运动再现均进行了原理阐述和设计。系统对日常生活中的常见动作进行了精准捕捉和还原,体现了本系统的良好性能。该系统成本低且实时性好,已运用在运动员的日常训练中,对训练中出现的问题能及时进行分析,对错误姿势能起到良好纠正作用。同时,本系统在电影拍摄、医疗康复、娱乐等方面还有更广泛的应用,市场前景广阔。
[1]容志能.惯性运动捕捉系统中传感数据的传输与处理[D].杭州:浙江大学,2012.
[2]万成凯.无标记人体运动捕捉及姿态估计的研究[D].北京:北京交通大学,2009.
[3]Xsense,Inc.Moven 惯性运动捕捉系统[EB/OL].2009.http://www.xsense.com/en/general/mvn.
[4]吴健康.人体运动捕捉三维再现系统[P].中国,200910086474,2009.
[5]Charry,E.,Umer,M.,Taylor,S.Design and validation of an ambulatory inertial system for 3-D measure-ments of low back movements[C]//Intelligent Sensors,Sensor Networks and Information Processing(ISSNIP),2011Seventh International Conference on,2011,58(63):6-9.
[6]Bainbridge,R.,Paradiso,J.A.Wireless hand gesture capture through wearable passive tag sensing[C]//Body Sensor Networks(BSN),2011International Conference on,2011,200(204):23-25.
[7]Abbate,N.,Basile,A.,Brigante,C.,et al.Development of a MEMS based wearable motion capture system[C]// Human System Interactions,2009,HSI’09.2nd Conference on,2009,255(259):21-23.
[8]Fujimori,Y.,Ohmura,Y.,Harada,T.,et al.Wearable motion capture suit with full-body tactile sensors,robotics and automation[C]//2009.ICRA'09.IEEE International Conference on,2009,3 186(3 193):12-17.
[9]Jian Xiang,Hongli Zhu.Subspace index method for 3D human motion,bio-inspired computing:Theories and applications[C]//2007.BIC-TA 2007.Second International Conference on,2007,67(69):14-17.
[10]Gamarnik,V.,Shu Pan,Malke,J.,et al.An integrated motion capture system for evaluation of neuromuscular disease patients[C]//Engineering in Medicine and Biology Society,2009.EMBC 2009.Annual International Conference of the IEEE,2009,218(221):3-6.
[11]Guangyi Shi,Yang He,Feng Ye,et al.Towards an ubiquitous motion capture system using inertial MEMS sensors and ZigBee network,Cyber Technology in Automation,Control,and Intelligent Systems(CYBER)[C]//2011IEEE International Conference on,2011,230(234):20-23.