近年來,MEMS技術的發展開辟了一個全新的技術領域和產業,采用MEMS技術制作的微傳感器、微執行器、電力電子器件等在航空、航天、汽車、生物醫學、軍事等領域中都有著十分廣闊的應用前景,同時人體姿態檢測和信息融合技術在人體醫學工程、健康監護等領域的研究也逐漸開展起來。 目前人體姿態檢測的主要手段有圖像分析和加速度分析兩種,圖像分析的算法通過攝像捕捉人體運動姿態,經過一定的圖像處理技術確定人體的姿態,該方法需要在人體運動的區域安裝攝像頭,價格昂貴、具有一定的局限性;傳統的加速度算法采用SVM (Support Vector Machine) 算法對數據進行預處理,然后用KFD(Kernel Fisher Discriminant)算法和k-NN(Nearest Neighbour)算法進行精確判定,該方法計算量大、編程復雜。 本系統提出的算法主要是在加速度計、陀螺儀、磁力計采集人體運動姿態信息的基礎上,運用擴展卡爾曼濾波將數據進行融合,得到人體腰部和腿部的角度信息,然后通過大量實驗建立與姿態的對應關系,采用這種方式可以利用加速度計與磁力計克服單獨采用陀螺儀引起的姿態角發散,另外利用陀螺儀可以克服由于振動對于加速度計的影響與由于軟硬鐵磁對于磁力計的影響。 1 系統整體設計方案 系統分為上位機子系統和下位機子系統,下位機子系統由電源模塊、2個iNEMO模塊、GPRS模塊和主控板組成,其中電源模塊給整個系統提供3.3V和5V的工作電壓,兩個iNEMO模塊分別固定在人體的腰部和腿部,完成對加速度計、磁力計、陀螺儀的信息采集,然后通過串口發送到主控板,主控板進行卡爾曼濾波融合出腰部和腿部的角度,然后根據腰部和腿部的角度值完成姿態的檢測,最后GPRS模塊通過socket協議將姿態信息打包傳送到上位機,上位機實現遠程監控。 圖1 系統整體設計方案 2 數據融合原理 在慣性導航領域,求取姿態角的數學表達式叫做方向余弦矩陣,用于表示方向余弦矩陣有兩種方式:歐拉角與四元數。歐拉角的優點是比較直觀,缺點是在俯仰角為正負90°時系統存在不穩定奇點。四元數的優點是當俯仰角為正負90°時系統不受影響,缺點是不直觀,下面是它們之間的相互轉換公式。 歐拉角轉換成四元數 四元數轉換成歐拉角 在程序中使用的是四元數,由于四元數不能直觀的表示輸出的角度,所以首先根據陀螺儀求取四元數,再將四元數轉換成姿態角。根據運動體安裝的三軸陀螺儀,可以得到在運動體坐標系下的三軸角速度( wx,wy,wz),用三軸角速度更新四元數 然后利用加速度計的信息,采用卡爾曼濾波的方法來對四元數進行修正,設系統的狀態空間方程為 其中,X(k)是k時刻的系統狀態,U(k)是k時刻對系統的控制量。A和B是系統參數。Z(k)是k時刻的測量值,H是測量系統的參數。W(k)和V(k)分別表示過程和測量的噪聲。 為了提高慣性導航儀的啟動速度,需要利用歐拉角求取初始的四元數,首先根據運動體上三軸加速度計輸出的三軸加速度( fx,fy,fz),求取俯仰角θ與橫滾角φ 隨后讀取磁力計輸出的三軸磁場強度 ,然后用加速度計對磁力計進行傾斜補償 根據傾斜補償后的磁力計輸出,可以求得偏航角為 利用公式(3-5)和(3-7)可以完成對四元數的初始化工作。 3 系統硬件設計 3.1 iNEMO模塊簡介 iNEMO慣性導航模塊的基本原理如圖2所示,利用MEMS傳感器和主控芯片STM32F103RET6提供動靜態方向和慣性測量功能。集成3個(4種)意法半導體傳感器 :3軸陀螺儀(L3GD20)、3軸加速度計+3軸磁力計(LSM303DLHC )以及氣壓傳感器 (LPS331AP ),iNEMO傳感器平臺主控制器通過I2C總線與各傳感器通信。iNEMO傳感器平臺可以通過串口向外界提供各傳感器原始數據,還可以提供各傳感器經AHRS算法融合后的橫滾、偏航及俯仰角度。 圖2 iNEMO慣性導航模塊框圖 3.2 主控制器電路設計 圖3為系統主控板電路圖,其中處理器采用了STM32F103VCT6,STM32系列單片機以Cortex-M3為內核,時鐘頻率可達到72M Hz,具有豐富的片內外設,高性能、低成本、低功耗的特點使其成為32位產品用戶的最佳選擇。主控板拓展了多個串行接口,和iNEMO腿部模塊、iNEMO腰部模塊和GPRS模塊進行串口通信。穩壓芯片選用了LM2576D2T-5,其最大輸入電壓為45V,可穩定輸出5V電壓,再經過REG1117-3.3的穩壓電路,產生3.3V工作電壓,當電流異常導致溫度過高時,保險絲F1、F2可以自身熔斷切斷電流,起到保護電路的作用。另外主控電路還包括復位電路、晶振電路、電容濾波電路以及JTAG下載接口等。 圖3 主控板電路圖 3.3 GPRS電路設計 圖4為GPRS電路圖,主要包括MCU、SIM300模塊、SIM卡卡槽、穩壓電路四部分。MCU同樣采用了STM32F103VCT6,圍繞它設計了單片機最小系統,包括晶振電路、復位電路、電容濾波電路等,MCU通過串口向SIM300發送控制指令以及接收SIM300返回的數據;SIM300模塊與PCB板的連接方式為60引腳的板板連接器,全部引腳從該連接器引出,SIM300的網絡狀態指示燈引腳可根據模塊的網絡狀態輸出不同頻率的電壓脈沖,方便觀測模塊是否正常工作,對于不需要用的音頻接口、LCD接口等,對應的引腳懸空即可;穩壓芯片選擇方面,可以使用開關型穩壓芯片或者LDO線性穩壓芯片,開關型穩壓芯片轉換效率高,但是需要的外圍器件較多,且多為功率器件,占用空間比較大,為了節省PCB空間,設計中采用MIC5219-3.3BM5穩壓芯片作為SIM300的電源調理芯片。 圖4 GPRS電路圖 4 系統軟件設計 4.1 系統軟件整體流程圖 圖5所示為系統軟件整體流程圖,首先對STM32進行初始化配置,包括時鐘電路RCC高速時鐘和低速時鐘的起振、通用引腳GPIO輸出輸出模式的配置、串口USART波特率的設置,然后將SIM300設置為透傳模式,進行網絡連接(具體過程可參考3.3),成功連接網絡之后,配置iNEMO模塊各傳感器的分辨率、字節對齊方式、讀取頻率等,然后分別讀取腰部和腿部iNEMO模塊的加速度、陀螺儀、磁力計原始數據,獲得原始數據之后根據分別率的設置計算磁力計、陀螺儀、加速度的大小,最后通過擴展卡爾曼濾波融合得到腰部的俯仰角PITCH、腿部的偏航角YAW,結合兩個角度信息通過查表法進行姿態判斷,設置相應的標志位,通過GPRS將姿態標志位打包后發送到遠程監控端。 圖5 系統軟件整體流程圖 4.2 姿態檢測 如圖6所示,iNEMO模塊中L3GD20、LSM303DLHC 以及LPS331AP 通過I2C串行總線與單片機進行通信,I2C總線兩根雙向信號線一根是數據線SDA,另一根是時鐘線SCL,通過上拉電阻接到正電源VDD,每個接到I2C總線上的器件都有唯一的地址,主機發送地址時,總線上的每個從機都將7位地址碼與自己的地址進行比較,如果相同,則認為自己正被主機尋址。 圖6 I2C串行總線示意圖 iNEMO各個傳感器的地址碼宏定義如下: #define ACC_ADDRESS 0x32 //加速度計地址碼 #define MAG_ADDRESS 0x3C //磁力計地址碼 #define GYRO_ADDRESS 0xD6 //陀螺儀地址碼 采集到傳感器的數據之后,首先利用三軸陀螺儀信號,采用四元數的姿態表達式,積分求得姿態角,然后采用三軸加速度計和三軸磁力計,利用大地磁場和重力磁場在地理坐標系和運動坐標系之間的方向余弦進行絕對角度的解算,然后采用卡爾曼濾波進行前三者數據的融合,得到腰部的俯仰角PITCH、腿部偏航角YAW。通過大量實驗建立姿態角與人體姿態的對應表如下: 表1 姿態與YAW、PITCH的對應表 4.3 GPRS發送 SIM300參數的設定、TCP/ IP連接的建立以及數據的傳輸都是通過AT指令來實現的,AT指令是終端設備與PC應用之間的通信方式,一般由終端設備(如PC、控制板等)向終端適配器(如GPRS模塊等)發送。AT指令以AT開頭,以回車作為結尾;每條指令是否成功執行都有相應的響應返回。SIM300的TCP/IP功能支持普通和透傳兩種模式,本文采用的是透傳模式,一旦建立連接模塊就進入數據模式。 SIM300透傳模式的配置大致分為以下四步: (1)匹配波特率,發送“AT”指令后,延時一段時間發送“ATE0”。 (2)注冊網絡,發送“AT+CREG?”,若返回“OK”,則網絡注冊成功。 (3)設置透傳模式,發送“AT + CIPMODE=1”,若返回“OK”,則設置成功。 (4)連接網絡,發送“AT+CIPSTART=“TCP”,“219.236.xxx.xxx”,“7000””,其219.236.xxx.xxx為PC的IP地址,7000為端口號。連接成功返回:CONNECT OK 5 系統測試 為了驗證系統姿態檢測功能的可靠性,選取了不同的人分別佩戴該系統做了大量的實驗,完成了對站立、坐下、行走、彎腰、躺下、趴倒的識別率的測試。從測試結果表2可以看出,大部分動作均可以準確無誤的識別出來,行走、彎腰兩個動作出現了誤識別,這是由于不同的人佩戴該系統時,各個姿態對應的角度閾值會有少許的差別,但是百分之九十五以上的識別率足夠滿足用戶的要求。 表2 測試結果 結束語 人體姿態檢測裝置實現了對人體姿態的檢測,可以很好地應用在對老人的監護、體感游戲等領域。數字式傳感器的應用簡化了硬件電路,GPRS模塊的網絡傳輸突破了射頻傳輸距離短的缺陷,擴大了傳輸距離,整個系統體積小巧方便、應用性強。 |