基于加速度傳感器的無線人體動作測量設備
引言
長久以來,使用人體自然動作與計算機交互一直是人機交互技術追求的目標之一。目前主流的人機動作交互技術有2種:視頻動作識別技術和慣性器件動作識別技術。
前者以Microsoft Xbox 360的Kinect視頻感應器為代表,依靠攝像頭采集人體動作視頻,通過識別算法進行分析,可較準確地識別人體動作,但需要強大的硬件處理能力、復雜的軟件識別算法,而且對于多人、高復雜度動作難以識別。后者的代表為任天堂的Wii mote手柄,主要依靠慣性器件反映出肢體的速度、位移及傾斜度。該技術算法簡單,識別精度較高,但需要佩戴傳感器模塊,可能給體驗者帶來不適。識別動作的復雜度與傳感器的數量、精度有關,如Wii mote局限在于僅能感知手部運動,隨著傳感器使用數量、種類的增加,精度的提高,人體各種快速、復雜的運動都可被精確識別,這是視頻識別技術所難以達到的。
本文介紹的設備是使用加速度傳感器的無線人體動作信息測量設備,在人體四肢及軀干同時佩戴5組測量設備,準確反映人體各部分動作情況,同時使用無線數據傳輸方式減少體驗者的不適感。
1 測量原理
測量模塊放置于人體四肢及軀干,以右手為例。測量模塊放置于右手肘關節外側,根據重力在加速度傳感器三軸上的分量,可以計算出傳感器坐標系與自然坐標系的夾角,進而得出傳感器所在手臂平面與自然坐標系的夾角,根據三個夾角與傳感器到肩膀的固定位置,可以計算出傳感器所在手臂部位的空間位置。傳感器坐標系與自然坐標系夾角如圖1所示。
式中Ax為傳感器x軸加速度分量,Ay為傳感器y軸加速度分量,Az為傳感器z軸加速度分量。人體軀干直立,右手微抬時傳感器所在手臂與自然坐標系的三個夾角如圖2所示。其中右手上白點代表傳感器。
2 系統硬件設計
硬件系統由運動測量模塊與數據接收模塊構成。運動測量模塊放置于人體四肢及軀干部位,負責采集加速度數據,并將數據通過2.4G無線方式發送至數據接收端。數據接收模塊同時接收5組運動測量模塊的測量數據,并通過USB接口與PC機傳遞數據。
2.1 運動測量模塊硬件設計
運動測量模塊由ADXL345加速度傳感器、nRF24L01無線射頻模塊、ATmega88單片機和電源模塊構成,硬件結構如圖3所示。測量模塊實物如圖4所示。
ADXL345是ADI公司的三軸數字加速度傳感器,主要應用于消費電子的微型慣性器件,較大可感知土16g的加速度,感應精度可達3.9mg /LSB,傾角測量典型誤差小于1°。通過其內置的ADC將加速度信號轉換為數字量存放在片內緩沖區,使用SPI總線讀取數據。在實際使用中,為提高輸出數據的穩定性,設置感應范圍為±2 g,感應精度為3.9 mg,可以滿足人體動作加速度范圍與精度要求。傳感器采樣速度在6.25~3 200 Hz之間可調,因為無線發送數據需要時間較長,并且低采樣速率可以降低噪聲干擾,將采樣速度設定在100Hz,即10ms輸出1組數據。
控制模塊由ATmega88單片機及配套電路構成。ATmega88為8位AVR單片機,在3.3 V電壓模式下可以工作于8 MHz,片內擁有8 KB Flash與1 KB SRAM。其主要任務為初始化加速度傳感器和無線射頻芯片,并從加速度傳感器中讀取測量數據,將數據初步整理后傳送至無線射頻芯片。
無線射頻模塊主要由nRF24L01構成,是一款單片射頻收發器件,它工作于2.4~2.5 GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等。數據傳輸速率可達1~2 Mb/s。它可以同時支持6個無線器件的接收,由此實現了1組數據接收模塊同時接收5組運動測量模塊發送的數據。
電源模塊使用低壓差線性穩壓器件(LDO)SP6201,將鋰電池的4.2 V電壓降至3.3 V,較大可負載200 mA電流,滿足設備需要。
2.2 數據接收模塊硬件設計
數據接收模塊使用芯片CY7C68013A,片內集成USB2.0收發器、串行接口引擎、增強型8051微控制器,數據的傳輸率可達到56 MB,較大4 K USB端點緩沖區,時鐘頻率可達48 MHz。由于CY7C68013A本身并沒有硬件SPI接口,同時又需要SPI與無線射頻模塊通信,實際中使用GPIO口軟件模擬4線SPI進行通信。CY7C68013A不斷掃描無線射頻模塊狀態,當有接收數據到來時,使用SPI接收數據并通過USB上傳給計算機。
數據接收模塊硬件結構如圖5所示。
3 系統軟件設計
軟件設計主要包括2個部分,動作測量模塊主控制器ATmega88的數據采集及發送部分、數據接收模塊控制器CY7C68013A的數據接收及上傳部分。
3.1 運動測量模塊軟件設計
使用ATmega88的定時器控制采樣時間,由于已經將ADXL345的輸出頻率定為100 Hz,這里將程序設定為每隔10 ms進行一次采樣,采樣后將數據發送至無線射頻模塊進行數據發送,發送成功后進行下一次采樣,否則重新發送。測量模塊軟件流程如圖6所示。
3.2 數據接收模塊軟件設計
數據接收模塊CY7C68013A通過不斷查詢nRF24L01的中斷引腳來檢測有無數據到來;當有接收數據到時,使用SPI總線讀取加速度信息,判斷該數據來自哪個發送端,并將數據存放在相對應的USB端點緩沖區,等待上位機取走。若上位機不取數據,舊數據會自動被新數據沖掉,保證數據的實時性。中央處理模塊軟件流程如圖7所示。
4 實驗結果與分析
實驗中使用面包板模擬人體手臂進行角度測量實驗,因為真實手臂平面有一定弧度,測量模塊不同的放置位置對測量結果會有影響,而面包板為規則長方體,有非常平坦的一面可以放置測量模塊,并且棱角清晰方便進行傾斜角度測量。在具體實驗中,模擬測量模塊佩戴在右手肘關節外側的情況,設計2種測試例。右手向右伸臂的動作,如圖8所示。右手向前抬臂的動作如圖9所示。
在0~90°范圍內2種情況下,三軸測量角度與參照角度比較。表1為模擬右手右伸臂時三軸角度與參照角度比較。表2為模擬右手前抬臂時三軸角度與參照角度比較。由表1、表2可以看出:除個別接近0、90°時誤差較大外,大多數角度測量的誤差絕對值小于1.5°,與ADXL345官方說明文件的誤差小于1°較為相符。
表中負值為傳感器坐標軸正方向與自然坐標軸正方向夾角超過90°情況。誤差超過1°產生的原因有如下幾方面:
①在電源設計時沒有為ADXL345的ADC單獨設置參考電壓源,而是使用VDD系統電源,存在一些紋波干擾,造成誤差。
②沒有對傳感器進行零點標定,水平放置時X、Y軸輸出并不為0。
③缺少專業角度測量設備,角度參考圖使用普通量角器制作,參考角度與實際角度。
④傳感器平面與電路板平面、實驗面包板平面不完全重合,存在固定夾角,測量時有誤差。從表1的Y軸夾角看出,理論上模擬右手右伸臂時Y軸夾角應一直為0°,但現實中出現了一個轉角,使輸出逐漸由-1.2°過渡到2.2°。
結語
本文通過使用加速度傳感器ADXL345采集人體動作信息,使用nRF24L01無線時頻模塊發送數據,較后通過USB芯片CY7C68013將數據上傳給PC機,并在PC機上實時繪制人體運動動畫,構建了一種人體動作信息測量設備。測量身體各部位角度典型誤差小于1.5°,滿足普通人機交互需要。目前已經根據上述原理制作出樣品,PC機上顯示人體模型與佩戴測量模塊的實際人體動作較為一致,反應靈敏,可以滿足快速實時的人機交互過程的實現。在進一步減小輸出誤差,穩定輸出結果后,可以應用于高危環境機器人控制、游戲娛樂等各種人機交互場合。
相關閱讀:
- ...2012/06/19 13:48·基于加速度映射的跳躍機器人穩定性控制
- ...· Efinix® 全力驅動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產品擴展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進博會,引領智慧新生活
- ...· 三電產品開發及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導體領域 為面板級扇出型封裝提供化學濕制程、涂布及激光應用等生產設備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統中標北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負載系統成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關鍵部件測評研討會上演繹先進測評技術