李祥晨, 李 蕾, 張茉莉, 魏傳民, 張建文
(1. 國家體育總局體育科學研究所,北京 100061;2. 河北大學藝術(shù)學院,河北 保定 071002)
人體6自由度運動參數(shù)無線測試系統(tǒng)BTViewer的設計與開發(fā)
李祥晨1, 李 蕾2, 張茉莉1, 魏傳民1, 張建文1
(1. 國家體育總局體育科學研究所,北京 100061;2. 河北大學藝術(shù)學院,河北 保定 071002)
為解決測試人體在三維空間中的關(guān)節(jié)運動參數(shù),自主設計了人體六自由度運動參數(shù)測試系統(tǒng)BTViewer。基于慣性傳感器跟蹤技術(shù),設計了整體的系統(tǒng)平臺工作流程,同時完成了相關(guān)算法。為降低誤差、減少漂移現(xiàn)象,本實驗采用集成的三軸加速度計、三軸磁力計的模塊LSM303DLH以及三軸陀螺儀動態(tài)采集樣本數(shù)據(jù),通過無線裝置傳輸?shù)诫娔X,有效合理地對采集到的數(shù)據(jù)進行預處理,將原始數(shù)據(jù)互補濾波之后解析成實際數(shù)據(jù),準確地得到人體六自由度運動參數(shù)。最后,運用Qt集成的OpenGL等模塊進行曲線、三維等可視化顯示。實驗表明,該系統(tǒng)的設計達到了預期的要求,能夠較好地跟蹤人體6自由度運動參數(shù)。
6自由度;慣性傳感器;互補濾波;可視化顯示
自19世紀80年代開始,人體運動跟蹤在人體康復、運動健身、學習動畫中被廣泛地應用。越來越多的中風或其他運動殘疾的患者,開始利用運動跟蹤來進行康復訓練??祻瓦\動是一個動態(tài)康復的過程,使患者的運動能力恢復正常[1]。為了達到這個目標,患者的運動行為不斷地被檢測和矯正。所以,檢測和跟蹤人體運動在居家康復計劃中越來越重要[2]。而檢測和跟蹤人類運動最有效的方法就是實時地獲得代表人體運動的姿態(tài)角和位置[3]。
通常的跟蹤和定位技術(shù)主要包括視覺檢測、光學系統(tǒng)、超聲波、慣性跟蹤技術(shù)等[4]。其中,基于光學的跟蹤器[5]不適合健康看護;基于視覺、聲學的跟蹤器[6]不適合家庭使用;但是慣性跟蹤技術(shù)在人體運動跟蹤中具有以下的優(yōu)點:不受跟蹤范圍的限制;跟蹤速度快;不受環(huán)境的干擾;傳感器的體積小便于攜帶[7]。所謂慣性跟蹤就是利用慣性傳感器來對目標位置和朝向進行跟蹤。加速度計、陀螺儀等慣性傳感器經(jīng)常在導航和增強現(xiàn)實中被應用[8]。但是,由于傳感器存在噪聲或者偏置,加速度計在估計速度或者方向的時候,會存在漂移現(xiàn)象,因此在整個跟蹤過程中需要進行外部修正[9]。
在Williamson和Andrews[10]的研究中,僅利用一個三軸加速度計來測量人體動態(tài)情況下的關(guān)節(jié)點傾角,利用重力加速度來對系統(tǒng)跟蹤進行修正,該方法在人體快速運動的情況下優(yōu)于基于低通濾波器處理加速度計信號。Rehbinder和Hu[11]在其研究中描述了一種基于MEMS陀螺儀和MEMS加速度計的姿態(tài)解算算法,由于缺少額外的起到互補性的傳感器(磁力計),故在航向角上存在不可避免的角度漂移。2005年Zhou等[12]發(fā)現(xiàn)了一種新穎的人體上肢運動跟蹤的方法,提出了一種基于模擬退火的優(yōu)化方法[13]。為了抑制噪聲,Zhou和Hu[14]利用擴展卡爾曼濾波器融合了加速度計和陀螺儀的數(shù)據(jù)進行實驗,結(jié)果表明能夠在一定程度上減少噪聲和漂移,但是計算量較大。
為了更好地跟蹤人體運動,本文提出一種基于加速度計、磁力計、陀螺儀的可綁定在用戶身上的BTViewer測試跟蹤系統(tǒng)。利用加速度計、磁力計、陀螺儀組成慣性跟蹤系統(tǒng)來測量人體運動 6自由度信息(姿態(tài)角、加速度),很好地降低了噪聲,一定程度上避免了漂移現(xiàn)象。該系統(tǒng)將采集到的數(shù)據(jù)借助于串口無線接收模塊實時傳送到PC機,同時開發(fā)了一套數(shù)據(jù)采集的軟件,具有接收、保存、顯示、傳感器標定、數(shù)據(jù)濾波等功能。
本系統(tǒng)的慣性傳感器采用了將三軸磁力計和三軸加速度計集成在一個封裝的二合一傳感器模塊LSM303DLH[15]里,三軸陀螺MPU-3050[16]采集加速度值、角速度值等參量,控制器采用的是CC430。為方便測量,簡化人體設備穿戴,本系統(tǒng)采用多節(jié)點無線傳輸,將傳感器穿戴在人體適當部位作為發(fā)送節(jié)點,接收端通過USB線與PC機相連,完成數(shù)據(jù)采集傳輸,進而在PC機上進行數(shù)據(jù)分析。LSM303DLH和MPU-3050通過I2C總線與單片機相連,如圖1所示。
圖1 硬件連接示意圖
LSM303DLH集成三軸磁力計和三軸加速度計,采用數(shù)字接口。磁力計傳感器的測量范圍從1.3~8.1 gauss共分7檔,用戶可以自由選擇。并且在20 gauss以內(nèi)的磁場環(huán)境下都能夠保持一致的測量效果和相同的敏感度。其分辨率可以達到8 m/gauss并且內(nèi)部采用12位ADC,以保證對磁場強度的精確測量。采集頻率為75 Hz,和采用霍爾效應原理的磁力計相比,LSM303DLH的功耗低,精度高,線性度好,并且不需要溫度補償。作為高集成度的傳感器模組,除了磁力計以外,LSM303DLH還集成高性能的加速度計。加速度計同樣采用12位ADC,可以達到1 mg的測量精度。加速度計可運行于低功耗模式,并有睡眠/喚醒功能,可大大降低功耗。同時,加速度計還集成了6軸方向檢測,兩路可編程中斷接口。
人體運動數(shù)據(jù)可視化獲取系統(tǒng)軟件包括下位機單片機軟件和基于PC的上位機分析應用軟件,這里只介紹上位機分析應用軟件的設計實現(xiàn)。本系統(tǒng)的設計、開發(fā)和調(diào)試采用 C++語言編程,使用 Qt軟件對程序進行編輯、編譯和調(diào)試,流程圖如圖 2所示。該軟件的主要功能有:① 實時數(shù)據(jù)接收;② 對獲取到人體不同運動環(huán)節(jié)數(shù)據(jù)進行顯示;③ 對讀入的數(shù)據(jù)進行初步處理;④ 在線顯示2D波形曲線,3D姿態(tài)顯示;⑤ 在線進行陀螺儀零偏補償,磁力計環(huán)境磁場補償;⑥ 數(shù)據(jù)記錄。
圖2 數(shù)據(jù)接收示意圖
2.1 數(shù)據(jù)接收
實時數(shù)據(jù)接收,即將硬件系統(tǒng)發(fā)出的數(shù)據(jù)實時接收到PC中。數(shù)據(jù)的發(fā)送與接收是以包為單位的,通過串口接收到數(shù)據(jù)包后進行解包,解析到加速度計、陀螺儀、地磁計各3個軸的值,共9個原始數(shù)據(jù),以及航向角、翻滾角、俯仰角 3個姿態(tài)角,共計12個數(shù)據(jù)。
2.1.1 串口接收程序
要能接收到數(shù)據(jù),首先要編寫串口接收程序以便實現(xiàn)硬件與PC間的數(shù)據(jù)交互。程序的實現(xiàn)主要用到了以下 3個文件:Pcomm.h、Pcomm.lib和Pcomm.dll。將Pcomm.Lib添加到工程,這個文件主要用于指定 Pcomm.dll中各個功能函數(shù)的入口及地址,Pcomm.lib就像一個地圖指出目的地的路標,而真正的函數(shù)是在Pcomm.dll中的。當然,為了方便調(diào)用,還要得到Pcomm.dll中的函數(shù)聲明,這些函數(shù)聲明就在Pcomm.h這個頭文件中。本程序的接收界面如圖3所示。
通過界面可以設置串口號、波特率等,點擊打開按鈕就會調(diào)用相應函數(shù)打開已選端口,進行數(shù)據(jù)接收并將解析后的數(shù)據(jù)做簡單顯示。
圖3 程序接收界面
2.1.2 數(shù)據(jù)包結(jié)構(gòu)及解析
數(shù)據(jù)是以十六進制數(shù)形式接收的,對于單個傳感器來說,每個數(shù)據(jù)包有28個字節(jié),包括包頭碼、數(shù)據(jù)段和校驗碼。其中,包頭碼占 2個字節(jié),為固定值FEFE;數(shù)據(jù)段占24個字節(jié),包含了3個姿態(tài)角,9個傳感器原始數(shù)據(jù),每個數(shù)據(jù)占2個字節(jié);校驗碼占2個字節(jié),為數(shù)據(jù)位連加的和。
在實驗過程中,要研究各個部位的姿態(tài)以及姿態(tài)的變化,一個傳感器通常是不能滿足實驗要求的,這就涉及到多個傳感器的數(shù)據(jù)接收。多傳感器的數(shù)據(jù)接收和單個傳感器的數(shù)據(jù)接收是類似的,是以包為單位進行數(shù)據(jù)傳輸,包里包含了多個傳感器的數(shù)據(jù),包的長度比單個的要大。
根據(jù)數(shù)據(jù)包結(jié)構(gòu)就能很容易對數(shù)據(jù)包進行解析。接收到數(shù)據(jù)包以后,依次讀包頭、數(shù)據(jù)段和校驗碼,主要對數(shù)據(jù)段進行處理,它包含了一包數(shù)據(jù)的主要信息。由于單片機是以八位字節(jié)發(fā)送的,而每個數(shù)據(jù)(如某個姿態(tài)角、某個軸的輸出值)是十六位的,首先要將相鄰的兩個八位經(jīng)過移動組合成十六位,得到碼值,再將碼值乘以量程得到實際輸出值。
2.1.3 數(shù)據(jù)預處理
人在一般情況下的活動是較慢的,姿態(tài)解算系統(tǒng)在人體姿態(tài)跟蹤測試過程中采集到的信號頻率較低,為了對人體細小動作的精確捕捉,MEMS傳感器的敏感度都比較高。由于IIR數(shù)字濾波器使用了輸入輸出反饋,因此,實際的應用中使用較低的階次就可以到達需求,在濾波器的設計過程中只需選擇滿足要求的截止頻率和足夠大的阻帶衰減就可完成去噪。由于在IIR數(shù)字濾波器去噪過程中運算次數(shù)較少且本身設計不是很復雜,因此,適用于實時系統(tǒng)。于是,在本實驗中使用 3階 Butterworth低通數(shù)字濾波器進行消除[17]。
圖4為數(shù)據(jù)預處理圖。
圖4 數(shù)據(jù)預處理截圖
從圖4中可以看出,通過低通濾波器去噪后,高頻噪聲有效地被消除,為進一步進行誤差補償和姿態(tài)結(jié)算提供了保障。
2.1.4 基于互補濾波器的四元數(shù)姿態(tài)解算法
在人體姿態(tài)測量中常用的濾波器有互補濾波器[18]和卡爾曼濾波器[19]?;パa濾波器對具有分明的高頻和低頻噪聲輸入信號進行融合有著很好的效果,而且相對于卡爾曼濾波,互補濾波器在結(jié)構(gòu)上簡單。本系統(tǒng)采用基于互補濾波器的四元數(shù)算法進行姿態(tài)解算。互補濾波器的主要構(gòu)架如圖5所示。利用兩個傳感器感測同一個物理量,但各自具有不同的頻率噪聲。S1是傳感器 1所量測到的信號,其中包括一個待量測信號 S加上一個低頻噪聲N1;S2是傳感器2所量測到的信號,其中包括一個待量測信號S加上一個高頻噪聲N2。
圖5 互補濾波器的主要架構(gòu)
一階開路系統(tǒng)的低通濾波器,如圖6所示。其中 Glpf(s)為轉(zhuǎn)移函數(shù),T為時間常數(shù), U(s)為輸入信號, Y(s)為輸出信號,則數(shù)學表達式為:
圖6 一階低通濾波器
利用互補濾波器進行姿態(tài)解算,其計算量小、占用內(nèi)存少、響應時間短的優(yōu)勢使其被應用于線速度不是很劇烈的人體動作姿態(tài)測試研究中。
2.2 數(shù)據(jù)顯示
數(shù)據(jù)顯示,即將獲取到的人體運動信息(姿態(tài)角、加速度)在計算機上進行顯示,可具體顯示每個傳感器的數(shù)據(jù)曲線,三維顯示等,見圖7~10。
圖8 BTViewer人體6自由度測試系統(tǒng)在上位機中的加速度波形曲線圖
圖9 測試系統(tǒng)在上位機中地磁強度曲線圖
圖10 測試系統(tǒng)在上位機中角速度曲線圖
2.3 數(shù)據(jù)保存
雖然Qt的Sql模塊對數(shù)據(jù)庫有很好的支持,但數(shù)據(jù)庫操作相對文本操作比較麻煩,這里選擇文本保存。這樣做的目的是:① 可以對獲取的加速度數(shù)據(jù)信息進行方便的保存;② 將獲取的加速度信息保存成txt文本,可以方便以后的讀取和使用,并能將獲取到的加速度信息在其他軟件平臺下自由使用,比如可以在工程分析軟件 Matlab 環(huán)境下進行使用。保存界面如圖11所示。
圖11 保存界面
2.4 芯片的在線標定與補償
MEMS傳感器由于體積小、價格低、制造工藝較簡單,故在性能上存在精度低、噪聲高、誤差大等不足。因此為精確的實現(xiàn)姿態(tài)解算測量,需對所用 MEMS傳感器進行標定補償。影響MEMS傳感器精度的誤差源不外乎來自兩個方面:傳感器本身誤差和外界環(huán)境干擾。
常用的磁力計補償方法主要有:羅差法、簡單標定算法和最小二乘法。本文采用最小二乘法對磁場進行標定,其誤差補償模型如下:
式(5)中,Mm_ 為3×3的偏移矩陣;M_SCi是比例因子;M_OSi是硬磁場補償值;Msi_ 軟磁場引起的轉(zhuǎn)化矩陣;M(x, y, z)為磁力計輸出值;M(x1, y1, z1)為校正后的值。采用立體 8字校準法采集標定環(huán)境中的磁場數(shù)據(jù),進而,利用最小二乘法對數(shù)據(jù)進行處理,得到補償系數(shù)。加速度計與陀螺儀也采用類似的方法進行標定。
本系統(tǒng)設計了在線標定窗口如圖12所示。
圖12 標定窗口
2.5 3D顯示模型軟件
三維顯示用到的是OpenGL,Qt中集成了該模塊。OpenGL是行業(yè)領域中最為廣泛接納的2D/3D圖形API,其自誕生至今已催生了各種計算機平臺及設備上的數(shù)千優(yōu)秀應用程序,OpenGL是獨立于視窗操作系統(tǒng)或其他操作系統(tǒng)的,亦是網(wǎng)絡透明的,它的英文全稱是“Open Graphics Library”,顧名思義,OpenGL便是“開放的圖形程序接口”,是個與硬件無關(guān)的軟件接口,可以在不同的平臺之間進行移植。因此,支持OpenGL的軟件具有很好的移植性,可以獲得非常廣泛的應用。
運用Qt的OpenGL模塊顯示效果如圖13。
圖13 三維顯示
為了進一步分析該系統(tǒng)的可行性和測試精度,實驗中將基于Nikon DTM-452C全站儀光學標記方法[21]測得的姿態(tài)角作為參考??蓪⑤敵龅淖藨B(tài)角與BTViewer系統(tǒng)的人體6自由度中的姿態(tài)角進行比較。結(jié)果表明,當人體在任意方向運動時,基于光學標記和 BTViewer系統(tǒng)所測得的姿態(tài)角(俯仰角、航向角、橫滾角)基本一致,光學系統(tǒng)與BTViewer系統(tǒng)的橫滾角輸出曲線如圖14。
圖14 橫滾角波形曲線對比圖
為了進一步驗證人體 6自由度測試系統(tǒng)BTViewer的可行性和準確性,本實驗在基于OpenGL下的3D演示軟件和基于dirtect X下的人體三維仿真系統(tǒng)中顯示 BTViewer系統(tǒng)的姿態(tài)信息,并和實際的人體運動姿態(tài)進行對比。單個傳感器系統(tǒng)姿態(tài)測試演示如圖15。
圖15 單個傳感器系統(tǒng)姿態(tài)測試演示
多個姿態(tài)測試單元組合測試人體姿態(tài)演示如圖16所示,能夠清晰地看到,BTViewer系統(tǒng)能夠準確及時地跟蹤人體運動,而且,具有便攜性,能夠隨身攜帶獲得運動數(shù)據(jù)。
圖16 多個姿態(tài)測試單元組合測試人體姿態(tài)演示
本文主要介紹了人體 6自由度測試系統(tǒng)BTViewer的設計與開發(fā),并且進行了人體動作的實時捕捉。系統(tǒng)設計的關(guān)鍵和難點在于對傳感器數(shù)據(jù)的獲取,將這些信息由無線發(fā)送到接收端,利用PC機對數(shù)據(jù)進行預處理,將人體運動數(shù)據(jù)解算成姿態(tài)角與加速度,并且進行可視化顯示。
當然該平臺中還存在一系列待解決的問題,如時間延時,抗外界干擾性能不足,無線傳感器之間的相互干擾等,需進一步對底層的傳感器進行優(yōu)化和預處理,研究與改進上層算法。
[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] 馬玉可. 一種微慣性跟蹤器的設計及其在增強現(xiàn)實中的應用 [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靜態(tài)姿態(tài)標定方法的研究[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–),男,山東陽谷人,高級工程師,博士。主要研究方向為體育系統(tǒng)仿真、體育智能儀器器材。E-mail:lixiangchen@ciss.cn