劉澤華
(北京郵電大學(xué)自動(dòng)化學(xué)院,北京 100876)
人體運(yùn)動(dòng)捕獲系統(tǒng)簡(jiǎn)稱(chēng)動(dòng)捕系統(tǒng)(motion capture,MC),用于捕獲人體的實(shí)時(shí)運(yùn)動(dòng)并將特定格式的動(dòng)捕數(shù)據(jù)交付應(yīng)用端。根據(jù)獲取運(yùn)動(dòng)數(shù)據(jù)手段的不同,可分為基于攝像機(jī)型和基于傳感器型兩大類(lèi)?;跀z像機(jī)型的動(dòng)捕系統(tǒng)由高速攝像機(jī)陣列、大通量計(jì)算設(shè)備和數(shù)據(jù)處理軟件構(gòu)成,成本十分高昂。過(guò)去,動(dòng)捕主要被應(yīng)用在大型3D影視作品和游戲的制作中。近年來(lái),由于技術(shù)不斷成熟和軟硬件成本的下降,動(dòng)捕逐漸出現(xiàn)在大眾的視野中,更多廠商在此領(lǐng)域進(jìn)行研發(fā),一些產(chǎn)品已經(jīng)取得良好的效益。
國(guó)內(nèi)外對(duì)傳感器類(lèi)的動(dòng)捕的研究并不多,目前有導(dǎo)航型和異質(zhì)核光纖型2種。后者于2011年由日本創(chuàng)價(jià)大學(xué)研發(fā)[1],利用光纖不同彎折角度的導(dǎo)光性能差異,精度較高,但是必須穿著貼附全身的服裝。導(dǎo)航型動(dòng)捕利用導(dǎo)航技術(shù)(制導(dǎo)技術(shù))[2,3]和機(jī)器人機(jī)構(gòu)學(xué)[4]技術(shù)制成,主要使用陀螺儀、加速計(jì)、磁力計(jì)、超聲波探頭等,也有較高精度。還有一種衣服內(nèi)植入了對(duì)拉伸敏感的傳感纖維[5],但目前還不能進(jìn)行動(dòng)捕。
導(dǎo)航型動(dòng)捕主要經(jīng)歷以下幾個(gè)發(fā)展階段:單獨(dú)使用加速計(jì)[6]、磁力計(jì)[7];陀螺儀和加速計(jì)結(jié)合[8];陀螺儀、加速計(jì)、磁力計(jì)結(jié)合[9];集成傳感器的節(jié)點(diǎn)加入卡爾曼濾波[10]。
在以上的研究成果當(dāng)中,組合使用傳感器能大幅度提高系統(tǒng)的精度和動(dòng)態(tài)特性,然而磁場(chǎng)干擾會(huì)極大地影響到捕獲精度。加入卡爾曼濾波技術(shù)可使捕獲精度有小幅度提升,但在大幅提高運(yùn)算量的情況下對(duì)軟硬件的要求都相應(yīng)提高。在微型數(shù)字傳感器和低功耗計(jì)算設(shè)備推廣使用的背景下,本文試圖開(kāi)發(fā)出具有較高精度,良好動(dòng)態(tài)特性、對(duì)磁場(chǎng)干擾不敏感的、計(jì)算量較小的運(yùn)動(dòng)捕獲系統(tǒng)。
載體相對(duì)于參考坐標(biāo)系的姿態(tài)可以用不同的數(shù)學(xué)表達(dá)式[2]來(lái)定義,本系統(tǒng)中使用的2種。若無(wú)特殊說(shuō)明,文中的導(dǎo)航坐標(biāo)系一律使用NED系。2種姿態(tài)表述如下:
方向余弦矩陣:最主要的優(yōu)點(diǎn)在于可以與仿射變換矩陣聯(lián)合使用,在有位置坐標(biāo)運(yùn)算的情況下十分方便。在此用符號(hào)表示,是一個(gè)3×3階的矩陣,矩陣的列表示載體坐標(biāo)系中的單位矢量在參考坐標(biāo)系中的投影。
四元數(shù):主要優(yōu)點(diǎn)在于運(yùn)算復(fù)雜度低,表示簡(jiǎn)便。在此用符號(hào)q表示,是一個(gè)四參數(shù)的表達(dá)式。它基于的思路是:一個(gè)坐標(biāo)系到另一個(gè)坐標(biāo)系的變換可以通過(guò)繞一個(gè)定義在參考系中的矢量μ的單次轉(zhuǎn)動(dòng)來(lái)實(shí)現(xiàn)。四元數(shù)在使用之前必須歸一化。
在捕獲計(jì)算中,需要對(duì)2種姿態(tài)表示方法進(jìn)行相互轉(zhuǎn)換。其中,由方向余弦矩陣提取四元數(shù)略有難度。這里從精度與復(fù)雜度各有差異4種算法[2,11]中選擇了基于構(gòu)造矩陣特征向量的算法,它計(jì)算量較小,同時(shí)具有很高的精度。
1.2.1 使用角速度積分進(jìn)行姿態(tài)解算
姿態(tài)解算使用陀螺儀收集到的角速度測(cè)量值,通過(guò)積分的方法計(jì)算出傳感器姿態(tài),本文采用四元數(shù)法。這種方法在精度,運(yùn)算量上都有良好表現(xiàn)[12,13],表達(dá)式如下
式中q和分別為表示當(dāng)前姿態(tài)的四元數(shù)和該四元數(shù)的導(dǎo)數(shù)。W為4×4的矩陣,由wx,wy,wz構(gòu)成。
解算以上微分方程至少有3種方法[14,15],這里采用了四階泰勒展開(kāi)法,該方法運(yùn)算量最小,適于計(jì)算機(jī)運(yùn)算,同時(shí)有較高的精度。
1.2.2 使用加速計(jì)和磁力計(jì)解算姿態(tài)
加速計(jì)和磁力計(jì)聯(lián)合解算姿態(tài)的算法至少有4種[16~18],在進(jìn)行運(yùn)算量和精度的比對(duì)之后,選用了綜合性能更好的 FQA(factored quaternion algorithm)[18],其優(yōu)點(diǎn)在于:由于磁力計(jì)數(shù)據(jù)僅影響四元數(shù)的一個(gè)轉(zhuǎn)角(yaw),因此,大幅減少了磁場(chǎng)干擾對(duì)姿態(tài)解算的影響;反復(fù)使用三角函數(shù)卻并未直接求三角函數(shù)值,省去了計(jì)算機(jī)中的級(jí)數(shù)展開(kāi)運(yùn)算,使計(jì)算量大幅降低。
1.2.3 姿態(tài)的融合
姿態(tài)數(shù)據(jù)的融合可以使用自適應(yīng)的卡爾曼濾波(AKF),但考慮到本系統(tǒng)中姿態(tài)捕獲的精度提高不明顯,極大地提高了計(jì)算量[19],并且對(duì)硬件要求高,因此,未采用這種方法。
因?yàn)镕QA的理想使用環(huán)境是傳感器無(wú)線性加速度并且僅受地磁場(chǎng)影響,所以,在本系統(tǒng)中,超出門(mén)限的加速計(jì)和磁力計(jì)數(shù)據(jù)將不會(huì)進(jìn)入解算環(huán)節(jié)。這意味著FQA算法僅在線性加速度和磁場(chǎng)干擾很小的情況下才起作用。
接下來(lái)對(duì)角速度積分和FQA算法所得到的姿態(tài)量進(jìn)行融合。在線性加速度或磁場(chǎng)干擾較大的情況下,僅有角速度積分的姿態(tài)解算起作用;相反情況下,利用方向余弦矩陣表示法的唯一性,給解算出的2個(gè)姿態(tài)量設(shè)置權(quán)重并求取平均值,即在緩慢運(yùn)動(dòng)時(shí),二者協(xié)同作用,在劇烈運(yùn)動(dòng)時(shí),僅角速度積分起作用。這種融合方法在盡量提高捕獲精度的同時(shí)幾乎完全消除了積分漂移。
1.2.4 傳感器的校準(zhǔn)與數(shù)據(jù)處理
1)陀螺儀的校準(zhǔn)
陀螺儀的校準(zhǔn)主要是去除偏置,將靜置時(shí)讀數(shù)的平均值減去即可。
2)磁力計(jì)的校準(zhǔn)
硬偏移:主要由硬磁物質(zhì)引起,表現(xiàn)為隨機(jī)旋轉(zhuǎn)的磁力計(jì)讀數(shù)的散點(diǎn)圖為偏離原點(diǎn)的球殼。球殼的球心點(diǎn)即為硬偏移的向量值。本系統(tǒng)中通過(guò)大量采樣計(jì)算最小殘差值求得硬偏移。
軟偏移:主要由軟磁物質(zhì)引起,表現(xiàn)為隨機(jī)旋轉(zhuǎn)的磁力計(jì)讀數(shù)的散點(diǎn)圖是以原點(diǎn)為中心的橢球殼,軟偏移量用矩陣來(lái)表示,通過(guò)矩陣論的算法可求出軟偏移并對(duì)磁力計(jì)進(jìn)行校準(zhǔn)。
3)濾波處理
為了減小噪聲引起的抖動(dòng),加速計(jì)和磁力計(jì)的輸出端分別加入了低通數(shù)字濾波器。
將人體骨骼之間的關(guān)系看做一系列剛體和相應(yīng)的運(yùn)動(dòng)副組合而成的空間開(kāi)式鏈,描述骨骼的位置和姿態(tài)(簡(jiǎn)稱(chēng)位姿)的方法是使用4×4的仿射變換矩陣[4]。
4×4 的齊次變換矩陣可將剛體的位置和姿態(tài)描述統(tǒng)一起來(lái),表示如下
式中 R為物體姿態(tài),用方向余弦矩陣表示;P為物體位置,用向量表示。
因此,有
2.2.1 骨骼與關(guān)節(jié)的建模
參照國(guó)際上較為通用的標(biāo)準(zhǔn),共定義了19段肢節(jié),固結(jié)在每段肢節(jié)上的坐標(biāo)系可以根據(jù)實(shí)際情況自行定義,肢節(jié)的名稱(chēng)、轉(zhuǎn)軸位置如圖1。
圖1 人體運(yùn)動(dòng)模型示意Fig 1 Motion model diagram of human body
2.2.2 傳感器節(jié)點(diǎn)的布設(shè)
由于傳感器節(jié)點(diǎn)在系統(tǒng)中的作用是感知?jiǎng)傮w的姿態(tài),所以,節(jié)點(diǎn)需要被安裝在能明顯反映肢體的剛體運(yùn)動(dòng)的位置。結(jié)合舒適性的考慮,最終確定了布設(shè)傳感器的16個(gè)位點(diǎn),并將各個(gè)位點(diǎn)的數(shù)據(jù)與定義的肢節(jié)模型綁定。
2.2.3 肢節(jié)坐標(biāo)系的映射關(guān)系
將單個(gè)傳感器的姿態(tài)與肢節(jié)的長(zhǎng)度結(jié)合起來(lái),以Hips為基點(diǎn),使用仿射變換矩陣即可計(jì)算出人的整體姿態(tài)。設(shè)上一級(jí)肢節(jié)為A,下一級(jí)肢節(jié)為B,肢節(jié)的坐標(biāo)系固結(jié)在根節(jié)點(diǎn)上。已知A的絕對(duì)位姿,A的長(zhǎng)度和B的絕對(duì)姿態(tài),就可計(jì)算出B的絕對(duì)位姿。計(jì)算步驟如下:
1)利用A的長(zhǎng)度和A的絕對(duì)位姿得到A端點(diǎn)的絕對(duì)位置;
2)A端點(diǎn)的絕對(duì)位置結(jié)合B的絕對(duì)姿態(tài)即為B的絕對(duì)位姿。
加速計(jì) MMA8451(3 mm ×3 mm ×1.1 mm)、陀螺儀L3G4200D(4mm×4mm×1.1mm)、磁力計(jì)MAG3110(2mm×2mm×0.85 mm)。每個(gè)節(jié)點(diǎn)(圖 2)有3種各1只傳感器。數(shù)據(jù)采集部分主芯片使用STM32F103ZE。無(wú)線通信使用藍(lán)牙2.0技術(shù)。解算程序和測(cè)控程序在上位機(jī)運(yùn)行,上位機(jī)為X86架構(gòu),操作系統(tǒng)為Windows 7,程序運(yùn)行在.NET 4.0平臺(tái)。
1)靜態(tài)捕獲精度評(píng)估
直接將兩段鋁合金桿鉚接,模擬人肢體的單軸運(yùn)動(dòng)(圖2)。傳感器固結(jié)在桿上,使用該機(jī)構(gòu)對(duì)單節(jié)點(diǎn)姿態(tài)解算的效果進(jìn)行評(píng)估。方法是其中一桿靜止,另一桿分別停在不同的轉(zhuǎn)角,通過(guò)分析采集到的姿態(tài)數(shù)據(jù)以評(píng)估系統(tǒng)靜態(tài)定姿的性能(圖3,表1)。
圖2 用于測(cè)試的鋁合金機(jī)構(gòu)Fig 2 Al alloy mechanism for test
圖3 節(jié)點(diǎn)的靜態(tài)定姿情況Fig 3 Static attitude determination of node
表1 采樣數(shù)據(jù)的統(tǒng)計(jì)結(jié)果Tab 1 Statistical results of sampling data collection
2)動(dòng)態(tài)捕獲精度評(píng)估
先對(duì)代表前臂的桿施加0°~90°的快速旋轉(zhuǎn),再對(duì)代表上臂的桿施加0°~90°的快速旋轉(zhuǎn)。實(shí)驗(yàn)條件所限,使用30fps的攝像機(jī)記錄機(jī)構(gòu)的運(yùn)動(dòng)過(guò)程,從每幀的圖像中可以提取出轉(zhuǎn)角數(shù)據(jù)。觀察并對(duì)比攝像機(jī)的記錄結(jié)果和傳感器的捕獲結(jié)果(圖4)。
圖4 兩桿的相對(duì)夾角Fig 4 Relative angle of two poles
系統(tǒng)在整體測(cè)試中(圖5),可以較為真實(shí)地還原人體的運(yùn)動(dòng),在調(diào)試環(huán)境不合適的時(shí)候會(huì)出現(xiàn)一些偏差,其主要來(lái)源如下述:
圖5 整體性能測(cè)試Fig 5 Overall performance test
1)主要誤差來(lái)自于傳感器安裝得不夠穩(wěn)定,未來(lái)需要優(yōu)化傳感器的佩戴裝置;
2)磁場(chǎng)受到干擾后的畸變對(duì)運(yùn)動(dòng)的還原有一定的干擾作用;
3)人體骨骼的構(gòu)造使得其運(yùn)動(dòng)不能完全抽象為定點(diǎn)剛體運(yùn)動(dòng),存在細(xì)微偏差。
本文介紹了一種使用消費(fèi)級(jí)MEMS傳感器的輕量級(jí)運(yùn)動(dòng)捕獲系統(tǒng)。系統(tǒng)集成了多種傳感器,先通過(guò)導(dǎo)航算法對(duì)傳感器數(shù)據(jù)進(jìn)行處理和融合,再使用解算出的姿態(tài)還原出人體的實(shí)時(shí)運(yùn)動(dòng)。對(duì)比傳統(tǒng)的導(dǎo)航型動(dòng)捕系統(tǒng),本系統(tǒng)使用了精度更高,計(jì)算量較小的新算法,抗磁場(chǎng)干擾能力更強(qiáng)。由于使用了微型的數(shù)字傳感器,本系統(tǒng)十分輕便,容易穿戴,功耗很小,成本低廉。對(duì)比大型攝像機(jī)動(dòng)捕系統(tǒng),本系統(tǒng)的成本極其低廉且十分便攜;對(duì)比KinectTM,本系統(tǒng)具有捕獲速度快、捕獲精度高、受光照和距離的影響小等特點(diǎn),因此,可以應(yīng)用在健身普及,小型動(dòng)畫(huà)制作,高危作業(yè)人員監(jiān)護(hù)等場(chǎng)合。
本系統(tǒng)還存在一些缺陷。首先,由于需要使用磁力計(jì)導(dǎo)航,所以,在有較強(qiáng)磁場(chǎng)干擾的情況下,系統(tǒng)的功能會(huì)發(fā)生一些紊亂;其次,傳感器節(jié)點(diǎn)必須穩(wěn)定地附在人體的肢節(jié)上,否則,捕獲到的數(shù)據(jù)會(huì)有較大誤差。
[1] Koyama Y,Nishiyama M,Watanabe K.Wearable motion capturing with the flexing and turning based on a hetero-core fiber optic stretching sensor[C]∥Proceedings of the 21st International Conference on Optical Fiber Sensors,Ottawa,Canada:SPIE,2011:77534—1 -77534B—4.
[2] Titterton D H,Weston J L.Strapdown inertial navigation technology[M].Stevenage:The Institution of Electrical Engineers,2004.
[3] 秦永元.慣性導(dǎo)航[M].北京:科學(xué)出版社,2006.
[4] 熊有倫,丁 漢,劉恩滄.機(jī)器人學(xué)[M].北京:機(jī)械工業(yè)出版社,1993.
[5] Farringdon J,Moore A J,Tilbury N,et al.Wearable sensor badge and sensor jacket for context awareness[C]∥Proceedings of the Third International Symposium on Wearable Computers,San Francisco,CA,USA,IEEE,1999:107 -113.
[6] Lee Jihong,Ha Insoo.Sensor fusion and calibration for motion captures using accelerometers[C]∥Proceedings of the 1999 IEEE International Conference on Robotics & Automation,Detroit,MI,USA,IEEE,1999:1954 -1959.
[7] O'Brien J F,Bodenheimer R E,Brostow Jr G J,et al.Automatic joint parameter estimation from magnetic motion capture data[DB/OL].[1999—04—01].http:∥ hdl.handle.net/1853/3408.
[8] Sakaguchi T,Kanamori T,Katayose H.Human motion capture by integrating gyroscopes and accelerometers[C]∥Proceedings of the 1996 IEEE/SICE/RSJ International Conference on Multisensor Fusion and Integration for Intelligent Systems,Washington DC,USA,IEEE,1996:470 -475.
[9] Sun Shuyan,Huang Shuai,Huang Zhipei,et al.Human modeling and real-time motion reconstruction for micro-sensor motion capture[C]∥Proceedings of the 2011 IEEE International Conference on Virtual Environments Human-Computer Interfaces and Measurement Systems(VECIMS),Ottawa,Canada:IEEE,2011:1 -5.
[10] Sun Shuyan,Meng Xiaoli,Ji Lianying,et al.Adaptive Kalman filter for orientation estimation in micro-sensor motion capture[C]∥Proceedings of the 14th International Conference on Information Fusion,Chicago,IL,USA,IEEE,2011:1 -8.
[11]周紹磊,叢源材,李 娟,等.方向余弦矩陣中四元數(shù)提取算法比較[J].中國(guó)慣性技術(shù)學(xué)報(bào),2008,16(4):415 -418.
[12]張榮輝,賈宏光,陳 濤.基于四元數(shù)法的捷聯(lián)式慣性導(dǎo)航系統(tǒng)的姿態(tài)解算[J].光學(xué)精密工程,2008,16(10):1963-1970.
[13]段小慶,王宏力,鄭佳華.高動(dòng)態(tài)下捷聯(lián)慣導(dǎo)系統(tǒng)姿態(tài)算法比較研究[C]∥系統(tǒng)仿真技術(shù)及其應(yīng)用學(xué)術(shù)會(huì)議論文集,合肥:中國(guó)自動(dòng)化學(xué)會(huì)系統(tǒng)仿真專(zhuān)業(yè)委員會(huì),2007:75-77.
[14]邢志皙,王愛(ài)民.捷聯(lián)慣導(dǎo)系統(tǒng)姿態(tài)算法比較[J].艦船電子工程,2009(181):81-84.
[15]孫冬梅,田增山,韓令軍.捷聯(lián)慣導(dǎo)系統(tǒng)中四元素法求解姿態(tài)角仿真模擬[J].彈箭與制導(dǎo)學(xué)報(bào),2009,29(1):53 -60.
[16]劉 凱,郭建國(guó),葛致磊,等.一種基于GPS/磁強(qiáng)計(jì)/加速度計(jì)的組合導(dǎo)航/定姿方法[J].飛行力學(xué),2011,29(1):93 -96.
[17] Shuster M D,Oh S D.Three-axis attitude determination from vector observations[J].Journal of Guidance and Control,1981,4(1):70-77.
[18] Yun Xiaoping,Bachmann E R,McGhee R B.A simplified quaternion-based algorithm for orientation estimation from earth gravity and magnetic field measurements[J].IEEE Trans on Instrumentation and Measurement,2008,57(3):638 -650.
[19]秦永元.卡爾曼濾波與組合導(dǎo)航原理[M].西安:西北工業(yè)大學(xué)出版社,1998.