Max?。拢幔颍铮?/p>
摘要:剖析了Moven和ADI展示的一件集慣性傳感器、處理器以及無線通信模塊于一身的衣服,這件衣服可記錄穿著者的運動狀態(tài),并在電腦屏幕上實時顯示出三維的運動圖像。MEMS傳感器、DSP乃至SoC、軟件在運動捕捉類應(yīng)用上具有特殊的結(jié)構(gòu)。
關(guān)鍵詞:MEMS;DSP;虛擬現(xiàn)實;慣性傳感器;陀螺儀
第三個例子為拳擊比賽中的應(yīng)用。拳擊手Hutton(曼徹斯特,英國)擊拳平均記錄數(shù)據(jù)為0.1秒內(nèi)達(dá)到40km/h。假設(shè)從0速度開始進(jìn)行均勻線性加速至40km/h或11.1m/s,斜率為1.13g/s,加速度計可以輕松應(yīng)對。
這些數(shù)據(jù)的采樣及數(shù)字處理頻率更多取決于數(shù)值積分的準(zhǔn)確性,而不是奈奎斯特采樣定理中所需的MEMS最大輸出頻率的兩倍(2x1600=3200Hz或2x550Hz=1100Hz)。也就是說,是否需要傳感器所提供的最佳頻率響應(yīng)。Moven認(rèn)為奈奎斯特定理應(yīng)用于測量隨意人類運動所需的最大頻率,通常不高于10Hz(對于沖擊可能會稍微高些),而約100Hz的奈奎斯特頻率應(yīng)當(dāng)足以應(yīng)付沖擊和較慢的隨意運動。
我們僅能估計很小部分的工作量。首先我們進(jìn)行角速率長方形積分所需的三次乘累加,將其分量加到前一角度。假設(shè)三角函數(shù)分開計算或由查表得出,我們僅考慮上述本源矩陣運算。經(jīng)過軸旋轉(zhuǎn)和簡單長方形積分,我們發(fā)現(xiàn),通過15次累乘和3次乘加,加速度被積分為速度在基準(zhǔn)坐標(biāo)系的三個分量——x,y,z,并將其累加到積分常數(shù),也就是先前的速度。3次附加的乘加將提供坐標(biāo)系中新的x,y,z位置—這將使計算總數(shù)提至24次。注意采用不同的取向表示,如四元數(shù)可節(jié)約工作量處理性能。四元數(shù)采用4個參數(shù)。一個描述將要用于單位向量的標(biāo)尺,另外3個虛系數(shù)標(biāo)注單位向量的旋轉(zhuǎn)。
繼續(xù)先前的算法,假設(shè)采樣頻率可能超過要求,是電視(60fps)的兩倍,120×3200Hz=384000Hz。上述簡單矩陣計算需要每秒9216000次運算。處理附于運動捕捉服的16個基于MEMS的慣性單元(2個為任選)的讀數(shù)需要大約147.5Mops(百萬次運算每秒),如果只是這一項,DSP器件(女11ADI的Blackfin)是可以輕松應(yīng)對的。
運動捕捉服和PC間的通訊采用基于藍(lán)牙標(biāo)準(zhǔn)的無線連接Moven采用了經(jīng)優(yōu)化/調(diào)諧的藍(lán)牙2.0(aka1.2)Class 1。藍(lán)牙1.0和1.2擁有721kbit/s收發(fā)速率。更新的藍(lán)牙2.0規(guī)格為3Mbit/s,但實際只支持2.1Mbit/s。我們現(xiàn)在需要考慮由藍(lán)牙連接至PC所造成的限制。由于沒有其它選擇,我們只能在運動捕捉服上進(jìn)行數(shù)據(jù)轉(zhuǎn)換。每個傳感器產(chǎn)生3個加速增量的讀數(shù),3個角速率增量和3個溫度(可在本地采用參考電壓,以幫助提高準(zhǔn)確性)。假設(shè)數(shù)據(jù)以每個慣性傳感器16bit和32bit初始字段表示,如只使用一個藍(lán)牙信道,我們需要每個傳感器發(fā)送9×16+32=176bit,一共16個傳感器共需179×16=2864bit。如前面所講的,采樣率為384000Hz,這樣,每秒傳送的總比特為每秒2864×384000bit,即約1.1Gbits。藍(lán)牙2.0只能支持2.1Mbit/s的傳輸速率,那么2.1Mbit/s/2864約為746采樣/秒。該采樣率可支持每周期單個樣品下的MEMS的頻率帶寬約為373Hz。藍(lán)牙1.0、1.1和1.2標(biāo)準(zhǔn)則更糟,對應(yīng)MEMS頻率約為128Hz,只允許每秒256次采樣。在所有傳感器中建立的此均一速率下,不可能正確檢測足球和拳擊等劇烈運動的高速碰撞,但至少可以定義可支持運動和移動的速度。根據(jù)Moven的經(jīng)驗,可做到在采樣速度很低的情況下依然能可靠地捕捉人類動作。Moven支持無線通信高達(dá)120Hz。Moven也提供有線通信,有線通信的帶寬可達(dá)512Hz,采樣率更高,足以滿足某些運動的苛求。
在該運動捕捉服上的DSP、高性能微控制器或移動微處理器可以減少需傳遞至PC的數(shù)據(jù)量,甚至可以在該服裝上集成大容量閃存以記錄本地信息。其它減少數(shù)據(jù)通信的方法為:由于MEMS斜率較低,可傳遞增量讀數(shù),減少表示數(shù)據(jù)所需的大小或通過定義頭文件發(fā)送可變大小的數(shù)據(jù)。
上述最后一種辦法以及本地存儲數(shù)據(jù),似乎是減少數(shù)據(jù)通信的最有希望的辦法。人體知識為增加準(zhǔn)確性提供了選擇:一種有關(guān)節(jié)的、具有23部分的生物機(jī)械體軟件模型用于限制動作,消除由于現(xiàn)實世界改變參數(shù)及積分不準(zhǔn)確導(dǎo)致的滑步和積分漂移。
使其物有所值的軟件
假定大部分?jǐn)?shù)據(jù)處理工作在安裝MovenStudio2.0應(yīng)用程序的PC或筆記本進(jìn)行,該軟件旨在為所采集的動作數(shù)據(jù)和高級應(yīng)用程序架起一座“橋梁”,因此軟件隱藏了系統(tǒng)控制和必須處理的數(shù)學(xué)算法,用戶界面也非常簡單。
Moven公司網(wǎng)站上可供下載的演示版程序,但在沒有運動捕捉服的情況下,該演示版程序幾乎毫無用處。但是Moven在該軟件中,以XML文件格式(文件后綴名為mvnx)保存了幾個短肢體層次結(jié)構(gòu)代碼和動作樣本。用戶可以播放并由不同的虛擬照相機(jī)觀看這些文件。有些控制在演示版中是可用的。復(fù)制和粘貼僅支持二進(jìn)制源格式MVN。你可以將一個MVN文件粘貼到一個新的MVNX文件。所捕捉的動作可以divx或mov視頻格式輸出。
當(dāng)運動捕捉服連接后,MovenStudio2.0的控制菜單被激活??刂撇藛伟ā安蹲椒顟B(tài)”、“預(yù)覽和記錄窗口”、“開始新記錄”、“記錄‘mvn文件”、“重新定位傳感器”及“校準(zhǔn)動作捕捉服”?!靶?zhǔn)動作捕捉服”是指當(dāng)用戶穿上該服裝并做出預(yù)定的初始化動作或姿勢時,系統(tǒng)會得到加速度、旋轉(zhuǎn)率、溫度和電壓等幾個參數(shù)初始讀數(shù),從而校準(zhǔn)系統(tǒng)。此外,幾個附加的校準(zhǔn)動作用于得到穿該服裝用戶的特定身體參數(shù)。幫助菜單僅有“關(guān)于”一項。幸運的是,動作采本文件可作為*bvh標(biāo)準(zhǔn)文件導(dǎo)出。Moven2.0輸出BVH格式文件以兼容Poser、Motion Builder以及3D Studio Max等軟件。Moven Studio2.0也可輸出FBX格式文件,此種格式文件更為靈活并得到Autodesk軟件的支持。FBX可以提供身體任一部分的數(shù)據(jù),而不僅是旋轉(zhuǎn)。BVH文件格式在寫本文最初由Biovision開發(fā)。用于Biovision等級數(shù)據(jù)的BVH標(biāo)準(zhǔn)。該文件由兩部分組成:首字段描述目標(biāo)的層級結(jié)構(gòu)并提供描述目標(biāo)骨骼的初始姿勢。這些將為第一積分常數(shù)。數(shù)據(jù)字段含有動作數(shù)據(jù)。Universi鑼of Wisconsin提供的一個例子給出了這種文件資源(見源代碼邊注或http://www.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeft/Examplel.bvh)。
使用動作捕捉數(shù)據(jù)
描述過BVH格式文件的組成結(jié)構(gòu)之后,現(xiàn)在我們來看一下這類文件如何被高級程序使用,如人物動畫、游戲、虛擬顯示、訓(xùn)練、廣告、駕駛以及體育等。作者將描述Moven數(shù)據(jù)在程序中的使用,作者用這些程序積累了一下經(jīng)驗,Poser 7和Anime Studio Pro5.6,可使用Poser 7創(chuàng)造的3D圖像。兩個程序都可由e-frontier(現(xiàn)已被Smith MicroSoftware Inc.收購)得到。
第一個令人愉快的事情是(a)Poser7可導(dǎo)入BVH文件。(b)Moven可提供與Poser7定義的“骨骼”架構(gòu)所兼容的文件。這解釋了Moven2.0中“重新定位傳感器”命令的需要。下一個經(jīng)驗就不那么美妙了。當(dāng)Poser7讀取BVH文件時,Poser7提示有些關(guān)節(jié)或四肢缺少數(shù)據(jù)或數(shù)據(jù)太多。盡管如此,但令人高興的是,Poser7確實可以處理這些數(shù)據(jù),并將其分配給程序員。Moven稱可同時記錄源自多個人的動作數(shù)據(jù),但沒有定義人數(shù)的上限以及所收集數(shù)據(jù)的類型。作者認(rèn)為有可能使用幾個不同的Moven系統(tǒng),將時間和三維距離積分留給PC或程序(如Poser 7)做后期處理。在Poster7中,可以獲得展示幾個人的情景,具體方法為:首先讓某人位于程序前臺,之后通過輸入控制此人的BVH文件,這樣,即便之后此人位于后臺程序也可控制其圖像。
Poster7允許程序員定義并塑造3D面龐,并使其可隨著動作、相機(jī)角度以及距離的變化而變化。甚至可以使人物彼此同步其不同時間軸的關(guān)系。盡管效果可以很好,許多改變可由手工完成且并不困難。但是制作和測試很耗時。為了在虛擬現(xiàn)實行業(yè)中實現(xiàn)創(chuàng)作的多產(chǎn),這個行業(yè)需要創(chuàng)作更多的工具,加入Moven的動作捕捉可使編輯和測試變得更加容易。
將一個動作文件指定給一個圖像中的人物的過程相當(dāng)簡單:首先,由某人經(jīng)歷一系列的運動,此人的身體測量參數(shù)和服裝尺寸也將所需記錄動作的數(shù)據(jù)的一部分。后續(xù)步驟由一機(jī)械體展示,該機(jī)械體可以展示實際動作。當(dāng)其從不同相機(jī)角度(更多3D數(shù)學(xué)變換)和距離觀看時,結(jié)果可以在PC或Mac按每一幀觀看,或作為視頻播放。
通過將動作數(shù)據(jù)文件指定給人物,我們準(zhǔn)備好設(shè)計某女士穿越視野,并跳躍由作者插入的障礙物的一系列動作。
作者沒有更正穿紅T恤的男士的動作,因為他的動作不好配合。此外,也沒有為女士提供頭發(fā),不過女士的頭發(fā)可以從Poster7中的本地素材庫選取,也可以從網(wǎng)上找到由專業(yè)人員和業(yè)余人員創(chuàng)作或出售相關(guān)素材。Moven探究導(dǎo)致兩程序通訊不同的特定原因:一種可能性是萬向節(jié)死鎖——指兩旋轉(zhuǎn)陀螺儀進(jìn)入某位置禁止第三陀螺儀矯直平臺。
近乎完整的系統(tǒng)
現(xiàn)在,我們可以容易的看到設(shè)計這種系統(tǒng)所需涉及的階段,從慣性傳感器和芯片,到RF,到PC,到軟件程序和界面以及其它如游戲設(shè)計等。盡管這些步驟的順序和步驟清楚,也定義了最終規(guī)格,但是最難解決的問題是處理資源的分配,如可能,一種產(chǎn)品應(yīng)滿足多種應(yīng)用的需求。對于野外訓(xùn)練而言,是否采用DSP進(jìn)行本地數(shù)據(jù)處理,從而使運動捕捉服裝獨立于PC更好?兩個RF藍(lán)牙2.0信道是否能幫助更好地分配功效?是否需要一個像Moven2.0的前端附于Poser7以提供網(wǎng)上實時游戲,而這種做法對性能及網(wǎng)絡(luò)接入時間會有何影響?是否Moven或其它公司應(yīng)當(dāng)創(chuàng)造一個“編輯”服裝以直接連接游戲開發(fā)環(huán)境來更快的調(diào)試修改游戲?
我們需要調(diào)整系統(tǒng)的每個組件以保證性能但并不一定是最佳性能,因為在這個情況下,系統(tǒng)中的其它一些因素,例如通訊,可能是真正的瓶頸。例如,在微分中,人們試圖在系數(shù)等分中發(fā)現(xiàn)最適條件。比如,正方形優(yōu)于長方形。
似乎只是最近,動作捕捉可以通過處理取自12個照相機(jī)的數(shù)據(jù)得以實現(xiàn),但這些照相機(jī)無法克服外界物體所造成的遮擋。在Moven的慣性動作捕捉技術(shù)的出現(xiàn)之前,動作捕捉不可能在任意地點和完全漆黑的情況下進(jìn)行,因為動作捕捉一直受到相機(jī)的限制——即只有在相機(jī)能正常工作的地方,才能進(jìn)行動作捕捉。
業(yè)界做了很多工作以加速虛擬世界的創(chuàng)造,如文字和聲頻/視頻等,但我們用來創(chuàng)造虛擬世界的工具還只是開始。
隨著SoC漸漸成為系統(tǒng)名副其實的一部分,對系統(tǒng)范圍的理解將日益重要。(本文選自《微處理器報告》,莫怡欣譯)