,,,,
(1.深圳大學(xué)醫(yī)學(xué)部 生物醫(yī)學(xué)工程學(xué)院,深圳 518060;2.深圳市神經(jīng)科學(xué)院)
運動捕捉技術(shù)(motion capture)是指在運動物體的關(guān)鍵部位設(shè)置跟蹤器,測量物體在三維空間中的運動姿態(tài),使用計算機(jī)處理并將其轉(zhuǎn)化為抽象的運動數(shù)據(jù),最后根據(jù)這些數(shù)據(jù)驅(qū)動虛擬人運動的技術(shù)。這項技術(shù)涉及物理空間物體的定位及坐標(biāo)的轉(zhuǎn)換、傳感器技術(shù)[1]等,需要結(jié)合計算機(jī)圖形學(xué)[2]、電子學(xué)、光學(xué)、計算機(jī)動畫等技術(shù)。運動捕獲技術(shù)被廣泛應(yīng)用到影視、動作分析、醫(yī)學(xué)康復(fù)、游戲制作等相關(guān)領(lǐng)域。在影視領(lǐng)域中,其被廣泛應(yīng)用到電影題材的創(chuàng)造中,《霍比特人》里兇悍的咕嚕姆、《泰迪熊》里充滿痞氣的毛絨熊,以及《阿凡達(dá)》里的納美部落公主。在體育訓(xùn)練中引入人體動作捕捉技術(shù)可使體育訓(xùn)練更加高效。通過慣性動作捕捉設(shè)備實時地獲取運動員的運動數(shù)據(jù),并進(jìn)行準(zhǔn)確分析和評估,在提高運動成績、預(yù)防損傷、狀態(tài)恢復(fù)等方面都有很大的幫助。在醫(yī)學(xué)領(lǐng)域運動捕捉技術(shù)中可實時獲得病人的肢體運動狀況,通過對比病人實時的康復(fù)數(shù)據(jù),判斷康復(fù)的情況,可以對肢體康復(fù)和訓(xùn)練起到幫助作用[3]。
現(xiàn)有的運動捕捉系統(tǒng)分別為機(jī)械式、電磁式、聲學(xué)式、光學(xué)式和慣性式[4]。比較成熟的有光學(xué)式和慣性式。光學(xué)式動作捕捉目前應(yīng)用較為廣泛,其實現(xiàn)主要原理為利用分布在空間中固定位置的多臺攝像機(jī),通過對捕捉對象上特定光點(Marker)的監(jiān)視和跟蹤完成動作捕捉。這樣的捕捉系統(tǒng)通常造價高昂,系統(tǒng)對環(huán)境的要求較高,受試者的活動空間會受到限制。隨著電子設(shè)備的發(fā)展,傳感器的體積小巧、價格便宜,使得慣性式動作捕捉獲得了很大的發(fā)展空間。因此本文設(shè)計一種基于慣性技術(shù)的可穿戴式肢體動作軌跡追蹤系統(tǒng),可以很好地滿足體積小、穿戴方便、實時性高的要求。
作為慣性傳感器肢體運動軌跡追蹤,本系統(tǒng)設(shè)計通過無線的方式連接,在不限制肢體運動模式的前提下進(jìn)行肢體運動軌跡追蹤。以往,藍(lán)牙技術(shù)最多可用7個模塊構(gòu)成網(wǎng)絡(luò),不利于組成肢體軌跡追蹤的系統(tǒng)[5],因此本系統(tǒng)的最終想法是在相鄰關(guān)節(jié)運動幅度較小的地方進(jìn)行局部有線連接,不同肢體間佩戴整套采集設(shè)備(數(shù)據(jù)采集節(jié)點和傳感器節(jié)點)。采集到多個肢體運動軌跡數(shù)據(jù)分別通過數(shù)據(jù)采集節(jié)點的無線方法進(jìn)行數(shù)據(jù)發(fā)送。既保證了獲得肢體軌跡信息,又能使數(shù)據(jù)完全傳遞。為此,本文設(shè)計了一套采集人體動作的硬件系統(tǒng)和可供直觀顯示的上位機(jī)虛擬人物模型進(jìn)行驗證。
采集人體動作的硬件系統(tǒng)是基于慣性傳感器對肢體運動信息的采集,再通過處理芯片進(jìn)行適當(dāng)?shù)乃惴ㄇ蠼狻2东@肢體運動信息主要的軟硬件構(gòu)成部分有慣性傳感器采集節(jié)點、數(shù)據(jù)采集節(jié)點和上位機(jī)顯示。數(shù)據(jù)采集節(jié)點主要由控制單元(即STM32F013單片機(jī))來完成對慣性傳感器采集節(jié)點信息的讀取,再將讀取到的數(shù)據(jù)按照與上位機(jī)協(xié)定的數(shù)據(jù)通信協(xié)議進(jìn)行打包等功能。再由STM32F103控制串口藍(lán)牙將打包好的數(shù)據(jù)實時發(fā)送到電腦端,來驅(qū)動虛擬人物模型的顯示。根據(jù)對人體動作采集的需求分析,進(jìn)行了對幾種慣性傳感器資料的對比分析,最終選則了體積小、精度高的MPU9250慣性傳感器作為硬件系統(tǒng)的慣性傳感器采集節(jié)點[6]。
在肢體運動軌跡捕獲中,采用運動學(xué)的方法將目標(biāo)對象簡化為點和剛體的運動規(guī)律。然后將慣性傳感器節(jié)點綁定在特定的人體關(guān)節(jié)處,我們將假設(shè)傳感器和肢體為一個剛體,在運動過程中它們都是剛體的運動。然后因為人體運動時相關(guān)聯(lián)的肌肉與皮膚都會隨運動而發(fā)生形變,導(dǎo)致綁定好的傳感器與肢體發(fā)生相對位移或者旋轉(zhuǎn)運動,這就破壞了我們假定的理想的剛體運動模型,給傳感器的姿態(tài)測量結(jié)果帶來較大誤差影響[7]。為了盡可能地避免傳感器與肢體之間相對移動帶來的測量誤差,我們選擇將傳感器綁定在各個肢體運動時肌肉和皮膚不變形或者變形較小的地方。譬如將測量大臂運動姿態(tài)數(shù)據(jù)的慣性傳感器綁定于大臂外側(cè)距離上臂前端5~7 cm位置,傳感器的佩戴位置如圖1所示。

