利用惯性传感器的人体运动空间轨迹追踪*

2018-01-15 06:18,,,,
单片机与嵌入式系统应用 2018年1期
关键词:惯性坐标系肢体

,,,,

(1.深圳大学医学部 生物医学工程学院,深圳 518060;2.深圳市神经科学院)

引 言

运动捕捉技术(motion capture)是指在运动物体的关键部位设置跟踪器,测量物体在三维空间中的运动姿态,使用计算机处理并将其转化为抽象的运动数据,最后根据这些数据驱动虚拟人运动的技术。这项技术涉及物理空间物体的定位及坐标的转换、传感器技术[1]等,需要结合计算机图形学[2]、电子学、光学、计算机动画等技术。运动捕获技术被广泛应用到影视、动作分析、医学康复、游戏制作等相关领域。在影视领域中,其被广泛应用到电影题材的创造中,《霍比特人》里凶悍的咕噜姆、《泰迪熊》里充满痞气的毛绒熊,以及《阿凡达》里的纳美部落公主。在体育训练中引入人体动作捕捉技术可使体育训练更加高效。通过惯性动作捕捉设备实时地获取运动员的运动数据,并进行准确分析和评估,在提高运动成绩、预防损伤、状态恢复等方面都有很大的帮助。在医学领域运动捕捉技术中可实时获得病人的肢体运动状况,通过对比病人实时的康复数据,判断康复的情况,可以对肢体康复和训练起到帮助作用[3]。

现有的运动捕捉系统分别为机械式、电磁式、声学式、光学式和惯性式[4]。比较成熟的有光学式和惯性式。光学式动作捕捉目前应用较为广泛,其实现主要原理为利用分布在空间中固定位置的多台摄像机,通过对捕捉对象上特定光点(Marker)的监视和跟踪完成动作捕捉。这样的捕捉系统通常造价高昂,系统对环境的要求较高,受试者的活动空间会受到限制。随着电子设备的发展,传感器的体积小巧、价格便宜,使得惯性式动作捕捉获得了很大的发展空间。因此本文设计一种基于惯性技术的可穿戴式肢体动作轨迹追踪系统,可以很好地满足体积小、穿戴方便、实时性高的要求。

1 系统结构

作为惯性传感器肢体运动轨迹追踪,本系统设计通过无线的方式连接,在不限制肢体运动模式的前提下进行肢体运动轨迹追踪。以往,蓝牙技术最多可用7个模块构成网络,不利于组成肢体轨迹追踪的系统[5],因此本系统的最终想法是在相邻关节运动幅度较小的地方进行局部有线连接,不同肢体间佩戴整套采集设备(数据采集节点和传感器节点)。采集到多个肢体运动轨迹数据分别通过数据采集节点的无线方法进行数据发送。既保证了获得肢体轨迹信息,又能使数据完全传递。为此,本文设计了一套采集人体动作的硬件系统和可供直观显示的上位机虚拟人物模型进行验证。

采集人体动作的硬件系统是基于惯性传感器对肢体运动信息的采集,再通过处理芯片进行适当的算法求解。捕获肢体运动信息主要的软硬件构成部分有惯性传感器采集节点、数据采集节点和上位机显示。数据采集节点主要由控制单元(即STM32F013单片机)来完成对惯性传感器采集节点信息的读取,再将读取到的数据按照与上位机协定的数据通信协议进行打包等功能。再由STM32F103控制串口蓝牙将打包好的数据实时发送到电脑端,来驱动虚拟人物模型的显示。根据对人体动作采集的需求分析,进行了对几种惯性传感器资料的对比分析,最终选则了体积小、精度高的MPU9250惯性传感器作为硬件系统的惯性传感器采集节点[6]。

