于 波,夏海生,Shull Peter B
(上海交通大学 机械系统与振动国家重点实验室,上海 200240)
设计与制造
微传感器测量运动状态下的人体躯干倾角
于 波,夏海生,Shull Peter B
(上海交通大学 机械系统与振动国家重点实验室,上海 200240)
精确地测量与控制躯干部的姿态对于人体和仿人机器人的运动学研究具有重要意义。先前的研究大多基于泛用算法,实验条件单一。基于陀螺仪和磁力计的数据融合,提出了一种用于估算运动状态下人体躯干倾角的算法。实验结果表明:在不同运动状态下,算法的均方根误差为1.81°±0.77°。该算法可以应用在有关人体和机器人运动平衡性的研究中。
惯性传感器; 人体运动学; 卡尔曼滤波器
在人体运动稳定性的研究中,能够精确地估计和控制躯干部位姿态是至关重要的。人体上半身的质量集中在躯干部,当其偏离正常位置达到一定程度时,人体就会失去平衡[1]。其中,沿左右方向偏离躯干中轴(medial-lateral,M/L)面的倾斜角,可以作为衡量人体是否失衡的标准,在临床上具有重要的实用意义[2,3]。同时,仿人两足机器人的运动控制中也需要对机器人躯干部的重心进行检测[4]。
目前,惯性测量单元(inertial measurement unit,IMU)及磁力计等微型传感器被广泛应用于运动学研究中,测量运动状态下人体躯干的倾角[5~7]。然而,各类传感器都存在不同程度的误差。陀螺仪可以测量角速度,再将其积分得到角度,结果会产生显著的漂移。加速度计通过测量重力加速度在各个坐标轴的分量计算角度,会受到运动加速度的干扰。因此,需要设计科学的算法以减小误差。一种基于陀螺仪的加权傅里叶组合滤波器可以有效降低陀螺仪因漂移产生的误差[8]。卡尔曼滤波器也可以有效地融合加速度计和陀螺仪的数据[9]。此外,一种结合了惯性测量单元和磁力计的梯度下降算法,也被用于测量人体运动时的姿态[10]。但是,目前的研究大多数都是在有限的条件下进行验证,运动模式单一,速度相对缓慢,并没有涵盖包括走、跑在内的常见运动方式,不能体现其泛用性。
本文介绍一种新的用于估计常见运动状态下人体躯干倾角的算法。算法基于磁强计和陀螺仪数据融合,通过采集不同的运动状态下的数据,计算人体躯干在M/L平面上的倾角,并与其他常见算法进行比较。
算法包括初始化和融合算法两部分(图1)。算法中,世界坐标系R0定义为:X0轴平行于水平面指向受试者前进方向(即垂直于M/L平面),Z0轴竖直向上,为右手坐标系。传感器坐标系RS同为右手坐标系,坐标原点位于传感器中心。
图1 算法框图Fig 1 Block diagram of algorithm
1.1 初始化
外界环境中的磁场会对磁力计造成干扰,通过椭圆拟合法可以进行校正,使其准确地测量地磁场[11]。电子陀螺仪具有零点漂移,通过预实验进行测量并移除偏移量。
实验中,传感器贴放在人体背部,由于个体差异,贴放位置具有偏差,因此,需要确定传感器的初始姿态。受试者在开始阶段静立5 s,此时可以忽略运动加速度的干扰,得到加速度计的平均读数a(0),将其与理想的重力加速度向量-Z0(R0坐标系下)进行比较,即可计算出传感器的初始姿态,并以四元数Qini表示
θini=cos-1((a(0)·(-Z0))
(1)
Vini=a(0)×(-Z0)
(2)
(3)
式中 ·和×分别为向量的内积和外积。-Z0=[0 0 -1]·θini为RS绕Vini轴旋转至R0所需的角度。再使用Qini对陀螺仪和磁力计的原始读数gyro和m进行校正
1.2 基于磁力计的角度估计值
运动过程中,在t时刻,可以基于磁力计数据计算出传感器相对于静止阶段的姿态矩阵,用四元数q(t)表示,再将四元数转换为欧拉角,即可得到基于磁力计的在M/L平面的倾角φm如下
(4)
(5)
q(t)=[w,x,y,z]
(6)
(7)
1.3 基于陀螺仪的角度估计值和传感器融合
陀螺仪的读数基于传感器坐标系RS,需要将其转换到R0下
(8)
(9)
式中 gyro^(t)为t时刻的陀螺仪读数,gyro^xt为t-1到t时刻M/L平面内角速度的平均值。
对角速度进行积分即可得到基于陀螺仪的倾角估计值。据此建立状态空间模型,使用卡尔曼滤波器对基于磁力计和基于陀螺仪的角度估计值进行融合。状态向量X(t)由t时刻的最终估计值φ和估计误差d φ组成(t=0时,φ=0,d φ=0)。状态空间模型如下
X(t)=AX(t-1)+BU(t)
(10)
式中 T为采样时间。
观测向量Z(t)等于磁力计的角度估计值
Z(t)=HX(t)
(11)
根据卡尔曼滤波器,对状态向量X(t)进行更新,其第一个元素即为t时刻M/L平面上的倾角φ。
2.1 传感器的最优贴放位置
由于运动时人体躯干部的弯曲程度不同,传感器的贴放位置会影响到测量结果。根据先前的研究,对于正常的走、跑运动,将单个传感器贴放于第9至第10胸椎段(T9~T10)可以最准确地测量躯干在M/L平面内的倾斜角度。
2.2 实验设计
10名健康男性(25.4±2.9)岁参加了实验。将无线传感设备贴于受试者背部T9~T10区段处(图2)。无线传感设备包含无线微处理器单元、三轴加速计、三轴陀螺仪和三轴磁力计。受试者需要在力学平台(Bertec,美国)上完成规定的动作(表1)。
图2 传感器与荧光标记贴放位置Fig 2 Placement of sensor and markers
实验以光学捕捉系统VICON(OML,英国)的测量结果作为基准,以躯干倾角的均方根误差(RMSE)来衡量算法精确度。同时,几种常见的泛用算法也被用作比较,其中包括梯度下降算法[10](图3(c)),基于陀螺仪/磁力计的卡尔曼滤波算法[12](图3(b)与(d)),基于加速度计的算法(图3(e)与(f))。
表1 实验范式
图3 不同算法测量躯干倾角的均方根误差Fig 3 RMSE of inclination of trunk measured by different algorithms
相较于其他算法,新的算法(图3(a))能够更准确地测量躯干倾斜角,与VICON系统对比,其均方根误差为1.81°±0.77°,与除梯度下降法之外的其他算法均具有显著性差异(单因素方差分析,p=0.05)。此外,单独使用加速度计的算法精度最低,RMSE为15.33°±10.80 °。
实验结果表明:在运动状态下,使用陀螺仪和磁力计的算法可以更加精确地计算运动过程中的躯干倾角。运动过程中产生的加速度会使重力向量产生偏移,影响测量精度。梯度下降法虽然使用了加速度计,但是该方法通过最小化加速度数据的权重,减小了这部分误差。
此外,由于磁力计受外部磁场影响较大,虽然可以使用科学的方法进行校准,但如果处在快速变化的强磁场环境下,磁力计的精度仍会受到很大的制约。
本文提出了一种融合陀螺仪和磁力计数据的新算法,用于估计常见运动状态下的人体躯干倾角。实验结果表明:较之一些常用方法,该算法可以准确地估计不同速率走、跑运动下的人体躯干倾角,误差为1.81°±0.77°。本研究的结果对于人体或者仿人机器人的运动平衡性研究具有实用意义。
[1] Allum J H,Zamani F,Adkin A L,et al.Differences between trunk sway characteristics on a foam support surface and on the Equitest ankle-sway-referenced support surface[J].Gait Posture,2002,16(3):264-270.
[2] Leardini A,Biagi F,Merlo A,et al.Multi-segment trunk kinema-tics during locomotion and elementary exercises[J].Clinical Biomechanics,2011,26(6):562-571.
[3] Shull P B,Lurie K L,Cutkosky M R,et al.Training multi-para-meter gaits to reduce the knee adduction moment with data-driven models and haptic feedback[J].Journal of Biomechanics,2011,44(8):1605-1609.
[4] Li T S,Su Y,Liu S,et al.Dynamic balance control for biped robot walking using sensor fusion,Kalman filter,and fuzzy lo-gic[J].IEEE Transactions on Industrial Electronics,2012,59(11):4394-4408.
[5] Zhu R,Zhou Z.A real-time articulated human motion tracking using tri-axis inertial/magnetic sensors package[J].IEEE Tran-sactions on Neural Systems and Rehabilitation Engineering,2004,12(2):295-302.
[6] Wall C R,Kentala E.Control of sway using vibrotactile feedback of body tilt in patients with moderate and severe postural control deficits[J].J Vestib Res,2005,15(5-6):313-325.
[7] Favre J,Aissaoui R,Jolles B M,et al.Functional calibration procedure for 3D knee joint angle description using inertial sensor-s[J].Journal of Biomechanics,2009,42(14):2330-2335.
[8] Bonnet V,Mazz A C,Mccamley J,et al.Use of weighted Fourier linear combiner filters to estimate lower trunk 3D orientation from gyroscope sensors data[J].Journal of Neuroengineering and Rehabilitation.2013,10(1):29.
[9] Luinge H J,Veltink P H.Measuring orientation of human body segments using miniature gyroscopes and accelerometers[J].Med Biol Eng Comput,2005,43(2):273-282.
[10] Madgwick S O,Harrison A J,Vaidyanathan A.Estimation of IMU and MARG orientation using a gradient descent algorithm[C]∥IEEE Int’l Conf on Rehabil Robot,2011:1-7.
[11] 吴 静,朱国魂,谢 波,等.基于多磁传感器的智能航向测定系统[J].传感器与微系统,2014,33(4):106-108.
[12] Sabatini A M.Quaternion-based extended Kalman filter for determining orientation by inertial and magnetic sensing[J].IEEE Transactions on Biomedical Engineering,2006,53(7):1346-1356.
于 波(1989- ),男,甘肃兰州人,硕士研究生,主要研究方向为可穿戴系统开发、运动学算法。
Inclination of human trunk in movement state based on micro sensor
YU Bo,XIA Hai-sheng,Shull Peter B
(State Key Laboratory of Mechanical System and Vibration,Shanghai Jiao Tong University, Shanghai 200240,China)
Accurately measure and control posture of trunk is critical for kinematic research in human and robots.The majority of former researches are based on general algorithms or under specific condition.A novel algorithm is developed by fusing of gyroscope and magnetometer data to estimate inclination of human trunk during movements.Experimental results shows that root-mean-square error is 1.81°±0.77° under different moving conditions.This algorithm can be used in movement balance research of human and robotics.
inertial sensor;human kinematics;Kalman filter
10.13873/J.1000—9787(2016)11—0077—03
2016—01—04
TP 212.9
A
1000—9787(2016)11—0077—03