圖1 傳感器的佩戴位置
人體動作捕捉是一種能通過虛擬現(xiàn)實場景來把現(xiàn)實生活中人體運動狀態(tài)實時反映到虛擬模型的技術(shù)方法。為了實現(xiàn)精確的、實時的人體動作數(shù)據(jù)測量,需要跟蹤和記錄人體在三維空間中的運動信息,這些需要一套可采集肢體信息的硬件系統(tǒng)。為此該硬件系統(tǒng)主要包含慣性傳感器節(jié)點、數(shù)據(jù)采集節(jié)點。

圖2 數(shù)據(jù)采集節(jié)點實物圖
數(shù)據(jù)采集節(jié)點包含主控芯片STM32F103、藍(lán)牙模塊、可充放電電路模塊和3.7 V鋰電池,主要功能是通過控制模塊STM32F103的I2C協(xié)議,讀取綁定在人體關(guān)節(jié)點處的慣性傳感器節(jié)點、九軸人體運動過程中的原始姿態(tài)信息數(shù)據(jù),然后在控制模塊中對讀取的原始姿態(tài)信息數(shù)據(jù)進(jìn)行低通濾波和卡爾曼濾波處理。根據(jù)與顯示虛擬人物模型的上位機(jī)協(xié)定的數(shù)據(jù)發(fā)送協(xié)議,對濾波處理后的信息進(jìn)行數(shù)據(jù)打包。再由控制模塊的串口通過藍(lán)牙模塊實時發(fā)送給上位機(jī)的無線藍(lán)牙模塊進(jìn)行接收。數(shù)據(jù)采集節(jié)點實物圖如圖2所示。
為了獲得人體關(guān)節(jié)實時的、精確的空間位置信息,需要能夠精確采集人體運動的慣性信息傳感器。根據(jù)傳感器的資料對比分析,選擇了性價比較高的MPU9250慣性傳感器。MPU9250慣性傳感器模塊主要是由內(nèi)部集成的三軸加速度傳感器、三軸陀螺儀傳感器和三軸磁力計構(gòu)成的。三軸加速度信號用來測量物體在運動時產(chǎn)生的加速度大小,它能感受加速度并轉(zhuǎn)換成可用輸出信號。