在肢体运动轨迹捕获中,采用运动学的方法将目标对象简化为点和刚体的运动规律。然后将惯性传感器节点绑定在特定的人体关节处,我们将假设传感器和肢体为一个刚体,在运动过程中它们都是刚体的运动。然后因为人体运动时相关联的肌肉与皮肤都会随运动而发生形变,导致绑定好的传感器与肢体发生相对位移或者旋转运动,这就破坏了我们假定的理想的刚体运动模型,给传感器的姿态测量结果带来较大误差影响[7]。为了尽可能地避免传感器与肢体之间相对移动带来的测量误差,我们选择将传感器绑定在各个肢体运动时肌肉和皮肤不变形或者变形较小的地方。譬如将测量大臂运动姿态数据的惯性传感器绑定于大臂外侧距离上臂前端5~7 cm位置,传感器的佩戴位置如图1所示。

图1 传感器的佩戴位置

2 硬件部分

人体动作捕捉是一种能通过虚拟现实场景来把现实生活中人体运动状态实时反映到虚拟模型的技术方法。为了实现精确的、实时的人体动作数据测量,需要跟踪和记录人体在三维空间中的运动信息,这些需要一套可采集肢体信息的硬件系统。为此该硬件系统主要包含惯性传感器节点、数据采集节点。

2.1 数据采集节点

图2 数据采集节点实物图

数据采集节点包含主控芯片STM32F103、蓝牙模块、可充放电电路模块和3.7 V锂电池,主要功能是通过控制模块STM32F103的I2C协议,读取绑定在人体关节点处的惯性传感器节点、九轴人体运动过程中的原始姿态信息数据,然后在控制模块中对读取的原始姿态信息数据进行低通滤波和卡尔曼滤波处理。根据与显示虚拟人物模型的上位机协定的数据发送协议,对滤波处理后的信息进行数据打包。再由控制模块的串口通过蓝牙模块实时发送给上位机的无线蓝牙模块进行接收。数据采集节点实物图如图2所示。

2.2 惯性传感器节点

为了获得人体关节实时的、精确的空间位置信息,需要能够精确采集人体运动的惯性信息传感器。根据传感器的资料对比分析,选择了性价比较高的MPU9250惯性传感器。MPU9250惯性传感器模块主要是由内部集成的三轴加速度传感器、三轴陀螺仪传感器和三轴磁力计构成的。三轴加速度信号用来测量物体在运动时产生的加速度大小,它能感受加速度并转换成可用输出信号。

图3 惯性传感器 节点实物图

三轴角速度是由地球自转偏向力引起传感器内部的谐振器偏移,再由传感器检测到角速率信号。三轴磁力计作为测试磁场强度的传感器被广泛地应用在科研和工程等领域,磁力计被用于求取载体姿态中的航向角,航向角为磁力计在测量信息中从水平方向上的分量求得。单独使用陀螺仪传感器在运动中会产生漂移,需要用加速度计和磁力计数据作为观测变量,一次性对陀螺仪计算到的结果进行辅助修正。

因此通过STM32F103控制模块的I2C协议读取惯性传感器节点绑在人体关节处的九轴(三轴加速度,三轴角速度和三轴磁力)信息,最终可获得准确的肢体运动姿态信息。惯性传感器节点实物图如图3所示。

3 数据融合的姿态解算

3.1 坐标系的选择

在正确获得三轴加速度传感器、三轴陀螺仪传感器和三轴磁力计传感器在人体手臂运动时的数据后,就可以通过对数据的分析和处理,利用姿态解算来获得肢体在空间运动的轨迹信息。而在姿态解算过程中需要涉及到坐标转换、姿态表示方法等知识。肢体运动捕捉系统中需要选择恰当地坐标系来表示。正确选择一系列的笛卡尔坐标系可以正确表示人体手臂在空间中的位置,同时也可以简化计算流程,提高计算效率。常用的坐标系有地理坐标系、载体坐标系、关节坐标系等[8]。

