人体6自由度运动参数无线测试系统BTViewer的设计与开发
2014-06-01李祥晨张茉莉魏传民张建文
李祥晨, 李 蕾, 张茉莉, 魏传民, 张建文
(1. 国家体育总局体育科学研究所,北京 100061;2. 河北大学艺术学院,河北 保定 071002)
人体6自由度运动参数无线测试系统BTViewer的设计与开发
李祥晨1, 李 蕾2, 张茉莉1, 魏传民1, 张建文1
(1. 国家体育总局体育科学研究所,北京 100061;2. 河北大学艺术学院,河北 保定 071002)
为解决测试人体在三维空间中的关节运动参数,自主设计了人体六自由度运动参数测试系统BTViewer。基于惯性传感器跟踪技术,设计了整体的系统平台工作流程,同时完成了相关算法。为降低误差、减少漂移现象,本实验采用集成的三轴加速度计、三轴磁力计的模块LSM303DLH以及三轴陀螺仪动态采集样本数据,通过无线装置传输到电脑,有效合理地对采集到的数据进行预处理,将原始数据互补滤波之后解析成实际数据,准确地得到人体六自由度运动参数。最后,运用Qt集成的OpenGL等模块进行曲线、三维等可视化显示。实验表明,该系统的设计达到了预期的要求,能够较好地跟踪人体6自由度运动参数。
6自由度;惯性传感器;互补滤波;可视化显示
自19世纪80年代开始,人体运动跟踪在人体康复、运动健身、学习动画中被广泛地应用。越来越多的中风或其他运动残疾的患者,开始利用运动跟踪来进行康复训练。康复运动是一个动态康复的过程,使患者的运动能力恢复正常[1]。为了达到这个目标,患者的运动行为不断地被检测和矫正。所以,检测和跟踪人体运动在居家康复计划中越来越重要[2]。而检测和跟踪人类运动最有效的方法就是实时地获得代表人体运动的姿态角和位置[3]。
通常的跟踪和定位技术主要包括视觉检测、光学系统、超声波、惯性跟踪技术等[4]。其中,基于光学的跟踪器[5]不适合健康看护;基于视觉、声学的跟踪器[6]不适合家庭使用;但是惯性跟踪技术在人体运动跟踪中具有以下的优点:不受跟踪范围的限制;跟踪速度快;不受环境的干扰;传感器的体积小便于携带[7]。所谓惯性跟踪就是利用惯性传感器来对目标位置和朝向进行跟踪。加速度计、陀螺仪等惯性传感器经常在导航和增强现实中被应用[8]。但是,由于传感器存在噪声或者偏置,加速度计在估计速度或者方向的时候,会存在漂移现象,因此在整个跟踪过程中需要进行外部修正[9]。
在Williamson和Andrews[10]的研究中,仅利用一个三轴加速度计来测量人体动态情况下的关节点倾角,利用重力加速度来对系统跟踪进行修正,该方法在人体快速运动的情况下优于基于低通滤波器处理加速度计信号。Rehbinder和Hu[11]在其研究中描述了一种基于MEMS陀螺仪和MEMS加速度计的姿态解算算法,由于缺少额外的起到互补性的传感器(磁力计),故在航向角上存在不可避免的角度漂移。2005年Zhou等[12]发现了一种新颖的人体上肢运动跟踪的方法,提出了一种基于模拟退火的优化方法[13]。为了抑制噪声,Zhou和Hu[14]利用扩展卡尔曼滤波器融合了加速度计和陀螺仪的数据进行实验,结果表明能够在一定程度上减少噪声和漂移,但是计算量较大。
为了更好地跟踪人体运动,本文提出一种基于加速度计、磁力计、陀螺仪的可绑定在用户身上的BTViewer测试跟踪系统。利用加速度计、磁力计、陀螺仪组成惯性跟踪系统来测量人体运动 6自由度信息(姿态角、加速度),很好地降低了噪声,一定程度上避免了漂移现象。该系统将采集到的数据借助于串口无线接收模块实时传送到PC机,同时开发了一套数据采集的软件,具有接收、保存、显示、传感器标定、数据滤波等功能。
1 系统设计
本系统的惯性传感器采用了将三轴磁力计和三轴加速度计集成在一个封装的二合一传感器模块LSM303DLH[15]里,三轴陀螺MPU-3050[16]采集加速度值、角速度值等参量,控制器采用的是CC430。为方便测量,简化人体设备穿戴,本系统采用多节点无线传输,将传感器穿戴在人体适当部位作为发送节点,接收端通过USB线与PC机相连,完成数据采集传输,进而在PC机上进行数据分析。LSM303DLH和MPU-3050通过I2C总线与单片机相连,如图1所示。
图1 硬件连接示意图
LSM303DLH集成三轴磁力计和三轴加速度计,采用数字接口。磁力计传感器的测量范围从1.3~8.1 gauss共分7档,用户可以自由选择。并且在20 gauss以内的磁场环境下都能够保持一致的测量效果和相同的敏感度。其分辨率可以达到8 m/gauss并且内部采用12位ADC,以保证对磁场强度的精确测量。采集频率为75 Hz,和采用霍尔效应原理的磁力计相比,LSM303DLH的功耗低,精度高,线性度好,并且不需要温度补偿。作为高集成度的传感器模组,除了磁力计以外,LSM303DLH还集成高性能的加速度计。加速度计同样采用12位ADC,可以达到1 mg的测量精度。加速度计可运行于低功耗模式,并有睡眠/唤醒功能,可大大降低功耗。同时,加速度计还集成了6轴方向检测,两路可编程中断接口。
2 开发
人体运动数据可视化获取系统软件包括下位机单片机软件和基于PC的上位机分析应用软件,这里只介绍上位机分析应用软件的设计实现。本系统的设计、开发和调试采用 C++语言编程,使用 Qt软件对程序进行编辑、编译和调试,流程图如图 2所示。该软件的主要功能有:① 实时数据接收;② 对获取到人体不同运动环节数据进行显示;③ 对读入的数据进行初步处理;④ 在线显示2D波形曲线,3D姿态显示;⑤ 在线进行陀螺仪零偏补偿,磁力计环境磁场补偿;⑥ 数据记录。
图2 数据接收示意图
2.1 数据接收
实时数据接收,即将硬件系统发出的数据实时接收到PC中。数据的发送与接收是以包为单位的,通过串口接收到数据包后进行解包,解析到加速度计、陀螺仪、地磁计各3个轴的值,共9个原始数据,以及航向角、翻滚角、俯仰角 3个姿态角,共计12个数据。
2.1.1 串口接收程序
要能接收到数据,首先要编写串口接收程序以便实现硬件与PC间的数据交互。程序的实现主要用到了以下 3个文件:Pcomm.h、Pcomm.lib和Pcomm.dll。将Pcomm.Lib添加到工程,这个文件主要用于指定 Pcomm.dll中各个功能函数的入口及地址,Pcomm.lib就像一个地图指出目的地的路标,而真正的函数是在Pcomm.dll中的。当然,为了方便调用,还要得到Pcomm.dll中的函数声明,这些函数声明就在Pcomm.h这个头文件中。本程序的接收界面如图3所示。
通过界面可以设置串口号、波特率等,点击打开按钮就会调用相应函数打开已选端口,进行数据接收并将解析后的数据做简单显示。
图3 程序接收界面
2.1.2 数据包结构及解析
数据是以十六进制数形式接收的,对于单个传感器来说,每个数据包有28个字节,包括包头码、数据段和校验码。其中,包头码占 2个字节,为固定值FEFE;数据段占24个字节,包含了3个姿态角,9个传感器原始数据,每个数据占2个字节;校验码占2个字节,为数据位连加的和。
在实验过程中,要研究各个部位的姿态以及姿态的变化,一个传感器通常是不能满足实验要求的,这就涉及到多个传感器的数据接收。多传感器的数据接收和单个传感器的数据接收是类似的,是以包为单位进行数据传输,包里包含了多个传感器的数据,包的长度比单个的要大。
根据数据包结构就能很容易对数据包进行解析。接收到数据包以后,依次读包头、数据段和校验码,主要对数据段进行处理,它包含了一包数据的主要信息。由于单片机是以八位字节发送的,而每个数据(如某个姿态角、某个轴的输出值)是十六位的,首先要将相邻的两个八位经过移动组合成十六位,得到码值,再将码值乘以量程得到实际输出值。
2.1.3 数据预处理
人在一般情况下的活动是较慢的,姿态解算系统在人体姿态跟踪测试过程中采集到的信号频率较低,为了对人体细小动作的精确捕捉,MEMS传感器的敏感度都比较高。由于IIR数字滤波器使用了输入输出反馈,因此,实际的应用中使用较低的阶次就可以到达需求,在滤波器的设计过程中只需选择满足要求的截止频率和足够大的阻带衰减就可完成去噪。由于在IIR数字滤波器去噪过程中运算次数较少且本身设计不是很复杂,因此,适用于实时系统。于是,在本实验中使用 3阶 Butterworth低通数字滤波器进行消除[17]。
图4为数据预处理图。
图4 数据预处理截图
从图4中可以看出,通过低通滤波器去噪后,高频噪声有效地被消除,为进一步进行误差补偿和姿态结算提供了保障。
2.1.4 基于互补滤波器的四元数姿态解算法
在人体姿态测量中常用的滤波器有互补滤波器[18]和卡尔曼滤波器[19]。互补滤波器对具有分明的高频和低频噪声输入信号进行融合有着很好的效果,而且相对于卡尔曼滤波,互补滤波器在结构上简单。本系统采用基于互补滤波器的四元数算法进行姿态解算。互补滤波器的主要构架如图5所示。利用两个传感器感测同一个物理量,但各自具有不同的频率噪声。S1是传感器 1所量测到的信号,其中包括一个待量测信号 S加上一个低频噪声N1;S2是传感器2所量测到的信号,其中包括一个待量测信号S加上一个高频噪声N2。
图5 互补滤波器的主要架构
一阶开路系统的低通滤波器,如图6所示。其中 Glpf(s)为转移函数,T为时间常数, U(s)为输入信号, Y(s)为输出信号,则数学表达式为:
图6 一阶低通滤波器
利用互补滤波器进行姿态解算,其计算量小、占用内存少、响应时间短的优势使其被应用于线速度不是很剧烈的人体动作姿态测试研究中。
2.2 数据显示
数据显示,即将获取到的人体运动信息(姿态角、加速度)在计算机上进行显示,可具体显示每个传感器的数据曲线,三维显示等,见图7~10。
图8 BTViewer人体6自由度测试系统在上位机中的加速度波形曲线图
图9 测试系统在上位机中地磁强度曲线图
图10 测试系统在上位机中角速度曲线图
2.3 数据保存
虽然Qt的Sql模块对数据库有很好的支持,但数据库操作相对文本操作比较麻烦,这里选择文本保存。这样做的目的是:① 可以对获取的加速度数据信息进行方便的保存;② 将获取的加速度信息保存成txt文本,可以方便以后的读取和使用,并能将获取到的加速度信息在其他软件平台下自由使用,比如可以在工程分析软件 Matlab 环境下进行使用。保存界面如图11所示。
图11 保存界面
2.4 芯片的在线标定与补偿
MEMS传感器由于体积小、价格低、制造工艺较简单,故在性能上存在精度低、噪声高、误差大等不足。因此为精确的实现姿态解算测量,需对所用 MEMS传感器进行标定补偿。影响MEMS传感器精度的误差源不外乎来自两个方面:传感器本身误差和外界环境干扰。
常用的磁力计补偿方法主要有:罗差法、简单标定算法和最小二乘法。本文采用最小二乘法对磁场进行标定,其误差补偿模型如下:
式(5)中,Mm_ 为3×3的偏移矩阵;M_SCi是比例因子;M_OSi是硬磁场补偿值;Msi_ 软磁场引起的转化矩阵;M(x, y, z)为磁力计输出值;M(x1, y1, z1)为校正后的值。采用立体 8字校准法采集标定环境中的磁场数据,进而,利用最小二乘法对数据进行处理,得到补偿系数。加速度计与陀螺仪也采用类似的方法进行标定。
本系统设计了在线标定窗口如图12所示。
图12 标定窗口
2.5 3D显示模型软件
三维显示用到的是OpenGL,Qt中集成了该模块。OpenGL是行业领域中最为广泛接纳的2D/3D图形API,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序,OpenGL是独立于视窗操作系统或其他操作系统的,亦是网络透明的,它的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”,是个与硬件无关的软件接口,可以在不同的平台之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。
运用Qt的OpenGL模块显示效果如图13。
图13 三维显示
3 系统验证
为了进一步分析该系统的可行性和测试精度,实验中将基于Nikon DTM-452C全站仪光学标记方法[21]测得的姿态角作为参考。可将输出的姿态角与BTViewer系统的人体6自由度中的姿态角进行比较。结果表明,当人体在任意方向运动时,基于光学标记和 BTViewer系统所测得的姿态角(俯仰角、航向角、横滚角)基本一致,光学系统与BTViewer系统的横滚角输出曲线如图14。
图14 横滚角波形曲线对比图
为了进一步验证人体 6自由度测试系统BTViewer的可行性和准确性,本实验在基于OpenGL下的3D演示软件和基于dirtect X下的人体三维仿真系统中显示 BTViewer系统的姿态信息,并和实际的人体运动姿态进行对比。单个传感器系统姿态测试演示如图15。
图15 单个传感器系统姿态测试演示
多个姿态测试单元组合测试人体姿态演示如图16所示,能够清晰地看到,BTViewer系统能够准确及时地跟踪人体运动,而且,具有便携性,能够随身携带获得运动数据。
图16 多个姿态测试单元组合测试人体姿态演示
4 结 论
本文主要介绍了人体 6自由度测试系统BTViewer的设计与开发,并且进行了人体动作的实时捕捉。系统设计的关键和难点在于对传感器数据的获取,将这些信息由无线发送到接收端,利用PC机对数据进行预处理,将人体运动数据解算成姿态角与加速度,并且进行可视化显示。
当然该平台中还存在一系列待解决的问题,如时间延时,抗外界干扰性能不足,无线传感器之间的相互干扰等,需进一步对底层的传感器进行优化和预处理,研究与改进上层算法。
[1] Sveistrup H. Motor rehabilitation using virtual reality [J]. NeuroEng, Rehab, 2004, 1(1): 10.
[2] Anderson C, Mhurchu C N, Robenach S, Clark M, Spencer C, Winsor A. Home or hospital for stroke rehabilitation results of a randomized controlled trial [J]. Stroke, 2000, 31: 1032-1037.
[3] Zhou Huiyu, Hu Huosheng, Harris N D, Hammerton J. Applications of wearable inertial sensors in estimation of upper limb movements [J]. Biomed Signal Process Control, 2006, 1 (1): 22-32.
[4] 马玉可. 一种微惯性跟踪器的设计及其在增强现实中的应用 [D]. 成都: 电子科技大学, 2010.
[5] Lu Chunmei, Ferrier N J. A digital video system for the automated measurement of repetitive joint motion [C]// IEEE Trans Info Tech Biomed, 2004: 399-404.
[6] Escolano F, Cazorla M, Gallardo D, Rizo R. Deformable templates for tracking and analysis of intravascular ultrasound sequences [C]// Proceedings of First International Workshop of Energy Minimization Methods in IEEE Conference on Computer Vision and Pattern Recognition Venecia, Mayo, 1997: 205-208.
[7] Huang Yetao, Liu Yue, Yongtian Wang. An augmented reality device for digital reconstruction of yuanmingyuan [C]// IEEE International Symposium on Mixed and Augmented Reality, 2009: 3-7.
[8] Uno Y, Kawato M, Suzuki R. Formation and control of optimal trajectory in human multijoint arm movement: Minimum torque-change model [J]. Biological Cybernetics, 1989, 61(2): 89-101.
[9] Bouten C V, Koekkoek K V, Verduim M, Kodde R, Janssen J D. A triaxial accelerometer and portable processing unit for the assessment daily physical activity [J]. IEEE Trans Biomed Eng, 1997, 44(3): 136-147.
[10] Williamson R, Andrews B J. Detecting absolute human knee angle and angular velocity using accelerometers and rate gyroscopes [J]. Med Biol Eng Comput, 2001, 39(3): 294-302.
[11] Rehbinder H, Hu Xiaoming. Drift-free attitude estimation for accelerated rigid bodies [C]// Proc IEEE Int Conf Robot Autom, Seoul, Korea, 2001: 4244-4249.
[12] Zhou Huiyu, Hu Huosheng, Harris N. Wearable inertial sensors for arm motion tracking in home-based rehabilitation [C]// Proceedings of Intelligent Autonomous Systems (IAS), Japan, 2006: 1-8.
[13] Zhou Huiyu, Hu Huosheng. Inertial motion tracking of human arm movements in stroke rehabilitation [C]// Proceedings of IEEE International Conference on Mechatronics and Automation, Canada, 2005: 1306-1311.
[14] Zhou Huiyu, Hu Huosheng. Kinematic model aided inertial motion tracking of human upper limb [C]// Proceedings of International Conference Info. Acqu, Hong Kong, 2005: 150-155.
[15] http://www.st.com/st-web-ui/static/active/en/resource/ technical/document/datasheet/DM00027543.pdf], 2013-11-01.
[16] http://www.invensense.com/cn/mems/gyro/mpu3050. html, 2011-11-14.
[17] 刘 荣. 人体运动信息获取及物理活动识别研究[D].武汉: 华中科技大学, 2009.
[18] Bachmann E R. Inertial and magnetic tracking of limb segment orientation for inserting humans into synthetic environments [D]. Monterey, California: Naval Postgraduate School, 2000.
[19] Kalman R E. A new approach to linear filtering and prediction problems [J]. Journal of Basic Engineering, 1960, 82: 35-45.
[20] Madgwick S O H, Harrison A J L, Vaidyanathan R. Estimation of IMU and MARG orientation using a gradient descent algorithm [C]// IEEE International Conference on Rehabilitation Robotics.Rehab Week Zurich, ETH Zurich Science City, Switzerland, 2011: 1-7.
[21] 李祥臣, 刘 星, 王科俊, 张明辉, 魏传民, 蹇 彪,侯祖贵. 基于全站仪的MARG静态姿态标定方法的研究[J]. 电子科技大学学报, 2012, 41(12): 47-53.
Human Body 6 Degree of Freedom Motion Parameters BTViewer Wireless Testing System Design and Development
Li Xiangchen1, Li Lei2, Zhang Moli1, Wei Chuanmin1, Zhang Jianwen1
(1. China Institute of Sports Science, Beijing 100061, China; 2. The Art institute of Hebei University, Baoding Hebei 071002, China)
In order to solve the test joint movement parameters of the human body in three-dimensional space, this paper puts forward a kind of independent design BTViewer six degrees of freedom motion parameters testing system of the human body. Based on the inertial sensor tracking technology, the working process of the overall design of the system platform, implement the algorithms at the same time. In order to reduce error and drift phenomenon, this experiment adopts the integrated three-axis accelerometer, the module LSM303DLH three-axis magnetometer and dynamic triaxial gyro samples data, transmitted to the computer via a wireless device, at the same time, the efficient of the collected data preprocessing, and complementary to the original data parsed into actual data after filtering, six degrees of freedom motion parameters accurately by the human body. Finally, using Qt integration of OpenGL to curve and 3D visualization display module. The design of the experiment show that the system has reached the expected requirement, 6 degree of freedom motion parameters can well track the human body.
6 degrees of freedom; inertial sensor; complementary filter; visual display
TP 391.9
A
2095-302X(2014)05-0780-07
2014-08-11;定稿日期:2014-08-20
李祥晨(1974–),男,山东阳谷人,高级工程师,博士。主要研究方向为体育系统仿真、体育智能仪器器材。E-mail:lixiangchen@ciss.cn