,,,,
(1.深圳大學醫(yī)學部 生物醫(yī)學工程學院,深圳 518060;2.深圳市神經(jīng)科學院)
運動捕捉技術(motion capture)是指在運動物體的關鍵部位設置跟蹤器,測量物體在三維空間中的運動姿態(tài),使用計算機處理并將其轉化為抽象的運動數(shù)據(jù),最后根據(jù)這些數(shù)據(jù)驅動虛擬人運動的技術。這項技術涉及物理空間物體的定位及坐標的轉換、傳感器技術[1]等,需要結合計算機圖形學[2]、電子學、光學、計算機動畫等技術。運動捕獲技術被廣泛應用到影視、動作分析、醫(yī)學康復、游戲制作等相關領域。在影視領域中,其被廣泛應用到電影題材的創(chuàng)造中,《霍比特人》里兇悍的咕嚕姆、《泰迪熊》里充滿痞氣的毛絨熊,以及《阿凡達》里的納美部落公主。在體育訓練中引入人體動作捕捉技術可使體育訓練更加高效。通過慣性動作捕捉設備實時地獲取運動員的運動數(shù)據(jù),并進行準確分析和評估,在提高運動成績、預防損傷、狀態(tài)恢復等方面都有很大的幫助。在醫(yī)學領域運動捕捉技術中可實時獲得病人的肢體運動狀況,通過對比病人實時的康復數(shù)據(jù),判斷康復的情況,可以對肢體康復和訓練起到幫助作用[3]。
現(xiàn)有的運動捕捉系統(tǒng)分別為機械式、電磁式、聲學式、光學式和慣性式[4]。比較成熟的有光學式和慣性式。光學式動作捕捉目前應用較為廣泛,其實現(xiàn)主要原理為利用分布在空間中固定位置的多臺攝像機,通過對捕捉對象上特定光點(Marker)的監(jiān)視和跟蹤完成動作捕捉。這樣的捕捉系統(tǒng)通常造價高昂,系統(tǒng)對環(huán)境的要求較高,受試者的活動空間會受到限制。隨著電子設備的發(fā)展,傳感器的體積小巧、價格便宜,使得慣性式動作捕捉獲得了很大的發(fā)展空間。因此本文設計一種基于慣性技術的可穿戴式肢體動作軌跡追蹤系統(tǒng),可以很好地滿足體積小、穿戴方便、實時性高的要求。
作為慣性傳感器肢體運動軌跡追蹤,本系統(tǒng)設計通過無線的方式連接,在不限制肢體運動模式的前提下進行肢體運動軌跡追蹤。以往,藍牙技術最多可用7個模塊構成網(wǎng)絡,不利于組成肢體軌跡追蹤的系統(tǒng)[5],因此本系統(tǒng)的最終想法是在相鄰關節(jié)運動幅度較小的地方進行局部有線連接,不同肢體間佩戴整套采集設備(數(shù)據(jù)采集節(jié)點和傳感器節(jié)點)。采集到多個肢體運動軌跡數(shù)據(jù)分別通過數(shù)據(jù)采集節(jié)點的無線方法進行數(shù)據(jù)發(fā)送。既保證了獲得肢體軌跡信息,又能使數(shù)據(jù)完全傳遞。為此,本文設計了一套采集人體動作的硬件系統(tǒng)和可供直觀顯示的上位機虛擬人物模型進行驗證。
采集人體動作的硬件系統(tǒng)是基于慣性傳感器對肢體運動信息的采集,再通過處理芯片進行適當?shù)乃惴ㄇ蠼?。捕獲肢體運動信息主要的軟硬件構成部分有慣性傳感器采集節(jié)點、數(shù)據(jù)采集節(jié)點和上位機顯示。數(shù)據(jù)采集節(jié)點主要由控制單元(即STM32F013單片機)來完成對慣性傳感器采集節(jié)點信息的讀取,再將讀取到的數(shù)據(jù)按照與上位機協(xié)定的數(shù)據(jù)通信協(xié)議進行打包等功能。再由STM32F103控制串口藍牙將打包好的數(shù)據(jù)實時發(fā)送到電腦端,來驅動虛擬人物模型的顯示。根據(jù)對人體動作采集的需求分析,進行了對幾種慣性傳感器資料的對比分析,最終選則了體積小、精度高的MPU9250慣性傳感器作為硬件系統(tǒng)的慣性傳感器采集節(jié)點[6]。
在肢體運動軌跡捕獲中,采用運動學的方法將目標對象簡化為點和剛體的運動規(guī)律。然后將慣性傳感器節(jié)點綁定在特定的人體關節(jié)處,我們將假設傳感器和肢體為一個剛體,在運動過程中它們都是剛體的運動。然后因為人體運動時相關聯(lián)的肌肉與皮膚都會隨運動而發(fā)生形變,導致綁定好的傳感器與肢體發(fā)生相對位移或者旋轉運動,這就破壞了我們假定的理想的剛體運動模型,給傳感器的姿態(tài)測量結果帶來較大誤差影響[7]。為了盡可能地避免傳感器與肢體之間相對移動帶來的測量誤差,我們選擇將傳感器綁定在各個肢體運動時肌肉和皮膚不變形或者變形較小的地方。譬如將測量大臂運動姿態(tài)數(shù)據(jù)的慣性傳感器綁定于大臂外側距離上臂前端5~7 cm位置,傳感器的佩戴位置如圖1所示。
圖1 傳感器的佩戴位置
人體動作捕捉是一種能通過虛擬現(xiàn)實場景來把現(xiàn)實生活中人體運動狀態(tài)實時反映到虛擬模型的技術方法。為了實現(xiàn)精確的、實時的人體動作數(shù)據(jù)測量,需要跟蹤和記錄人體在三維空間中的運動信息,這些需要一套可采集肢體信息的硬件系統(tǒng)。為此該硬件系統(tǒng)主要包含慣性傳感器節(jié)點、數(shù)據(jù)采集節(jié)點。
圖2 數(shù)據(jù)采集節(jié)點實物圖
數(shù)據(jù)采集節(jié)點包含主控芯片STM32F103、藍牙模塊、可充放電電路模塊和3.7 V鋰電池,主要功能是通過控制模塊STM32F103的I2C協(xié)議,讀取綁定在人體關節(jié)點處的慣性傳感器節(jié)點、九軸人體運動過程中的原始姿態(tài)信息數(shù)據(jù),然后在控制模塊中對讀取的原始姿態(tài)信息數(shù)據(jù)進行低通濾波和卡爾曼濾波處理。根據(jù)與顯示虛擬人物模型的上位機協(xié)定的數(shù)據(jù)發(fā)送協(xié)議,對濾波處理后的信息進行數(shù)據(jù)打包。再由控制模塊的串口通過藍牙模塊實時發(fā)送給上位機的無線藍牙模塊進行接收。數(shù)據(jù)采集節(jié)點實物圖如圖2所示。
為了獲得人體關節(jié)實時的、精確的空間位置信息,需要能夠精確采集人體運動的慣性信息傳感器。根據(jù)傳感器的資料對比分析,選擇了性價比較高的MPU9250慣性傳感器。MPU9250慣性傳感器模塊主要是由內部集成的三軸加速度傳感器、三軸陀螺儀傳感器和三軸磁力計構成的。三軸加速度信號用來測量物體在運動時產(chǎn)生的加速度大小,它能感受加速度并轉換成可用輸出信號。
圖3 慣性傳感器 節(jié)點實物圖
三軸角速度是由地球自轉偏向力引起傳感器內部的諧振器偏移,再由傳感器檢測到角速率信號。三軸磁力計作為測試磁場強度的傳感器被廣泛地應用在科研和工程等領域,磁力計被用于求取載體姿態(tài)中的航向角,航向角為磁力計在測量信息中從水平方向上的分量求得。單獨使用陀螺儀傳感器在運動中會產(chǎn)生漂移,需要用加速度計和磁力計數(shù)據(jù)作為觀測變量,一次性對陀螺儀計算到的結果進行輔助修正。
因此通過STM32F103控制模塊的I2C協(xié)議讀取慣性傳感器節(jié)點綁在人體關節(jié)處的九軸(三軸加速度,三軸角速度和三軸磁力)信息,最終可獲得準確的肢體運動姿態(tài)信息。慣性傳感器節(jié)點實物圖如圖3所示。
在正確獲得三軸加速度傳感器、三軸陀螺儀傳感器和三軸磁力計傳感器在人體手臂運動時的數(shù)據(jù)后,就可以通過對數(shù)據(jù)的分析和處理,利用姿態(tài)解算來獲得肢體在空間運動的軌跡信息。而在姿態(tài)解算過程中需要涉及到坐標轉換、姿態(tài)表示方法等知識。肢體運動捕捉系統(tǒng)中需要選擇恰當?shù)刈鴺讼祦肀硎?。正確選擇一系列的笛卡爾坐標系可以正確表示人體手臂在空間中的位置,同時也可以簡化計算流程,提高計算效率。常用的坐標系有地理坐標系、載體坐標系、關節(jié)坐標系等[8]。
在人體運動中,關節(jié)坐標系與地理坐標系的個軸夾角信息可用來表示關節(jié)信息。關節(jié)坐標與地理坐標直接轉換顯示比較抽象,因此引入載體坐標作為中間過渡坐標系。將每個載體坐標系與關節(jié)坐標系進行統(tǒng)一后,每個載體坐標系與地理坐標系的夾角就可以直觀地表示肢體關節(jié)的運動軌跡。
肢體運動捕捉系統(tǒng)的算法核心在于通過數(shù)據(jù)采集節(jié)點獲取肢體運動的空間軌跡信息。當慣性傳感器節(jié)點捕捉到肢體空間運動信息時,實際上是慣性傳感器節(jié)點所在的載體坐標系與空間地理坐標系產(chǎn)生了夾角,可以描述肢體空間運動的軌跡。其中常用的方法包括方向余弦法、歐拉角法、四元數(shù)法。四元數(shù)法是用一種超復數(shù)表示肢體在空間中的運動信息,是一個四維空間中的矢量,可以避免歐拉角法產(chǎn)生的萬象鎖死和方向余弦變量復雜的問題。四元數(shù)法[9]只包含四個元素,姿態(tài)解算及更新過程計算量較小,也不會產(chǎn)生萬象鎖死的問題。
從傳感器采集節(jié)點采集的肢體空間運動信息,需要在數(shù)據(jù)采集節(jié)點中轉化為四元數(shù)與上位機進行交互。四元數(shù)產(chǎn)生的過程如下:
① 系統(tǒng)開始工作,初始化九軸傳感器(三軸加速度、三軸角速度和三軸磁力計),并設置定時器,通過嵌入式平臺實時采集九軸慣性傳感器數(shù)據(jù),再將數(shù)據(jù)進行低通濾波除去噪聲。
② 利用九軸傳感器中三軸陀螺儀傳感器輸出的角速度信息和定時器發(fā)送的采集時間(Tt-1)和采集時間Tt,對角速度數(shù)據(jù)進行時間T(T=Tt-Tt-1)的積分,求出當前角度,再通過旋轉矢量算法解算得到陀螺儀的估計姿態(tài)四元數(shù)。因為單獨使用陀螺儀在運動中會產(chǎn)生漂移,需要用加速度計和磁力計數(shù)據(jù)作為觀測變量,一次性對陀螺儀計算到的結果進行輔助修正。
③ 利用獲得的三軸加速度和三軸磁力計數(shù)據(jù),通過高斯牛頓迭代法進行迭代找到最合適的四元數(shù)修正系數(shù)方法如下:
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)帶入可求得修正系數(shù)。
④ 利用卡爾曼濾波算法[10]將三軸陀螺儀計算的估計值與三軸加速度和三軸磁力計得到修正系數(shù)進行計算,解算出三維空間中的姿態(tài)信息。
上位機系統(tǒng)包含了以下模塊:患者信息模塊、康復訓練模塊、系統(tǒng)設置模塊、多視角模塊、人物模型、數(shù)據(jù)折線圖等?;颊咝畔⒛K為患者建立一個數(shù)據(jù)庫,可記錄患者的個人信息、病癥等,提供了增刪改查等功能。康復訓練模塊包含了運動傳感器的連接、訓練模式選擇、訓練數(shù)據(jù)實時顯示等功能,系統(tǒng)可連接至多6個數(shù)據(jù)采集節(jié)點。
系統(tǒng)含有6種不同的訓練模式,可對全身關節(jié)例如肩關節(jié)、肘關節(jié)、腕關節(jié)等的運動進行跟蹤。系統(tǒng)設置模塊提供了數(shù)據(jù)采集節(jié)點的連接設置、場景切換設置、數(shù)據(jù)展示內容設置、關節(jié)初始、坐標歸一化等功能。多視角模塊指當前軟件系統(tǒng)中提供的兩種視角模式,正面視角與后背視角,可以讓患者直觀地看到不同的視角。人物模型與人物特定康復訓練動作采用3D Max進行開發(fā),并通過fbx導入至Unity3D平臺。數(shù)據(jù)折線圖位于軟件右上角,可實時展示患者運動的角度信息,如圖4所示。
圖4 上位機顯示界面
當上位機接收到數(shù)據(jù)采集節(jié)點上傳的數(shù)據(jù)包后,按照協(xié)議進行數(shù)據(jù)解包處理,從而得到肢體運動四元數(shù)。因為得到的載體坐標系下的四元數(shù)還未與肩關節(jié)坐標系進行相統(tǒng)一,它們之間會有一個夾角,影響慣性采集節(jié)點的綁定和多個關節(jié)點運動時坐標的歸一化,所以要對上位機得到的四元數(shù)進行初始化[11]。
從慣性傳感器節(jié)點實時采集到的四元數(shù)記為q,取得其中一次值計為qO,上位機顯示的模型初始位置四元數(shù)記為qM。設存在一個四元數(shù)qA,初始化后的四元數(shù)為qinit。
qM=qO?qA
(4)
qinit=q?qA
(5)
從式(4)中求解qA,帶入式(5)中可求得初始化后的四元數(shù),從而可以消除不同坐標系引起的夾角問題。
在人體關節(jié)運動中,運用運動學的方法將目標對象簡化為點和剛體的運動規(guī)律,每個關節(jié)都有各自的局部坐標系,所有的關節(jié)都應在一個相同的全局坐標系,做歸一化處理,這樣需求出每個關節(jié)在全局坐標系下的位置[12]。
坐標歸一化的方法:基于數(shù)學的理論觀點,坐標的轉換實際上可以定義為坐標的旋轉和平移的合成變換。坐標的旋轉可以看成是該點的坐標乘以其相對應的旋轉矩陣,得到此點在另一個坐標系下的坐標,坐標的平移即為本身的坐標加上平移向量。故坐標轉化公式可以表示為:
(6)
式(6)中(Xo,Yo,Zo)為初始坐標系下的坐標,(X,Y,Z)為初始點在對應的轉換關系下變換的全局坐標,R為該點對應的旋轉矩陣,T為該點的平移向量。
本文根據(jù)人體力學中人體運動的復雜性,想要獲得人體空間運動的姿態(tài)信息就需要獲得各關節(jié)的運動信息。為了避免傳統(tǒng)的方法獲得運動信息給關節(jié)運動帶來阻礙和數(shù)據(jù)采集的滯后性等缺點,根據(jù)設計的肢體信息,采集硬件系統(tǒng)數(shù)據(jù),顯示虛擬人物模型的上位機軟件可以實時地、精確地作驗證計算。現(xiàn)實中的受試者佩戴硬件采集系統(tǒng),來控制上位機中的人物模型作出相應的運動,實現(xiàn)不同關節(jié)的精確控制。實驗結果如圖5、6所示。
圖5 初始化
圖6 上臂運動
[1] 秦永元. 慣性導航[M]. 2版. 北京:科學出版社, 2014.
[2] Vince J. Quaternions for Computer Graphics[M]. London :Springer London, 2011.
[3] 李杰. 基于運動傳感的人體姿態(tài)實時捕獲系統(tǒng)研究[D]. 南昌:華東交通大學, 2016.
[4] 向澤銳, 支錦亦, 徐伯初,等. 運動捕捉技術及其應用研究綜述[J]. 計算機應用研究, 2013, 30(8):2241-2245.
[5] 饒勇. 基于傳感網(wǎng)絡的人體動作捕獲裝置設計與實現(xiàn)[D]. 成都:電子科技大學, 2013.
[6] Inven Sense.MPU-9250產(chǎn)品中文說明書1.0版,2014.
[7] 蹇彪. 基于慣性傳感器的人體運動姿態(tài)三維重構[D]. 哈爾濱: 哈爾濱工程大學, 2013.
[8] 劉博. 基于MEMS傳感器的動作捕捉系統(tǒng)開發(fā)設計[D]. 北京:北京理工大學, 2011.
[9] 肖尚彬. 四元數(shù)方法及其應用[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] 韓梅. 基于慣性數(shù)據(jù)的人體姿態(tài)實時三維重構關鍵技術研究[D]. 哈爾濱:哈爾濱工程大學, 2015.