張夏豐,袁夢(mèng)飛,李令環(huán),楊孫運(yùn)
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
姿態(tài)識(shí)別在醫(yī)學(xué)領(lǐng)域、生物研究領(lǐng)域等多個(gè)學(xué)科領(lǐng)域有著廣泛的應(yīng)用。實(shí)驗(yàn)鼠是常用的實(shí)驗(yàn)動(dòng)物,在神經(jīng)科學(xué)、生物科學(xué)、藥物開(kāi)發(fā)等領(lǐng)域?qū)?shí)驗(yàn)鼠行為的檢測(cè)與分析作為一種重要的方法進(jìn)行研究,在藥物的毒理、藥理研究中具有重要的價(jià)值[1-2]。傳統(tǒng)的實(shí)驗(yàn)鼠姿態(tài)識(shí)別主要是通過(guò)人眼觀察來(lái)實(shí)現(xiàn),這種方法對(duì)觀察者經(jīng)驗(yàn)要求較高,受主觀影響較大,且難以進(jìn)行長(zhǎng)時(shí)間記錄[3]。隨著圖像處理技術(shù)的發(fā)展,基于圖像方法的生物姿態(tài)自動(dòng)檢測(cè)方法取得了較大的進(jìn)步。通過(guò)提取圖像中實(shí)驗(yàn)鼠輪廓進(jìn)行行為識(shí)別[4];將深度學(xué)習(xí)應(yīng)用于圖像中,對(duì)實(shí)驗(yàn)鼠進(jìn)行識(shí)別[5]。但是,數(shù)字圖像處理方法的實(shí)質(zhì)是忽略動(dòng)物體態(tài)及其變化,將動(dòng)物看做質(zhì)點(diǎn),僅反映動(dòng)物運(yùn)動(dòng)狀態(tài),獲得相關(guān)的運(yùn)動(dòng)參數(shù),對(duì)小鼠的姿態(tài)細(xì)節(jié)的捕捉效果不佳,并且該方法成本較高。
正確識(shí)別實(shí)驗(yàn)鼠的姿態(tài)對(duì)于眾多學(xué)科領(lǐng)域的實(shí)驗(yàn)研究有著十分重要的作用。針對(duì)上述問(wèn)題,本文采用低成本的9 軸IMU,設(shè)計(jì)了一款基于IMU 的無(wú)線(xiàn)姿態(tài)采集系統(tǒng),其中硬件僅有7×7×3 mm 大小。相對(duì)于其它方法,該系統(tǒng)可通過(guò)將傳感器安置在實(shí)驗(yàn)鼠背部或其它需要采集的位置,可以對(duì)實(shí)驗(yàn)鼠的姿態(tài)細(xì)節(jié)進(jìn)行更精細(xì)定量的行為記錄研究,效果較好。
無(wú)線(xiàn)姿態(tài)采集系統(tǒng)由9 軸IMU 模塊、無(wú)線(xiàn)通信模塊、姿態(tài)采集模塊、STM32L0 主控制器模塊以及上位機(jī)軟件組成。本文所設(shè)計(jì)基于IMU 的無(wú)線(xiàn)姿態(tài)采集系統(tǒng)流程圖,如圖1 所示。所設(shè)計(jì)姿態(tài)采集系統(tǒng)硬件模塊體積僅為7×7×3 mm,具有很好的便攜性和可穿戴性。
圖1 采集系統(tǒng)流程圖Fig.1 Flow chart of acquisition system
為實(shí)現(xiàn)便攜化設(shè)計(jì),本文采集系統(tǒng)供電模塊為3.7 V 鋰電池。IMU 模塊采集運(yùn)動(dòng)姿態(tài)信息,并通過(guò)IIC 通訊向主控模塊輸出加速度、角速度以及地磁等姿態(tài)數(shù)據(jù)。主控模塊接收IMU 模塊數(shù)據(jù)后將數(shù)據(jù)打包,并通過(guò)無(wú)線(xiàn)傳輸模塊將數(shù)據(jù)傳至上位機(jī)。上位機(jī)接收模塊上傳數(shù)據(jù)并針對(duì)數(shù)據(jù)進(jìn)行解析與分析。
采集系統(tǒng)硬件電源由3.7 V 鋰電池提供,但各硬件模塊電壓需求為1.8 V,本文選用RT9073A-18GQZ 作為電源模塊,將3.7 V 鋰電池電壓轉(zhuǎn)換為系統(tǒng)需要的1.8 V 電壓。RT9073A 是臺(tái)灣立锜推出的一款低壓差線(xiàn)性穩(wěn)壓器(LDO),具有體積小、輸出電流大等特點(diǎn),最高可提供250 mA 負(fù)載電流。電源模塊電路原理如圖2 所示。
圖2 電源模塊Fig.2 Power supply module
姿態(tài)采集模塊由TDK 公司推出的9 軸MEMS 運(yùn)動(dòng)傳感器ICM20948 及其外圍電路組成。ICM20948是一款小體積、低功耗姿態(tài)采集芯片。姿態(tài)采集傳感器電路原理圖如圖3 所示,其內(nèi)部集成有三軸加速度計(jì)、三軸陀螺儀和三軸地磁,且3 者測(cè)量范圍分別可達(dá)到±16 g、±2 000 dps以及±4 900 μT。芯片在9 軸模式下工作時(shí),功耗僅為2.5 mW。芯片支持低至1.71 V的供電電壓,可通過(guò)IIC 或SPI 通訊接口對(duì)外通訊,本文采用IIC 通訊接口與主控模塊進(jìn)行通訊。
圖3 姿態(tài)采集模塊Fig.3 Attitude acquisition module
主控模塊在系統(tǒng)中負(fù)責(zé)接收姿態(tài)傳感器數(shù)據(jù),并將處理后的數(shù)據(jù)通過(guò)無(wú)線(xiàn)傳輸模塊傳送至上位機(jī),本文選用STM32L011 單片機(jī)作為系統(tǒng)主控制器。STM32L0 系列單片機(jī)是意法半導(dǎo)體公司推出的基于Cortex-M0+內(nèi)核的32 位低功耗系列單片機(jī),運(yùn)行時(shí)系統(tǒng)功耗低至76 μA/MHz[6]。芯片內(nèi)部資源主要有1 個(gè)IIC、1 個(gè)SPI、7 個(gè)定時(shí)器、1 個(gè)USART 以及1 個(gè)低功耗UART 并帶有16 M 內(nèi)部高速時(shí)鐘。主控模塊電路原理圖如圖4 所示,模塊供電電壓為1.8 V,其中PA4 引腳為電池電壓采集引腳,通過(guò)R2、R3 實(shí)現(xiàn)對(duì)電池電壓的采集。PA9、PA10為與姿態(tài)采集模塊進(jìn)行IIC 通訊的SCL 與SDA 引腳,所接R4、R5為上拉電阻,PA0 與PA1為串口通訊引腳,負(fù)責(zé)與無(wú)線(xiàn)傳輸模塊通訊。
圖4 主控模塊Fig.4 Main control module
為實(shí)現(xiàn)數(shù)據(jù)的上傳,系統(tǒng)采用宏佳電子推出的HJ-185 藍(lán)牙設(shè)計(jì)了無(wú)線(xiàn)傳輸模塊。HJ-185 是一款主從一體低功耗藍(lán)牙模塊,支持BLE5.1,模塊內(nèi)置通訊距離可達(dá)到10~20 m 的高性能天線(xiàn),模塊最大發(fā)射功率達(dá)到+4 dBm,休眠時(shí)電流僅2 μA。系統(tǒng)工作時(shí)模塊接收主控模塊數(shù)據(jù),并將數(shù)據(jù)上傳至上位機(jī)。模塊電路原理圖如圖5 所示。
圖5 無(wú)線(xiàn)通訊模塊Fig.5 Wireless communication module
下位機(jī)軟件流程如圖6 所示。上電后首先進(jìn)行系統(tǒng)初始化,再配置姿態(tài)傳感器寄存器參數(shù)并進(jìn)入低功耗待機(jī)狀態(tài),等待上位機(jī)指令。當(dāng)接收到上位機(jī)下發(fā)開(kāi)始采集指令后,單片機(jī)通過(guò)IIC 通訊協(xié)議分別讀取姿態(tài)傳感器內(nèi)各寄存器中加速度計(jì)、陀螺儀、地磁數(shù)據(jù),同時(shí)讀取ADC 所采集當(dāng)前電池電壓值。單片機(jī)接收到所需數(shù)據(jù)后按照傳輸協(xié)議對(duì)數(shù)據(jù)進(jìn)行打包,并以16 進(jìn)制格式通過(guò)串口將打包后數(shù)據(jù)發(fā)送至無(wú)線(xiàn)傳輸模塊,由無(wú)線(xiàn)傳輸模塊傳輸至上位機(jī),當(dāng)上位機(jī)下發(fā)停止采集指令時(shí),系統(tǒng)重新進(jìn)入低功耗待機(jī)狀態(tài)。
圖6 下位機(jī)軟件流程圖Fig.6 Software flow chart of lower computer
為減少底層功耗并提高系統(tǒng)的實(shí)時(shí)性,本文中姿態(tài)解算部分交由解算能力較強(qiáng)的上位機(jī)來(lái)完成。
導(dǎo)航坐標(biāo)系為OXnYnZn,載體坐標(biāo)系為OXbYbZb。Xn,Yn,Zn分別指向東、北、天,Xb,Yb,Zb分別指向右、前、上,如圖7 所示。姿態(tài)角是載體坐標(biāo)系相對(duì)于導(dǎo)航坐標(biāo)系的方向關(guān)系[7]。
圖7 導(dǎo)航坐標(biāo)系和載體坐標(biāo)系Fig.7 Navigation coordinate system and carrier coordinate system
導(dǎo)航坐標(biāo)系下的參數(shù)轉(zhuǎn)換到載體坐標(biāo)系下可以依次繞Z,Y,X旋轉(zhuǎn)α,β,γ得到,旋轉(zhuǎn)變換矩陣為式(1):
常用的姿態(tài)解析方法有歐拉角法、四元數(shù)法、方向余弦法和等效旋轉(zhuǎn)矢量法[8]。本文選用計(jì)算量較少、可全姿態(tài)工作的四元數(shù)法對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步計(jì)算,得到航向角、俯仰角與滾轉(zhuǎn)角姿態(tài)信息以方便后續(xù)數(shù)據(jù)解析。四元數(shù)q的表達(dá)式(2):
其中,i,j,k分別為3 個(gè)方向軸上的單位向量,且‖q‖=1,則物體導(dǎo)航坐標(biāo)系到載體坐標(biāo)系的旋轉(zhuǎn)矩陣用四元數(shù)表示為式(3):
通過(guò)式(1)與式(3)的關(guān)系可求得航向角α、俯仰角β、滾轉(zhuǎn)角γ。表達(dá)式為式(4):
在進(jìn)行多種數(shù)據(jù)融合解算姿態(tài)時(shí),為保證解算結(jié)果的正確性,需要進(jìn)行誤差修正。加速度計(jì)、陀螺儀、磁力計(jì)3 種器件中陀螺儀具有較好的動(dòng)態(tài)特性,但長(zhǎng)時(shí)間工作時(shí)存在著一定的累積誤差。加速度計(jì)和陀螺儀雖然不存在累積誤差,但動(dòng)態(tài)性能較差。通過(guò)擴(kuò)展卡爾曼濾波(EKF)算法對(duì)3 種數(shù)據(jù)進(jìn)行融合,能有效提高數(shù)據(jù)解算后的精度和動(dòng)態(tài)特性[9]。EKF 姿態(tài)解算過(guò)程主要有以下6 個(gè)步驟:
(1)狀態(tài)量初始化:
給定狀態(tài)量初值X0和誤差協(xié)方差矩陣P0。
(2)依據(jù)初始量進(jìn)行狀態(tài)預(yù)測(cè),式(5):
其中,Xk-1/k-1表示系統(tǒng)k-1時(shí)刻估計(jì)k時(shí)刻的狀態(tài)量,狀態(tài)量設(shè)為:;Fk-1為k-1時(shí)刻的狀態(tài)轉(zhuǎn)移矩陣;Wk-1為k-1時(shí)刻系統(tǒng)的狀態(tài)噪聲。
(3)其中協(xié)方差預(yù)測(cè)過(guò)程,式(6):
其中,Qk-1為過(guò)程噪聲方差矩陣。
(4)EKF 增益計(jì)算,式(7):
其中,Hk為k時(shí)刻的觀測(cè)矩陣,Rk為k時(shí)刻測(cè)量噪聲方差矩陣。
(5)依據(jù)結(jié)果進(jìn)行協(xié)方差更新與狀態(tài)更新,公式(8)和公式(9):
其中,I為單位矩陣。
其中,Zk表示k時(shí)刻的觀測(cè)量,觀測(cè)量由IMU傳感器輸出的三軸加速度、三軸地磁力組成,觀測(cè)量為:
(6)姿態(tài)角解算:
將解算所得四元數(shù)通過(guò)式(4)可解算得到航向角α、俯仰角β與滾轉(zhuǎn)角γ。
本文基于QT 平臺(tái)開(kāi)發(fā)了上位機(jī)軟件系統(tǒng),用于接收下位機(jī)上傳的數(shù)據(jù),上位機(jī)軟件整體流程圖如圖8(a)所示。系統(tǒng)工作時(shí),上位機(jī)設(shè)定采集頻率并下發(fā),開(kāi)始采集指令后,采集模塊工作并開(kāi)始向上位機(jī)上傳數(shù)據(jù);上位機(jī)接收數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行解析;得到姿態(tài)信息以及電量信息后,對(duì)以16 進(jìn)制上傳的數(shù)據(jù)進(jìn)行進(jìn)制轉(zhuǎn)換,數(shù)據(jù)進(jìn)制轉(zhuǎn)換流程圖如圖8(b)所示。首先將16 進(jìn)制補(bǔ)碼轉(zhuǎn)為二進(jìn)制補(bǔ)碼,如果其最高位(即標(biāo)志位)為1 則為負(fù)數(shù),轉(zhuǎn)換時(shí)最高位不變,其它各位取反加1,最后將二進(jìn)制轉(zhuǎn)為10 進(jìn)制數(shù),并標(biāo)注負(fù)號(hào);如果最高位為0,則這個(gè)數(shù)為正數(shù),直接轉(zhuǎn)為10 進(jìn)制數(shù),得到10 進(jìn)制數(shù)后,系統(tǒng)按照姿態(tài)解算方法對(duì)數(shù)據(jù)進(jìn)行姿態(tài)解算,并以時(shí)間戳+數(shù)據(jù)的形式在本地存儲(chǔ)。上位機(jī)軟件界面中兩個(gè)顯示窗口分別提供數(shù)值及波形的信息,顯示實(shí)時(shí)接收得到的姿態(tài)數(shù)據(jù)以及解析后的姿態(tài)角,如圖9 所示。
圖8 上位機(jī)軟件流程圖Fig.8 Software flow chart of upper computer
圖9 上位機(jī)軟件界面Fig.9 Upper computer software interface
為驗(yàn)證姿態(tài)采集裝置的有效性,本文將生物實(shí)驗(yàn)中常用的跑臺(tái)實(shí)驗(yàn)作為實(shí)驗(yàn)平臺(tái),做進(jìn)一步驗(yàn)證。圖10(a)為實(shí)驗(yàn)圖,圖中小鼠置于實(shí)驗(yàn)跑臺(tái)中,采集裝置及其配套微型鋰電池固定于小鼠背部,為避免對(duì)小鼠的活動(dòng)產(chǎn)生影響,在實(shí)驗(yàn)前對(duì)小鼠進(jìn)行多次佩戴,以保證小鼠對(duì)裝置的適應(yīng)。實(shí)驗(yàn)開(kāi)始后,小鼠在跑臺(tái)中自由活動(dòng),上位機(jī)軟件通過(guò)藍(lán)牙發(fā)送采集指令,采集裝置開(kāi)始采集實(shí)驗(yàn)數(shù)據(jù)并實(shí)時(shí)上傳。上位機(jī)接收數(shù)據(jù)后對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)解析,得到姿態(tài)數(shù)據(jù)并將其保存;圖10(b)中展示了跑臺(tái)實(shí)驗(yàn)中解析得到的小鼠姿態(tài)信息片段,3 條曲線(xiàn)分別表示對(duì)應(yīng)采集時(shí)間點(diǎn)的航向角、俯仰角以及滾轉(zhuǎn)角,虛線(xiàn)將數(shù)據(jù)劃分為3 個(gè)片段,其中1、3 片段為小鼠運(yùn)動(dòng)時(shí)裝置所采集到的姿態(tài)數(shù)據(jù),片段2為小鼠在跑臺(tái)中靜止時(shí)的姿態(tài)數(shù)據(jù)。
圖10 實(shí)驗(yàn)測(cè)試Fig.10 Experimental test
對(duì)生物的姿態(tài)進(jìn)行準(zhǔn)確的采集和識(shí)別,在研究和分析生物體的行為方面具有重要意義。本文針對(duì)生物實(shí)驗(yàn)中小鼠的姿態(tài)采集問(wèn)題,提出了一種基于IMU 的姿態(tài)采集方法,并實(shí)現(xiàn)了系統(tǒng)的便攜化。該系統(tǒng)利用9 軸IMU 設(shè)計(jì)了一款小體積、低功耗的無(wú)線(xiàn)姿態(tài)采集裝置,同時(shí)針對(duì)性設(shè)計(jì)了上位機(jī)軟件,完成了采集系統(tǒng)的設(shè)計(jì)。在動(dòng)物行為實(shí)驗(yàn)中,通過(guò)跑臺(tái)實(shí)驗(yàn)對(duì)采集系統(tǒng)的有效性進(jìn)行了進(jìn)一步驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,本文所設(shè)計(jì)的便攜式姿態(tài)采集系統(tǒng)在對(duì)小鼠運(yùn)動(dòng)信息的采集過(guò)程中具有良好的效果,為生物姿態(tài)分析提供了新的方法,該方法未來(lái)在生物醫(yī)學(xué)等領(lǐng)域具有較好的發(fā)展前景。