李文鋒,吳 翔,孫 俊,江 鵬
(武漢理工大學物流工程學院,湖北 武漢 430063)
人體姿態(tài)的檢測和跟蹤在各個行業(yè)都有廣泛的應用[1],目前對人體姿態(tài)的檢測和跟蹤包括基于視覺的和基于普通傳感器的.基于視覺的處理方法主要是利用高頻攝像頭的采集和圖像的處理來分析,對攝像頭和處理算法都提出了很高的要求,成本高,數(shù)據(jù)存儲量大,同時又只局限于平面分析,其應用受到了很大的影響[2-3].利用低成本傳感器來跟蹤人體的姿態(tài),已經有很多成功的例子,如法國學者Suguru goto設計的音樂機器人以及日本學者Fuminori Yamasaki在2007年設計的數(shù)據(jù)衣服都是利用普通傳感器來采集人體信息[4].人體可以看做是由一根根連桿組成的關節(jié)系統(tǒng),人體的運動可以簡化成一根根連桿的角度變化.隨著傳感器技術的飛速發(fā)展,加速度傳感器、位移傳感器等已經能夠滿足捕捉人體姿態(tài)的要求.本文利用小型三軸加速度傳感器,設計了一種跟蹤人體的方法.
理論上,加速度a、速度 v和路程s之間滿足
和
根據(jù)傳感器采集的加速度信號,連續(xù)積分兩次即可得到位移,進而計算出機器人四肢及身體的姿態(tài).實驗中,按照這一方法處理采集到的傳感器數(shù)據(jù),最終結果與理論值相差甚遠,這是由于這種方法是利用微積分進行計算,而且初始位姿是開機設定的第一次,可能存在一定的標定誤差,在多次積分的計算中又存在誤差的時間累積性,最終導致錯誤的產生.
由于上面方法的不可行性,為了測量機器人的位姿狀態(tài),重慶大學的侯文生等人[5]提出了利用三軸小型加速度傳感器中的兩軸來測量角度的方法,其建立的模型如圖1所示.
圖1 傳感器受力示意圖
在該方法中,對加速度傳感器有諸多約束條件,具體包括:1)加速度傳感器必須繞某一參考點做圓周運動;2)保證其中一軸(圖中是Z軸)始終與重力軸保持垂直;3)運動平面必須是垂直向下;4)其中一軸(圖中是Y軸)必須始終保持與除去重力的加速度方向垂直.
在同時保證以上約束條件的情況下,能計算出剩下的一軸(X軸)與重力軸方向的夾角(θ角).
由于需要滿足的條件太多,使得該方法在實際應用中極其不便,在機器人位姿檢測中只能用于雙臂的單平面角度檢測.
充分利用傳感器能測量三軸加速度的特點,在立體平面內對傳感器進行受力分析(圖2).
圖2 加速度傳感器三軸受力示意圖
由于重力和外力都能影響加速度傳感器的輸出,假設重力加速度為g,合外力加速度為a,則傳感器在各個方向應滿足
式中:α,β,γ分別為合外力加速度a與X,Y,Z軸的夾角;αg,βg,γg分別為重力加速度g與X,Y,Z軸的夾角 ;Δ x,Δ y,Δ z 分別為計算出來的三軸的電壓輸出變化量;kx,ky,kz分別為傳感器在X,Y,Z三個方向的靈敏度.
通過選取傳感器的量程后,理論上可以通過一定的計算求出傳感器在三個方向上的靈敏度kx=ky=kz=計算出來的常量,但由于各個傳感器都存在計算精度的問題,實際上kx、ky、kz并不兩兩相等.
式(1)至式(5)組成的方程組一共存在7個未知量,為不定方程組.為了求得重力加速度g與X,Y,Z三軸的夾角αg,βg,γg;給定一約束條件合外力加速度a=0,則式(1)至式(4)分別等價于下面式(6)至式(9):
通過式(6)、式(7)、式(8)可計算出:
在實驗中發(fā)現(xiàn),實際上用重力標定的方法[5]來求出 kx、ky、kz,同時取重力加速度 g=9.8來進行最后的計算,這樣得出的結果并不正確,所以本實驗中采取將gk作為一個整體m來計算,例如求X軸的m值,只需測量出X軸在重力方向的靜態(tài)輸出值x1和垂直于重力方向的重力值x0,則
由于三軸上采集的數(shù)據(jù)可能有錯誤,通過式(9)驗算,可進行初步的濾波處理.同時,由于在采集數(shù)據(jù)時會有在約束條件之外的數(shù)據(jù),要進行相應的判斷處理,將這些數(shù)據(jù)結構也濾掉.
這樣測出來的角度就已經比較準確了,但在不同的應用場合還要有不同的處理.本實驗最終是用來跟蹤人體的位姿運動,考慮到人體的抖動對傳感器采集到的數(shù)據(jù)有影響,還應設立一個去除人體抖動的干擾的閾值.具體的做法如圖3所示.
圖3 傳感器數(shù)據(jù)處理流程圖
設計此次實驗的目的是為了比較用這種算法計算的角度值與實際情況下的角度值之間的結果,計算這種算法的誤差,所以需要將計算出來的角度值在電腦上實時輸出出來.
本實驗選用的傳感器是小型電容式三軸加速度傳感器,對傳感器模塊進行穩(wěn)壓輸入.在單片機上進行計算后,通過串口將數(shù)據(jù)發(fā)送給電腦,在電腦上將角度值實時輸出.
表1是實驗所得的幾組數(shù)據(jù).
表1 實驗數(shù)據(jù)及誤差分析 (°)
模型的建立和仿真分別是在3Dmax軟件和OSG仿真平臺[6-7]下實現(xiàn)的.仿真實驗中,將傳感器固定在人體兩臂上,利用前面的角度轉換算法,求出傳感器的位置,進而通過一定的角度對應關系能找到人體兩臂的運動位姿.實驗結果如圖4所示.
圖4 人體仿真結果
從實驗中可以看出,實驗誤差都在6°以內,在一般條件下,該方法確實能夠將加速度值轉化為角度值.而引起實驗誤差的原因在于實際測得角度的方法本來就有一定的誤差,傳感器本身的精度也不是很高.同時周圍溫度等環(huán)境條件都可能影響到實驗結果.
將加速度傳感器的加速度值轉化為角度值,擴大了加速度傳感器的應用范圍,對人體姿態(tài)跟蹤的仿真實驗證明了其算法應用的可行性,與其他算法相比,能更準確記錄人體位姿信息.
[1]John Kemp,Elena I.Gaura,James Brusey.Using body sensor networks for increased safety in bomb disposal missions[EB/OL].(2008-01-01)http://www.coventry.ac.uk/researchnet/external/content/1/c4/60/92/v1234782324/user/bsn.pdf.
[2]王兆其.基于視頻的三維運動捕獲方法研究[D].北京:中國科學院計算技術研究所,2006.
[3]張 莉.多攝像機人體跟蹤技術的研究[D].杭州:浙江大學圖書館,2008.
[4]Suguru Goto,Fuminori Yamasaki.Integraion of percussion robots“robotmusic” with the data-suit“bodysuit”:technological aspects and concepts[C]//16th IEEE International Conference,2007:775-779.
[5]侯文生,戴加滿,鄭小林,等.基于加速度傳感器的前臂運動姿態(tài)檢測[J].傳感器與微信息,2009(28):106-108.
[6]李 露,陳定方.基于OSG的粒子系統(tǒng)特效控制的研究[J].武漢工業(yè)大學學報,2009(24):51-53.
[7]汪 璇.基于OSG的分布式汽車駕駛模擬器運行仿真及碰撞檢測研究[D].武漢:武漢理工大學圖書館,2008.