圖3 慣性傳感器 節(jié)點實物圖
三軸角速度是由地球自轉(zhuǎn)偏向力引起傳感器內(nèi)部的諧振器偏移,再由傳感器檢測到角速率信號。三軸磁力計作為測試磁場強(qiáng)度的傳感器被廣泛地應(yīng)用在科研和工程等領(lǐng)域,磁力計被用于求取載體姿態(tài)中的航向角,航向角為磁力計在測量信息中從水平方向上的分量求得。單獨使用陀螺儀傳感器在運動中會產(chǎn)生漂移,需要用加速度計和磁力計數(shù)據(jù)作為觀測變量,一次性對陀螺儀計算到的結(jié)果進(jìn)行輔助修正。
因此通過STM32F103控制模塊的I2C協(xié)議讀取慣性傳感器節(jié)點綁在人體關(guān)節(jié)處的九軸(三軸加速度,三軸角速度和三軸磁力)信息,最終可獲得準(zhǔn)確的肢體運動姿態(tài)信息。慣性傳感器節(jié)點實物圖如圖3所示。
在正確獲得三軸加速度傳感器、三軸陀螺儀傳感器和三軸磁力計傳感器在人體手臂運動時的數(shù)據(jù)后,就可以通過對數(shù)據(jù)的分析和處理,利用姿態(tài)解算來獲得肢體在空間運動的軌跡信息。而在姿態(tài)解算過程中需要涉及到坐標(biāo)轉(zhuǎn)換、姿態(tài)表示方法等知識。肢體運動捕捉系統(tǒng)中需要選擇恰當(dāng)?shù)刈鴺?biāo)系來表示。正確選擇一系列的笛卡爾坐標(biāo)系可以正確表示人體手臂在空間中的位置,同時也可以簡化計算流程,提高計算效率。常用的坐標(biāo)系有地理坐標(biāo)系、載體坐標(biāo)系、關(guān)節(jié)坐標(biāo)系等[8]。
在人體運動中,關(guān)節(jié)坐標(biāo)系與地理坐標(biāo)系的個軸夾角信息可用來表示關(guān)節(jié)信息。關(guān)節(jié)坐標(biāo)與地理坐標(biāo)直接轉(zhuǎn)換顯示比較抽象,因此引入載體坐標(biāo)作為中間過渡坐標(biāo)系。將每個載體坐標(biāo)系與關(guān)節(jié)坐標(biāo)系進(jìn)行統(tǒng)一后,每個載體坐標(biāo)系與地理坐標(biāo)系的夾角就可以直觀地表示肢體關(guān)節(jié)的運動軌跡。
肢體運動捕捉系統(tǒng)的算法核心在于通過數(shù)據(jù)采集節(jié)點獲取肢體運動的空間軌跡信息。當(dāng)慣性傳感器節(jié)點捕捉到肢體空間運動信息時,實際上是慣性傳感器節(jié)點所在的載體坐標(biāo)系與空間地理坐標(biāo)系產(chǎn)生了夾角,可以描述肢體空間運動的軌跡。其中常用的方法包括方向余弦法、歐拉角法、四元數(shù)法。四元數(shù)法是用一種超復(fù)數(shù)表示肢體在空間中的運動信息,是一個四維空間中的矢量,可以避免歐拉角法產(chǎn)生的萬象鎖死和方向余弦變量復(fù)雜的問題。四元數(shù)法[9]只包含四個元素,姿態(tài)解算及更新過程計算量較小,也不會產(chǎn)生萬象鎖死的問題。
從傳感器采集節(jié)點采集的肢體空間運動信息,需要在數(shù)據(jù)采集節(jié)點中轉(zhuǎn)化為四元數(shù)與上位機(jī)進(jìn)行交互。四元數(shù)產(chǎn)生的過程如下:
① 系統(tǒng)開始工作,初始化九軸傳感器(三軸加速度、三軸角速度和三軸磁力計),并設(shè)置定時器,通過嵌入式平臺實時采集九軸慣性傳感器數(shù)據(jù),再將數(shù)據(jù)進(jìn)行低通濾波除去噪聲。
② 利用九軸傳感器中三軸陀螺儀傳感器輸出的角速度信息和定時器發(fā)送的采集時間(Tt-1)和采集時間Tt,對角速度數(shù)據(jù)進(jìn)行時間T(T=Tt-Tt-1)的積分,求出當(dāng)前角度,再通過旋轉(zhuǎn)矢量算法解算得到陀螺儀的估計姿態(tài)四元數(shù)。因為單獨使用陀螺儀在運動中會產(chǎn)生漂移,需要用加速度計和磁力計數(shù)據(jù)作為觀測變量,一次性對陀螺儀計算到的結(jié)果進(jìn)行輔助修正。
③ 利用獲得的三軸加速度和三軸磁力計數(shù)據(jù),通過高斯牛頓迭代法進(jìn)行迭代找到最合適的四元數(shù)修正系數(shù)方法如下:
Ar=[0 0 g], mr=[mn0 md]
(1)
其中g(shù)為重力加速度,mn、md分別為地磁場坐標(biāo)系中的北向分量和垂直分量。
Ab=[axayaz], mb=[mxmymz]
(2)
Ab、mb為運動任意時刻假定的加速度和磁力計的輸出矩陣。
Ab=TAr, mb=Tmr
(3)
其中T為旋轉(zhuǎn)矩陣,將式(1)、(2)帶入可求得修正系數(shù)。
④ 利用卡爾曼濾波算法[10]將三軸陀螺儀計算的估計值與三軸加速度和三軸磁力計得到修正系數(shù)進(jìn)行計算,解算出三維空間中的姿態(tài)信息。
上位機(jī)系統(tǒng)包含了以下模塊:患者信息模塊、康復(fù)訓(xùn)練模塊、系統(tǒng)設(shè)置模塊、多視角模塊、人物模型、數(shù)據(jù)折線圖等。患者信息模塊為患者建立一個數(shù)據(jù)庫,可記錄患者的個人信息、病癥等,提供了增刪改查等功能。康復(fù)訓(xùn)練模塊包含了運動傳感器的連接、訓(xùn)練模式選擇、訓(xùn)練數(shù)據(jù)實時顯示等功能,系統(tǒng)可連接至多6個數(shù)據(jù)采集節(jié)點。
系統(tǒng)含有6種不同的訓(xùn)練模式,可對全身關(guān)節(jié)例如肩關(guān)節(jié)、肘關(guān)節(jié)、腕關(guān)節(jié)等的運動進(jìn)行跟蹤。系統(tǒng)設(shè)置模塊提供了數(shù)據(jù)采集節(jié)點的連接設(shè)置、場景切換設(shè)置、數(shù)據(jù)展示內(nèi)容設(shè)置、關(guān)節(jié)初始、坐標(biāo)歸一化等功能。多視角模塊指當(dāng)前軟件系統(tǒng)中提供的兩種視角模式,正面視角與后背視角,可以讓患者直觀地看到不同的視角。人物模型與人物特定康復(fù)訓(xùn)練動作采用3D Max進(jìn)行開發(fā),并通過fbx導(dǎo)入至Unity3D平臺。數(shù)據(jù)折線圖位于軟件右上角,可實時展示患者運動的角度信息,如圖4所示。