在人体运动中,关节坐标系与地理坐标系的个轴夹角信息可用来表示关节信息。关节坐标与地理坐标直接转换显示比较抽象,因此引入载体坐标作为中间过渡坐标系。将每个载体坐标系与关节坐标系进行统一后,每个载体坐标系与地理坐标系的夹角就可以直观地表示肢体关节的运动轨迹。

3.2 姿态解算的方法

肢体运动捕捉系统的算法核心在于通过数据采集节点获取肢体运动的空间轨迹信息。当惯性传感器节点捕捉到肢体空间运动信息时,实际上是惯性传感器节点所在的载体坐标系与空间地理坐标系产生了夹角,可以描述肢体空间运动的轨迹。其中常用的方法包括方向余弦法、欧拉角法、四元数法。四元数法是用一种超复数表示肢体在空间中的运动信息,是一个四维空间中的矢量,可以避免欧拉角法产生的万象锁死和方向余弦变量复杂的问题。四元数法[9]只包含四个元素,姿态解算及更新过程计算量较小,也不会产生万象锁死的问题。

从传感器采集节点采集的肢体空间运动信息,需要在数据采集节点中转化为四元数与上位机进行交互。四元数产生的过程如下:

① 系统开始工作,初始化九轴传感器(三轴加速度、三轴角速度和三轴磁力计),并设置定时器,通过嵌入式平台实时采集九轴惯性传感器数据,再将数据进行低通滤波除去噪声。

② 利用九轴传感器中三轴陀螺仪传感器输出的角速度信息和定时器发送的采集时间(Tt-1)和采集时间Tt,对角速度数据进行时间T(T=Tt-Tt-1)的积分,求出当前角度,再通过旋转矢量算法解算得到陀螺仪的估计姿态四元数。因为单独使用陀螺仪在运动中会产生漂移,需要用加速度计和磁力计数据作为观测变量,一次性对陀螺仪计算到的结果进行辅助修正。

③ 利用获得的三轴加速度和三轴磁力计数据,通过高斯牛顿迭代法进行迭代找到最合适的四元数修正系数方法如下:

Ar=[0 0 g], mr=[mn0 md]

(1)

其中g为重力加速度,mn、md分别为地磁场坐标系中的北向分量和垂直分量。

Ab=[axayaz], mb=[mxmymz]

(2)

Ab、mb为运动任意时刻假定的加速度和磁力计的输出矩阵。

Ab=TAr, mb=Tmr

(3)

其中T为旋转矩阵,将式(1)、(2)带入可求得修正系数。

④ 利用卡尔曼滤波算法[10]将三轴陀螺仪计算的估计值与三轴加速度和三轴磁力计得到修正系数进行计算,解算出三维空间中的姿态信息。

4 上位机软件设计

上位机系统包含了以下模块:患者信息模块、康复训练模块、系统设置模块、多视角模块、人物模型、数据折线图等。患者信息模块为患者建立一个数据库,可记录患者的个人信息、病症等,提供了增删改查等功能。康复训练模块包含了运动传感器的连接、训练模式选择、训练数据实时显示等功能,系统可连接至多6个数据采集节点。

系统含有6种不同的训练模式,可对全身关节例如肩关节、肘关节、腕关节等的运动进行跟踪。系统设置模块提供了数据采集节点的连接设置、场景切换设置、数据展示内容设置、关节初始、坐标归一化等功能。多视角模块指当前软件系统中提供的两种视角模式,正面视角与后背视角,可以让患者直观地看到不同的视角。人物模型与人物特定康复训练动作采用3D Max进行开发,并通过fbx导入至Unity3D平台。数据折线图位于软件右上角,可实时展示患者运动的角度信息,如图4所示。

图4 上位机显示界面

4.1 初始化

当上位机接收到数据采集节点上传的数据包后,按照协议进行数据解包处理,从而得到肢体运动四元数。因为得到的载体坐标系下的四元数还未与肩关节坐标系进行相统一,它们之间会有一个夹角,影响惯性采集节点的绑定和多个关节点运动时坐标的归一化,所以要对上位机得到的四元数进行初始化[11]。