圖4 上位機(jī)顯示界面
當(dāng)上位機(jī)接收到數(shù)據(jù)采集節(jié)點上傳的數(shù)據(jù)包后,按照協(xié)議進(jìn)行數(shù)據(jù)解包處理,從而得到肢體運動四元數(shù)。因為得到的載體坐標(biāo)系下的四元數(shù)還未與肩關(guān)節(jié)坐標(biāo)系進(jìn)行相統(tǒng)一,它們之間會有一個夾角,影響慣性采集節(jié)點的綁定和多個關(guān)節(jié)點運動時坐標(biāo)的歸一化,所以要對上位機(jī)得到的四元數(shù)進(jìn)行初始化[11]。
從慣性傳感器節(jié)點實時采集到的四元數(shù)記為q,取得其中一次值計為qO,上位機(jī)顯示的模型初始位置四元數(shù)記為qM。設(shè)存在一個四元數(shù)qA,初始化后的四元數(shù)為qinit。
qM=qO?qA
(4)
qinit=q?qA
(5)
從式(4)中求解qA,帶入式(5)中可求得初始化后的四元數(shù),從而可以消除不同坐標(biāo)系引起的夾角問題。
在人體關(guān)節(jié)運動中,運用運動學(xué)的方法將目標(biāo)對象簡化為點和剛體的運動規(guī)律,每個關(guān)節(jié)都有各自的局部坐標(biāo)系,所有的關(guān)節(jié)都應(yīng)在一個相同的全局坐標(biāo)系,做歸一化處理,這樣需求出每個關(guān)節(jié)在全局坐標(biāo)系下的位置[12]。
坐標(biāo)歸一化的方法:基于數(shù)學(xué)的理論觀點,坐標(biāo)的轉(zhuǎn)換實際上可以定義為坐標(biāo)的旋轉(zhuǎn)和平移的合成變換。坐標(biāo)的旋轉(zhuǎn)可以看成是該點的坐標(biāo)乘以其相對應(yīng)的旋轉(zhuǎn)矩陣,得到此點在另一個坐標(biāo)系下的坐標(biāo),坐標(biāo)的平移即為本身的坐標(biāo)加上平移向量。故坐標(biāo)轉(zhuǎn)化公式可以表示為:
(6)
式(6)中(Xo,Yo,Zo)為初始坐標(biāo)系下的坐標(biāo),(X,Y,Z)為初始點在對應(yīng)的轉(zhuǎn)換關(guān)系下變換的全局坐標(biāo),R為該點對應(yīng)的旋轉(zhuǎn)矩陣,T為該點的平移向量。
本文根據(jù)人體力學(xué)中人體運動的復(fù)雜性,想要獲得人體空間運動的姿態(tài)信息就需要獲得各關(guān)節(jié)的運動信息。為了避免傳統(tǒng)的方法獲得運動信息給關(guān)節(jié)運動帶來阻礙和數(shù)據(jù)采集的滯后性等缺點,根據(jù)設(shè)計的肢體信息,采集硬件系統(tǒng)數(shù)據(jù),顯示虛擬人物模型的上位機(jī)軟件可以實時地、精確地作驗證計算。現(xiàn)實中的受試者佩戴硬件采集系統(tǒng),來控制上位機(jī)中的人物模型作出相應(yīng)的運動,實現(xiàn)不同關(guān)節(jié)的精確控制。實驗結(jié)果如圖5、6所示。

圖5 初始化

圖6 上臂運動
[1] 秦永元. 慣性導(dǎo)航[M]. 2版. 北京:科學(xué)出版社, 2014.
[2] Vince J. Quaternions for Computer Graphics[M]. London :Springer London, 2011.
[3] 李杰. 基于運動傳感的人體姿態(tài)實時捕獲系統(tǒng)研究[D]. 南昌:華東交通大學(xué), 2016.
[4] 向澤銳, 支錦亦, 徐伯初,等. 運動捕捉技術(shù)及其應(yīng)用研究綜述[J]. 計算機(jī)應(yīng)用研究, 2013, 30(8):2241-2245.
[5] 饒勇. 基于傳感網(wǎng)絡(luò)的人體動作捕獲裝置設(shè)計與實現(xiàn)[D]. 成都:電子科技大學(xué), 2013.
[6] Inven Sense.MPU-9250產(chǎn)品中文說明書1.0版,2014.
[7] 蹇彪. 基于慣性傳感器的人體運動姿態(tài)三維重構(gòu)[D]. 哈爾濱: 哈爾濱工程大學(xué), 2013.
[8] 劉博. 基于MEMS傳感器的動作捕捉系統(tǒng)開發(fā)設(shè)計[D]. 北京:北京理工大學(xué), 2011.
[9] 肖尚彬. 四元數(shù)方法及其應(yīng)用[J]. 力學(xué)進(jìn)展, 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] 韓梅. 基于慣性數(shù)據(jù)的人體姿態(tài)實時三維重構(gòu)關(guān)鍵技術(shù)研究[D]. 哈爾濱:哈爾濱工程大學(xué), 2015.