从惯性传感器节点实时采集到的四元数记为q,取得其中一次值计为qO,上位机显示的模型初始位置四元数记为qM。设存在一个四元数qA,初始化后的四元数为qinit。

qM=qO⊗qA

(4)

qinit=q⊗qA

(5)

从式(4)中求解qA,带入式(5)中可求得初始化后的四元数,从而可以消除不同坐标系引起的夹角问题。

4.2 坐标归一

在人体关节运动中,运用运动学的方法将目标对象简化为点和刚体的运动规律,每个关节都有各自的局部坐标系,所有的关节都应在一个相同的全局坐标系,做归一化处理,这样需求出每个关节在全局坐标系下的位置[12]。

坐标归一化的方法:基于数学的理论观点,坐标的转换实际上可以定义为坐标的旋转和平移的合成变换。坐标的旋转可以看成是该点的坐标乘以其相对应的旋转矩阵,得到此点在另一个坐标系下的坐标,坐标的平移即为本身的坐标加上平移向量。故坐标转化公式可以表示为:

(6)

式(6)中(Xo,Yo,Zo)为初始坐标系下的坐标,(X,Y,Z)为初始点在对应的转换关系下变换的全局坐标,R为该点对应的旋转矩阵,T为该点的平移向量。

结 语

本文根据人体力学中人体运动的复杂性,想要获得人体空间运动的姿态信息就需要获得各关节的运动信息。为了避免传统的方法获得运动信息给关节运动带来阻碍和数据采集的滞后性等缺点,根据设计的肢体信息,采集硬件系统数据,显示虚拟人物模型的上位机软件可以实时地、精确地作验证计算。现实中的受试者佩戴硬件采集系统,来控制上位机中的人物模型作出相应的运动,实现不同关节的精确控制。实验结果如图5、6所示。

图5 初始化

图6 上臂运动

[1] 秦永元. 惯性导航[M]. 2版. 北京:科学出版社, 2014.

[2] Vince J. Quaternions for Computer Graphics[M]. London :Springer London, 2011.

[3] 李杰. 基于运动传感的人体姿态实时捕获系统研究[D]. 南昌:华东交通大学, 2016.

[4] 向泽锐, 支锦亦, 徐伯初,等. 运动捕捉技术及其应用研究综述[J]. 计算机应用研究, 2013, 30(8):2241-2245.

[5] 饶勇. 基于传感网络的人体动作捕获装置设计与实现[D]. 成都:电子科技大学, 2013.

[6] Inven Sense.MPU-9250产品中文说明书1.0版,2014.

[7] 蹇彪. 基于惯性传感器的人体运动姿态三维重构[D]. 哈尔滨: 哈尔滨工程大学, 2013.

[8] 刘博. 基于MEMS传感器的动作捕捉系统开发设计[D]. 北京:北京理工大学, 2011.

[9] 肖尚彬. 四元数方法及其应用[J]. 力学进展, 1993, 23(2):249-260.

[10] Welch G, Bishop G. An Introduction to the Kalman Filter[J]. University of North Carolina at Chapel Hill, 2006, 8(7):127-132.

[11] Shepperd S W. Quaternion from rotation matrix[EB/OL].[2017-11]. https://www.researchgate.net/publication/4689586_Quaternion_from_Rotation_Matrix.

[12] 韩梅. 基于惯性数据的人体姿态实时三维重构关键技术研究[D]. 哈尔滨:哈尔滨工程大学, 2015.

猜你喜欢
惯性坐标系肢体
你真的了解惯性吗
冲破『惯性』 看惯性
肢体语言
解密坐标系中的平移变换
坐标系背后的故事
肢体写作漫谈
无处不在的惯性
基于重心坐标系的平面几何证明的探讨
普遍存在的惯性
VSD在创伤后肢体软组织缺损中的应用